USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONPASSIVE_2

The save procedure used by the edit dataform template "Public Media Marketing Effort Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@SITEID uniqueidentifier IN Site
@MAILDATE datetime IN Date
@SOURCECODEID uniqueidentifier IN Source code
@CODEVALUEID uniqueidentifier IN Code value ID
@CODE nvarchar(10) IN Code
@ITEMLIST xml IN Items
@ACTIVATIONKPIS xml IN Activation KPIs
@USEKPISASDEFAULT bit IN Use the chosen KPIs as the default for future marketing efforts
@APPEALINFORMATION xml IN Appeal information

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONPASSIVE_2]
(
  @ID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255),
  @SITEID uniqueidentifier,
  @MAILDATE datetime,
  @SOURCECODEID uniqueidentifier,
  @CODEVALUEID uniqueidentifier,
  @CODE nvarchar(10),
  @ITEMLIST xml,
  @ACTIVATIONKPIS xml, -- obsolete

  @USEKPISASDEFAULT bit, -- obsolete

  @APPEALINFORMATION xml  
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @OLDSOURCECODEID uniqueidentifier;
  declare @CURRENTSITEID uniqueidentifier;
  declare @ACTIVE bit;
  declare @SEGMENTATIONACTIVATEPROCESSID uniqueidentifier;
  declare @BASECURRENCYID uniqueidentifier;

  begin try
    select
      @ACTIVE = [MKTSEGMENTATION].[ACTIVE],
      @OLDSOURCECODEID = [MKTSEGMENTATION].[SOURCECODEID],
      @CURRENTDATE = getdate(),
      @BASECURRENCYID = [BASECURRENCYID]
    from dbo.[MKTSEGMENTATION]
    where [MKTSEGMENTATION].[ID] = @ID;

    if @ACTIVE = 0
      -- check if the mailing is currently being activated

      exec dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @ID;

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

    /* Get basecurrencyid from enterprise appeal.  Since public media efforts are activated upon creation, we need 
       to set the base currency based on the appeal. */
    select
      @BASECURRENCYID = [APPEAL].[BASECURRENCYID]
    from @APPEALINFORMATION.nodes('/APPEALINFORMATION/ITEM') T(c)
    inner join dbo.[APPEAL] on [APPEAL].[ID] = T.c.value('(APPEALSYSTEMID)[1]','uniqueidentifier')
    where (dbo.[UFN_MKTRECORDSOURCE_VALIDFORBBEC](T.c.value('(RECORDSOURCEID)[1]','uniqueidentifier')) = 1);

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

    -- save the source code parts (only for non-activated mailings)

    if @ACTIVE = 0
      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] as [MKTSEGMENTATIONSEGMENT]
      inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
      where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @ID;

    -- save KPIs

    if @ACTIVE = 0
      exec dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_SAVEFIELD_FROMXML] @ID, @ACTIVATIONKPIS, @USEKPISASDEFAULT, @CHANGEAGENTID, @CURRENTAPPUSERID;

    -- save the appeal information

    exec dbo.[USP_MKTSEGMENTATIONACTIVATE_SAVEFIELD_FROMXML] @ID, @APPEALINFORMATION, @CHANGEAGENTID;
  end try

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

  return 0;