USP_DATAFORMTEMPLATE_EDIT_MKTACKNOWLEDGEMENTMAILINGTEMPLATEBASECURRENCY

The save procedure used by the edit dataform template "Marketing Acknowledgement Template Base Currency Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@BASECURRENCYID uniqueidentifier IN Base currency

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTACKNOWLEDGEMENTMAILINGTEMPLATEBASECURRENCY]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @BASECURRENCYID uniqueidentifier
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @OLDBASECURRENCYID uniqueidentifier;

  if exists(select * from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATEAPPEAL] where [ACKNOWLEDGEMENTTEMPLATEID] = @ID and dbo.[UFN_MKTRECORDSOURCE_VALIDFORBBEC]([RECORDSOURCEID]) = 1 and [APPEALSYSTEMID] <> '')
    begin
      raiserror('BBERR_MKTACKNOWLEDGEMENTMAILINGTEMPLATE_HASAPPEAL', 1, 11);
      raiserror('The base currency may not be changed for an acknowledgement template that is associated with an appeal.', 13, 1);
    end

  if exists(select * from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] where [ACKNOWLEDGEMENTMAILINGTEMPLATEID] = @ID)
    begin
      raiserror('BBERR_MKTACKNOWLEDGEMENTMAILINGTEMPLATE_HASRULES', 1, 11);
      raiserror('The base currency may not be changed for an acknowledgement template that has acknowledgement rules defined.', 13, 1);
    end

  if exists(select * from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATEASKLADDEROVERRIDE] where [ACKNOWLEDGEMENTMAILINGTEMPLATEID] = @ID)
    begin
      raiserror('BBERR_MKTACKNOWLEDGEMENTMAILINGTEMPLATE_HASASKLADDEROVERRIDES', 1, 11);
      raiserror('The base currency may not be changed for an acknowledgement template that has ask ladder overrides defined.', 13, 1);
    end

  if @CHANGEAGENTID is null  
    exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

  set @CURRENTDATE = getdate();

  begin try
    select 
      @OLDBASECURRENCYID = [BASECURRENCYID]
    from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATE]
    where [ID] = @ID;

    if @OLDBASECURRENCYID <> @BASECURRENCYID
      update dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATE] set
        [BASECURRENCYID] = @BASECURRENCYID,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
      where [ID] = @ID;
  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  return 0;