USP_DATAFORMTEMPLATE_ADD_APPEALMAILINGSETUP

Adds an appeal mailing.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@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_ADD_APPEALMAILINGSETUP
(
  @ID uniqueidentifier = null output,
  @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 @APPEALNAME nvarchar(100);
  declare @APPEALDESCRIPTION nvarchar(255);
  declare @SITEID uniqueidentifier;
  declare @USEADDRESSPROCESSING bit = 1;
  declare @EMAILEXPORTDEFINITIONID uniqueidentifier;
  declare @MAILEXPORTDEFINITIONID uniqueidentifier;
  declare @CURRENTDATE datetime;
  declare @MKTSEGMENTATIONACTIVATEPROCESSID uniqueidentifier;

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

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

    set @CURRENTDATE = getdate();

    -- Add mailing information first b/c foreign key points from AppealMailing to MKTSegmentation        

    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;

    insert into dbo.[APPEALMAILING] 
    (
      [ID], 
      [APPEALID], 
      [CREATEOUTPUTIDSET], 
      [OUTPUTIDSETNAME], 
      [OVERWRITEOUTPUTIDSET], 
      [ADDEDBYID], 
      [CHANGEDBYID], 
      [DATEADDED], 
      [DATECHANGED]
    )
    values
    (
      @ID
      @APPEALID
      @CREATEOUTPUTIDSET
      @OUTPUTIDSETNAME
      @OVERWRITEOUTPUTIDSET
      @CHANGEAGENTID
      @CHANGEAGENTID
      @CURRENTDATE
      @CURRENTDATE
    );

    --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 Enterprise don't install into setup table

    if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('3117d2c8-7f46-42f2-abeb-b654f2f63046') = 0 
    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;

    -- 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