USP_DATAFORMTEMPLATE_EDIT_MKTCOMMUNICATIONTEMPLATEBASECURRENCY

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@BASECURRENCYID uniqueidentifier IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MKTCOMMUNICATIONTEMPLATEBASECURRENCY 
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @BASECURRENCYID uniqueidentifier
)
as

  set nocount on;

  declare @HASASKLADDEROVERRIDES bit;
  declare @HASAPPEAL bit;
  declare @CURRENTDATE datetime;

  begin try

    set @CURRENTDATE = getdate();

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

    select
      @HASAPPEAL = cast(case when (select count(1) from dbo.[MKTCOMMUNICATIONTEMPLATEDEFAULTAPPEAL] where [MKTCOMMUNICATIONTEMPLATEDEFAULTAPPEAL].[COMMUNICATIONTEMPLATEID] = [MKTCOMMUNICATIONTEMPLATE].[ID]) > 0 then 1 else 0 end as bit),
      @HASASKLADDEROVERRIDES = cast(case when (select count(1) from dbo.[MKTCOMMUNICATIONTEMPLATEDEFAULTASKLADDEROVERRIDE] where [MKTCOMMUNICATIONTEMPLATEDEFAULTASKLADDEROVERRIDE].[COMMUNICATIONTEMPLATEID] = [MKTCOMMUNICATIONTEMPLATE].[ID]) > 0 then 1 else 0 end as bit)
    from dbo.[MKTCOMMUNICATIONTEMPLATE]
    where [MKTCOMMUNICATIONTEMPLATE].[ID] = @ID;

    if @HASAPPEAL = 1
      raiserror('BBERR_MKTCOMMUNICATIONTEMPLATEBASECURRENCYEDIT_APPEAL', 13, 1);

    if @HASASKLADDEROVERRIDES = 1
      raiserror('BBERR_MKTCOMMUNICATIONTEMPLATEBASECURRENCYEDIT_ASKLADDEROVERRIDES', 13, 1);

    declare @OLDBASECURRENCYID uniqueidentifier;

    select 
      @OLDBASECURRENCYID = [BASECURRENCYID]
    from dbo.[MKTCOMMUNICATIONTEMPLATE]
    where [ID] = @ID;

    -- if the user saves without changing the base currency, don't update
    if @OLDBASECURRENCYID <> @BASECURRENCYID
      begin
        update dbo.[MKTCOMMUNICATIONTEMPLATE] set
          [BASECURRENCYID] = @BASECURRENCYID,
          [CHANGEDBYID] = @CHANGEAGENTID,
          [DATECHANGED] = @CURRENTDATE
        where [ID] = @ID;
      end

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

return 0;