USP_DATAFORMTEMPLATE_EDIT_MKTCOMMUNICATIONEFFORTSOURCECODE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@SOURCECODEID uniqueidentifier IN
@ITEMLIST xml IN
@CODE nvarchar(10) IN
@CODEVALUEID uniqueidentifier IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MKTCOMMUNICATIONEFFORTSOURCECODE 
(
  @ID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @SOURCECODEID uniqueidentifier,
  @ITEMLIST xml,
  @CODE nvarchar(10),
  @CODEVALUEID uniqueidentifier
)
as

  set nocount on;

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

  declare @ACTIVE bit;
  declare @OLDSOURCECODEID uniqueidentifier;
  declare @CURRENTDATE datetime;
  set @CURRENTDATE = getdate();

  begin try
    -- handle updating the data
    select
       @ACTIVE = [MKTSEGMENTATION].[ACTIVE],
       @OLDSOURCECODEID = [MKTSEGMENTATION].[SOURCECODEID]
    from
      dbo.[MKTSEGMENTATION]
    where 
      [MKTSEGMENTATION].[ID] = @ID;

    if @ACTIVE = 0
      exec dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @ID;

    update
      dbo.[MKTSEGMENTATION]
    set
      [CODE] = @CODE,
      [PARTDEFINITIONVALUESID] = @CODEVALUEID,
      [SOURCECODEID] = @SOURCECODEID,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where
      [ID] = @ID;

    exec dbo.[USP_MKTSOURCECODEPART_GETITEMLIST2_UPDATEFROMXML] @ID, @ITEMLIST, @CHANGEAGENTID, @CURRENTDATE;

    -- update any segment codes in this mailing with their base segment codes
    if isnull(cast(@OLDSOURCECODEID as varchar(36)),'') <> isnull(cast(@SOURCECODEID as varchar(36)),'')
      update dbo.[MKTSEGMENTATIONSEGMENT] set
        [CODE] = (case when @SOURCECODEID is null then '' else [MKTSEGMENT].[CODE] end),
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
      from dbo.[MKTSEGMENTATIONSEGMENT]
      inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
      where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @ID;

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

return 0;