USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONPASSIVE

The save procedure used by the add dataform template "Public Media Marketing Effort Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@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

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONPASSIVE]
(
  @ID uniqueidentifier = null output,
  @CURRENTAPPUSERID uniqueidentifier = null,
  @CHANGEAGENTID uniqueidentifier = null,    
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255) = '',
  @SITEID uniqueidentifier = null,
  @MAILDATE datetime = null,
  @SOURCECODEID uniqueidentifier = null,
  @CODEVALUEID uniqueidentifier = null,
  @CODE nvarchar(10) = '',
  @ITEMLIST xml = null,
  @ACTIVATIONKPIS xml = null,
  @USEKPISASDEFAULT bit = 0
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @BASECURRENCYID uniqueidentifier;
  declare @ORGANIZATIONCURRENCYEXCHANGERATEID uniqueidentifier;
  declare @ORGANIZATIONCURRENCYID uniqueidentifier;

  begin try
    if @ID is null set @ID = newid();

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

    set @CURRENTDATE = getdate();

    set @BASECURRENCYID = dbo.[UFN_APPUSER_GETBASECURRENCY](@CURRENTAPPUSERID);

    insert into dbo.[MKTSEGMENTATION] (
      [ID],
      [MAILINGTYPECODE],
      [NAME],
      [DESCRIPTION],
      [SITEID],
      [MAILDATE],
      [SOURCECODEID],
      [PARTDEFINITIONVALUESID],
      [CODE],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED],
      [BASECURRENCYID]
    ) values (
      @ID,
      4,
      @NAME,
      @DESCRIPTION,
      @SITEID,
      @MAILDATE,
      @SOURCECODEID,
      @CODEVALUEID,
      @CODE,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE,
      @BASECURRENCYID
    );

    set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();

    if (@ORGANIZATIONCURRENCYID != @BASECURRENCYID)
      set @ORGANIZATIONCURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);

    -- create default budget info

    insert into dbo.[MKTSEGMENTATIONBUDGET] (
      [ID],
      [BUDGETAMOUNT],
      [FIXEDCOST],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED],
      [BASECURRENCYID],
      [ORGANIZATIONBUDGETAMOUNT],
      [ORGANIZATIONFIXEDCOST],
      [ORGANIZATIONCURRENCYEXCHANGERATEID]
    ) values (
      @ID,
      0.0,
      0.0,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE,
      @BASECURRENCYID,
      0.0,
      0.0,
      @ORGANIZATIONCURRENCYEXCHANGERATEID
    );

    -- save the source code information

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

    --  add this mailing to the PREACTIVATIONPROCESS table

    if not exists (select 1 from dbo.[MKTMAILINGPREACTIVATIONPROCESS] where [SEGMENTATIONID] = @ID)
      insert into dbo.[MKTMAILINGPREACTIVATIONPROCESS] 
      (
        [ID],
        [SEGMENTATIONID],
        [ADDEDBYID],
        [CHANGEDBYID],
        [DATEADDED],
        [DATECHANGED]
      ) values (
        newid(),
        @ID,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CURRENTDATE
      );

    -- add the mailing to the ACTIVATIONPROCESS table

    exec dbo.[USP_MKTSEGMENTATIONACTIVATEPROCESS_SAVE] @ID, @CHANGEAGENTID;

    -- save KPIs

    exec dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_SAVEFIELD_FROMXML] @ID, @ACTIVATIONKPIS, @USEKPISASDEFAULT, @CHANGEAGENTID, @CURRENTAPPUSERID;

    -- add the mailing to the activation process table

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

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

  return 0;