USP_DATAFORMTEMPLATE_EDIT_APPEALMAILINGSETUP

Saves an existing appeal mailing.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(100) IN
@DESCRIPTION nvarchar(255) IN
@MAILDATE datetime IN
@MAILINGBUDGET money IN
@APPEALID uniqueidentifier IN
@SELECTEDSELECTIONS xml IN
@EXCLUSIONS xml IN
@EXCLUDESELECTIONS xml IN
@EXCLUSIONDATETYPECODE tinyint IN
@EXCLUSIONASOFDATE datetime IN
@CHANNELCODE tinyint IN
@CHANNELPREFERENCECODE tinyint IN
@MAILPACKAGEID uniqueidentifier IN
@EMAILPACKAGEID uniqueidentifier IN
@ADDRESSPROCESSINGOPTIONID uniqueidentifier IN
@NAMEFORMATPARAMETERID uniqueidentifier IN
@HOUSEHOLDINGTYPECODE tinyint IN
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit IN
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit IN
@HOUSEHOLDINGONERECORDPERHOUSEHOLD bit IN
@CREATEOUTPUTIDSET bit IN
@OUTPUTIDSETNAME nvarchar(100) IN
@OVERWRITEOUTPUTIDSET bit IN
@FINALSAVECODE tinyint IN
@OUTPUTPATH nvarchar(256) IN
@MKTASKLADDERID uniqueidentifier IN
@ESTIMATEDRESPONSERATE decimal(5, 2) IN
@ESTIMATEDAVERAGEGIFTAMOUNT money IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_APPEALMAILINGSETUP
(
  @ID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255) = '',
  @MAILDATE datetime = null,
  @MAILINGBUDGET money = 0,
  @APPEALID uniqueidentifier,
  @SELECTEDSELECTIONS xml = null,
  @EXCLUSIONS xml = null,
  @EXCLUDESELECTIONS xml = null,
  @EXCLUSIONDATETYPECODE tinyint = 0,
  @EXCLUSIONASOFDATE datetime = null,
  @CHANNELCODE tinyint = 0,
  @CHANNELPREFERENCECODE tinyint = 0,
  @MAILPACKAGEID uniqueidentifier = null,
  @EMAILPACKAGEID uniqueidentifier = null,
  @ADDRESSPROCESSINGOPTIONID uniqueidentifier = null,
  @NAMEFORMATPARAMETERID uniqueidentifier = null,
  @HOUSEHOLDINGTYPECODE tinyint = 0,
  @HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit = 0,
  @HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit = 0,
  @HOUSEHOLDINGONERECORDPERHOUSEHOLD bit = 0 ,
  @CREATEOUTPUTIDSET bit = 0,
  @OUTPUTIDSETNAME nvarchar(100) = '',
  @OVERWRITEOUTPUTIDSET bit = 0,
  @FINALSAVECODE tinyint = 0,
  @OUTPUTPATH nvarchar(256) = '',
  @MKTASKLADDERID uniqueidentifier = null,
  @ESTIMATEDRESPONSERATE decimal(5, 2) = 0,
  @ESTIMATEDAVERAGEGIFTAMOUNT money = 0
)
as
begin
  declare @CURRENTDATE datetime;
  declare @ACTIVE bit;
  declare @OLDNAME nvarchar(100);
  declare @OLDEXCLUSIONS as xml;
  declare @OLDEXCLUSIONDATETYPECODE as tinyint;
  declare @OLDEXCLUSIONASOFDATE as datetime;
  declare @OLDUSEADDRESSPROCESSING bit;
  declare @OLDADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint;
  declare @OLDADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime;
  declare @OLDADDRESSPROCESSINGOPTIONID uniqueidentifier;
  declare @OLDNAMEFORMATPARAMETERID uniqueidentifier;
  declare @OLDHOUSEHOLDINGTYPECODE tinyint;
  declare @OLDEXCLUDEDECEASED as bit;
  declare @OLDEXCLUDEINACTIVE as bit;
  declare @OLDMAILPACKAGEID uniqueidentifier;
  declare @OLDEMAILPACKAGEID uniqueidentifier;
  declare @ADDRESSPROCESSINGOPTIONSCHANGED bit;
  declare @EXCLUSIONSCHANGED bit;
  declare @APPEALNAME nvarchar(100);
  declare @APPEALDESCRIPTION nvarchar(255);
  declare @SITEID uniqueidentifier;
  declare @EMAILEXPORTDEFINITIONID uniqueidentifier;
  declare @MAILEXPORTDEFINITIONID uniqueidentifier;
  declare @SEGMENTATIONEXPORTPROCESSID uniqueidentifier;
  declare @MKTSEGMENTATIONACTIVATEPROCESSID uniqueidentifier;

  begin try
    set @CURRENTDATE = getDate();

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

    exec dbo.[USP_COMMUNICATIONS_CREATEORUPDATEMAILING]    
      @ID,
      1,
      1,
      @NAME,
      @DESCRIPTION,
      @MAILINGBUDGET,
      @MAILDATE,
      @SELECTEDSELECTIONS,
      @EXCLUSIONS,
      @CHANNELCODE,
      @CHANNELPREFERENCECODE,
      @EMAILPACKAGEID,
      @MAILPACKAGEID,
      @MKTASKLADDERID,
      @ADDRESSPROCESSINGOPTIONID,
      @NAMEFORMATPARAMETERID,
      @HOUSEHOLDINGTYPECODE,
      @HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD,
      @HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
      @HOUSEHOLDINGONERECORDPERHOUSEHOLD,
      @APPEALID,
      @CREATEOUTPUTIDSET,
      @OUTPUTIDSETNAME,
      @OVERWRITEOUTPUTIDSET,
      @CURRENTAPPUSERID,
      @CHANGEAGENTID,
      null, -- PACKAGESITEID

      @EXCLUDESELECTIONS,
      @EXCLUSIONDATETYPECODE,
      @EXCLUSIONASOFDATE,
      @ESTIMATEDRESPONSERATE,
      @ESTIMATEDAVERAGEGIFTAMOUNT;

    -- Update appeal mailing information...

    update dbo.[APPEALMAILING] set
      [APPEALID] = @APPEALID,
      [MKTSEGMENTATIONSEGMENTID] = null,
      [CREATEOUTPUTIDSET] = @CREATEOUTPUTIDSET,
      [OUTPUTIDSETNAME] = @OUTPUTIDSETNAME,
      [OVERWRITEOUTPUTIDSET] = @OVERWRITEOUTPUTIDSET,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where
      [ID] = @ID;

    --Because the appeal mailing name uniqueness depends on the appeal, we need to check for name uniqueness after the appeal mailing is created.

    if dbo.[UFN_MKTSEGMENTATION_NAMEEXISTS](@NAME, 0, 1) = 1
      begin
        --Name is not unique, throw error.

        raiserror('BBERR_MKTSEGMENTATION_VALIDNAME', 13, 1);
      end

    -- If not Enterprise, update AppealMailingSetup table

    if dbo.[UFN_INSTALLEDPRODUCTS_PRODUCTIS]('3117d2c8-7f46-42f2-abeb-b654f2f63046') = 0
      begin
        if exists (select [ID] from dbo.[APPEALMAILINGSETUP] where [ID] = @ID)
          begin
            update dbo.[APPEALMAILINGSETUP] set
              [CHANNELCODE] = @CHANNELCODE,
              [CHANNELPREFERENCECODE] = @CHANNELPREFERENCECODE,
              [MAILPACKAGEID] = @MAILPACKAGEID,
              [EMAILPACKAGEID] = @EMAILPACKAGEID,
              [ESTIMATEDRESPONSERATE] = @ESTIMATEDRESPONSERATE,
              [ESTIMATEDAVERAGEGIFTAMOUNT] = @ESTIMATEDAVERAGEGIFTAMOUNT,
              [CHANGEDBYID] = @CHANGEAGENTID,
              [DATECHANGED] = @CURRENTDATE,
              [MKTASKLADDERID] = @MKTASKLADDERID
            where
              [ID] = @ID;

            exec dbo.[USP_APPEALMAILINGSETUP_GETSELECTIONS_UPDATEFROMXML] @ID, @SELECTEDSELECTIONS, @CHANGEAGENTID, @CURRENTDATE;
          end
        else
          begin
            insert into dbo.[APPEALMAILINGSETUP]
            (
              [ID], 
              [CHANNELCODE], 
              [CHANNELPREFERENCECODE], 
              [MAILPACKAGEID], 
              [EMAILPACKAGEID], 
              [ESTIMATEDRESPONSERATE], 
              [ESTIMATEDAVERAGEGIFTAMOUNT], 
              [ADDEDBYID], 
              [CHANGEDBYID], 
              [DATEADDED], 
              [DATECHANGED], 
              [MKTASKLADDERID]
            )
            values
            (
              @ID
              @CHANNELCODE
              @CHANNELPREFERENCECODE
              @MAILPACKAGEID
              @EMAILPACKAGEID
              @ESTIMATEDRESPONSERATE
              @ESTIMATEDAVERAGEGIFTAMOUNT
              @CHANGEAGENTID
              @CHANGEAGENTID
              @CURRENTDATE,
              @CURRENTDATE
              @MKTASKLADDERID
            );

            exec dbo.[USP_APPEALMAILINGSETUP_GETSELECTIONS_ADDFROMXML] @ID, @SELECTEDSELECTIONS, @CHANGEAGENTID, @CURRENTDATE;
          end
      end

    -- Always activate KPIs

    -- Load KPI values

    declare @KpiTable as table
    (
      [KPICATALOGID] uniqueidentifier,
      [SELECTED] bit,
      [NAME] nvarchar(255),
      [GOALTYPECODE] tinyint,
      [DEFAULT] bit,
      [LOCKED] bit,
      [TEMPLATETYPECODE] tinyint
    );

    insert into @KpiTable
      exec dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_GETFIELDS] null, 0

    declare @ACTIVATIONKPIS xml;
    set @ACTIVATIONKPIS = (
      select 
        [KPICATALOGID],
        [SELECTED],
        [NAME],
        [GOALTYPECODE],
        [DEFAULT]
      from
        @KpiTable 
      for xml raw('ITEM'),type,elements,root('ACTIVATIONKPIS'),BINARY BASE64);

    /* Clear KPI fields */
    exec dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_CLEARFIELDS]
      @ID,
      1,
      @CHANGEAGENTID

    /* Save KPIs */
    exec dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_SAVEFIELD_FROMXML] 
      @ID
      @ACTIVATIONKPIS
      1
      @CHANGEAGENTID,
      @CURRENTAPPUSERID;

  end try

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

  return 0;
end