USP_DATAFORMTEMPLATE_EDIT_MKTCOMMUNICATIONEFFORTADDRESSPROCESSING

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@USEADDRESSPROCESSING bit IN
@ADDRESSPROCESSINGOPTIONID uniqueidentifier IN
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint IN
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime IN
@NAMEFORMATPARAMETERID uniqueidentifier IN

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTCOMMUNICATIONEFFORTADDRESSPROCESSING]
(
  @ID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @USEADDRESSPROCESSING bit,
  @ADDRESSPROCESSINGOPTIONID uniqueidentifier,
  @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint,
  @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime,
  @NAMEFORMATPARAMETERID uniqueidentifier
)
as

  set nocount on;

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

  declare @CURRENTDATE datetime = getdate();
  declare @ADDRESSPROCESSINGLOCKED bit = 0;

  begin try

    /* Get template locked settings */  
    if exists(select top 1 1 from dbo.[MKTCOMMUNICATIONTEMPLATE] where [MKTSEGMENTATIONID] = @ID)
      begin

        select
          @ADDRESSPROCESSINGLOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[ADDRESSPROCESSINGLOCKED]
        from dbo.[MKTCOMMUNICATIONTEMPLATE]
        inner join dbo.[MKTCOMMUNICATIONTEMPLATEDEFAULT] on [MKTCOMMUNICATIONTEMPLATEDEFAULT].[COMMUNICATIONTEMPLATEID] = [MKTCOMMUNICATIONTEMPLATE].[ID]
        where [MKTCOMMUNICATIONTEMPLATE].[MKTSEGMENTATIONID] = @ID;

      end

    /* Update address processing settings */
    update [MKTSEGMENTATION]
    set
      [USEADDRESSPROCESSING] = case when @ADDRESSPROCESSINGLOCKED = 1 then [USEADDRESSPROCESSING] else @USEADDRESSPROCESSING end,
      [ADDRESSPROCESSINGOPTIONID] = case when @ADDRESSPROCESSINGLOCKED = 1 then [ADDRESSPROCESSINGOPTIONID] else @ADDRESSPROCESSINGOPTIONID end,
      [ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE] = case when @ADDRESSPROCESSINGLOCKED = 1 then [ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE] else @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE end,
      [ADDRESSPROCESSINGOPTIONSEASONALASOFDATE] = case when @ADDRESSPROCESSINGLOCKED = 1 then [ADDRESSPROCESSINGOPTIONSEASONALASOFDATE] else @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE end,
      [NAMEFORMATPARAMETERID] = case when @ADDRESSPROCESSINGLOCKED = 1 then [NAMEFORMATPARAMETERID] else @NAMEFORMATPARAMETERID end,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ID] = @ID

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

return 0;