USP_DATAFORMTEMPLATE_ADD_APPEALMAILINGSETUPLETTER

Add an appeal mailing setup letter.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CONSTITUENTRECORDTYPEID uniqueidentifier IN
@NAME nvarchar(100) IN
@CHANNELCODE tinyint IN
@MAILEXPORTDEFINITIONID uniqueidentifier IN
@MAILCONTENTHTML nvarchar(max) IN
@EMAILEXPORTDEFINITIONID uniqueidentifier IN
@NETCOMMUNITYTEMPLATEID int IN
@NETCOMMUNITYDATASOURCEID int IN
@EMAILCONTENTHTML nvarchar(max) IN
@SENDTOOPTIONCODE tinyint IN
@CONSTITUENTINCLUDECODE tinyint IN
@CONSIDERREVENUEHISTORY bit IN
@REVENUECRITERIACODE tinyint IN
@LOWREVENUEAMOUNT money IN
@HIGHREVENUEAMOUNT money IN
@SELECTIONS xml IN
@CHANNELPREFERENCECODE tinyint IN
@MAILCOST money IN
@EMAILCOST money IN
@MARGINTOP decimal(18, 0) IN
@MARGINBOTTOM decimal(18, 0) IN
@MARGINLEFT decimal(18, 0) IN
@MARGINRIGHT decimal(18, 0) IN
@PAPERSIZECODE tinyint IN
@PAPERWIDTH decimal(18, 0) IN
@PAPERHEIGHT decimal(18, 0) IN
@MKTASKLADDERID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_APPEALMAILINGSETUPLETTER
(
    @ID uniqueidentifier = null output,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @CHANGEAGENTID uniqueidentifier = null,
    @CONSTITUENTRECORDTYPEID uniqueidentifier = null,
    @NAME nvarchar(100),
    @CHANNELCODE tinyint,
    @MAILEXPORTDEFINITIONID uniqueidentifier,
    @MAILCONTENTHTML nvarchar(max),
    @EMAILEXPORTDEFINITIONID uniqueidentifier,
    @NETCOMMUNITYTEMPLATEID int,
    @NETCOMMUNITYDATASOURCEID int,
    @EMAILCONTENTHTML nvarchar(max),
    @SENDTOOPTIONCODE tinyint,
    @CONSTITUENTINCLUDECODE tinyint,
    @CONSIDERREVENUEHISTORY bit,
    @REVENUECRITERIACODE tinyint,
    @LOWREVENUEAMOUNT money,
    @HIGHREVENUEAMOUNT money,
    @SELECTIONS xml,
    @CHANNELPREFERENCECODE tinyint,
    @MAILCOST money,
    @EMAILCOST money,
    @MARGINTOP decimal,
    @MARGINBOTTOM decimal,
    @MARGINLEFT decimal,
    @MARGINRIGHT decimal,
    @PAPERSIZECODE tinyint,
    @PAPERWIDTH decimal,
    @PAPERHEIGHT decimal,
    @MKTASKLADDERID uniqueidentifier
)
as
    set nocount on;

    if @ID is null
        set @ID = newid()

    if @CHANGEAGENTID is null
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

    declare @CURRENTDATE datetime = getDate();

    begin try        
        declare @EMAILMKTLETTERID uniqueidentifier;
        declare @EMAILPACKAGEID as uniqueidentifier;
        declare @EMAILSEGMENTID as uniqueidentifier;
        declare @MAILMKTLETTERID uniqueidentifier;
        declare @MAILPACKAGEID as uniqueidentifier;
        declare @MAILSEGMENTID as uniqueidentifier;

        declare @EXCLUDECONSTITSBASEDONPREFERENCE bit;
        declare @INCLUDECONSTITSWITHOUTPREFERENCE bit;

        declare @IDSETREGISTERID uniqueidentifier = null;

        declare @LETTERNAME nvarchar(100);
        declare @LETTERDESCRIPTION nvarchar(255);

        declare @PACKAGENAME nvarchar(100);
        declare @PACKAGEDESCRIPTION nvarchar(255);

        -- Setup selection

        if @SENDTOOPTIONCODE = 0
            -- Using canned include options, build a selection for the given values

            begin                                
                exec dbo.USP_APPEALMAILINGSETUPLETTER_BUILDCANNEDSELECTION
                    @IDSETREGISTERID output,
                    @CURRENTAPPUSERID,
                    @CHANGEAGENTID,
                    @CONSTITUENTRECORDTYPEID,
                    @CONSTITUENTINCLUDECODE,
                    @CONSIDERREVENUEHISTORY,
                    @REVENUECRITERIACODE,
                    @LOWREVENUEAMOUNT,
                    @HIGHREVENUEAMOUNT;

                set @SELECTIONS = (
                    select
                        --newID() as ID,

                        @IDSETREGISTERID as SELECTIONID,
                        'Canned Options Selection' as SELECTIONLABEL
                    for xml raw('ITEM'),type,elements,root('SELECTIONS'),BINARY BASE64
                );
            end

        set @EXCLUDECONSTITSBASEDONPREFERENCE =
                case @CHANNELCODE 
                    when 0 then 1 
                    else 0 
                end;

        -- If sending email or both

        if @CHANNELCODE <> 2
            begin            
                set @LETTERNAME = left('Email Letter: ' + @NAME, 100);
                set @LETTERDESCRIPTION = 'Automatically generated email letter for ''' + @NAME + ''' appeal mailing setup'

                exec dbo.USP_DATAFORMTEMPLATE_ADD_MKTLETTERCODE @EMAILMKTLETTERID output, 1, @CHANGEAGENTID, @LETTERNAME, @LETTERDESCRIPTION, @EMAILEXPORTDEFINITIONID, 0, '', null;

                -- Associate the email template with the LETTERCODE

                update dbo.LETTERCODE set
                    NETCOMMUNITYTEMPLATEID = @NETCOMMUNITYTEMPLATEID,
                    NETCOMMUNITYDATASOURCEID = @NETCOMMUNITYDATASOURCEID,
                    ISSYSTEM = 1
                where ID = @EMAILMKTLETTERID;

                -- Save the package

                set @PACKAGENAME = dbo.UFN_MKTPACKAGE_GETUNIQUENAME(left('Email Package: ' + @NAME, 100));
                set @PACKAGEDESCRIPTION = 'Automatically generated email package for ''' + @NAME + ''' appeal mailing setup letter';

                exec dbo.USP_MKTPACKAGE_EMAIL_SAVE @EMAILPACKAGEID output, @CHANGEAGENTID, @PACKAGENAME, @PACKAGEDESCRIPTION, '', null, @EMAILCOST, 0, null, @NETCOMMUNITYTEMPLATEID, @NETCOMMUNITYDATASOURCEID, @EMAILEXPORTDEFINITIONID, null, '', null, @CURRENTAPPUSERID;

                -- Associate the email template with the package

                update dbo.MKTPACKAGE set
                    LETTERCODEID = @EMAILMKTLETTERID,
                    NETCOMMUNITYTEMPLATEID = @NETCOMMUNITYTEMPLATEID,
                    NETCOMMUNITYDATASOURCEID = @NETCOMMUNITYDATASOURCEID,
                    ISSYSTEM = 1
                where ID = @EMAILPACKAGEID;

                -- Create the segment

                set @INCLUDECONSTITSWITHOUTPREFERENCE =
                        case @CHANNELCODE
                            when 0 then
                                case @CHANNELPREFERENCECODE
                                    when 0 then 1
                                    else 0
                                end
                            when 1 then 1
                            else 0
                        end;

                exec dbo.[USP_COMMUNICATIONS_CREATEORUPDATESEGMENT_2]
                    @EMAILSEGMENTID output,
                    @CURRENTAPPUSERID,
                    @CHANGEAGENTID,
                    @NAME,
                    @SELECTIONS,
                    1,                                                        -- MailTypeCode 1 - Appeals

                    1,                                                        -- DeliveryMethodCode 1 - Email

                    @EXCLUDECONSTITSBASEDONPREFERENCE,
                    @INCLUDECONSTITSWITHOUTPREFERENCE;

            end


        -- If sending mail or both

        if @CHANNELCODE <> 1
            begin
                set @LETTERNAME = left('Mail Letter: ' + @NAME, 100);
                set @LETTERDESCRIPTION = 'Automatically generated mail letter for ''' + @NAME + ''' appeal mailing setup letter';

                --Save the letter

                exec dbo.USP_DATAFORMTEMPLATE_ADD_MKTLETTERCODE @MAILMKTLETTERID output, 1, @CHANGEAGENTID, @LETTERNAME, @LETTERDESCRIPTION, @MAILEXPORTDEFINITIONID, 0, '', null;

                update dbo.LETTERCODE set
                    HTMLTEMPLATE = @MAILCONTENTHTML,
                    ISSYSTEM = 1
                where ID = @MAILMKTLETTERID;

                --Save the package

                set @PACKAGENAME = dbo.UFN_MKTPACKAGE_GETUNIQUENAME(left('Mail Package: ' + @NAME, 100));
                set @PACKAGEDESCRIPTION = 'Automatically generated mail package for ''' + @NAME + ''' appeal mailing setup letter';

                exec dbo.USP_DATAFORMTEMPLATE_ADD_MKTPACKAGE_MAIL @MAILPACKAGEID output, @CHANGEAGENTID, @PACKAGENAME, @PACKAGEDESCRIPTION, '', @MAILCOST, 0, null, null, @MAILMKTLETTERID, @MAILEXPORTDEFINITIONID, '255', null, '', null, @CURRENTAPPUSERID;

                update dbo.MKTPACKAGE set
                    ISSYSTEM = 1
                where ID = @MAILPACKAGEID;

                set @INCLUDECONSTITSWITHOUTPREFERENCE = 
                        case @CHANNELCODE 
                            when 0 then 
                                case @CHANNELPREFERENCECODE 
                                    when 1 then 1 
                                    else 0 
                                end 
                            when 2 then 1 
                            else 0 
                        end;

                -- Create or update the segment

                exec dbo.[USP_COMMUNICATIONS_CREATEORUPDATESEGMENT_2]
                    @MAILSEGMENTID output,
                    @CURRENTAPPUSERID,
                    @CHANGEAGENTID,
                    @NAME,
                    @SELECTIONS,
                    1,                                                    -- MailTypeCode 1 - Appeals

                    0,                                                    -- DeliveryMethodCode 0 - Mail

                    @EXCLUDECONSTITSBASEDONPREFERENCE,
                    @INCLUDECONSTITSWITHOUTPREFERENCE;                                
            end

        insert into dbo.APPEALMAILINGSETUPLETTER 
            (ID, APPEALMAILINGSETUPID, SEQUENCE, NAME, CHANNELCODE, CHANNELPREFERENCECODE, SENDTOOPTIONCODE, CONSTITUENTINCLUDECODE, CONSIDERREVENUEHISTORY, REVENUECRITERIACODE, LOWREVENUEAMOUNT, HIGHREVENUEAMOUNT, MARGINTOP, MARGINBOTTOM, MARGINLEFT, MARGINRIGHT, PAPERSIZECODE, PAPERWIDTH, PAPERHEIGHT, MAILPACKAGEID, EMAILPACKAGEID, MAILSEGMENTID, EMAILSEGMENTID, CANNEDSELECTIONIDSETREGISTERID, MKTASKLADDERID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values
            (@ID, null, 1, @NAME, @CHANNELCODE, @CHANNELPREFERENCECODE, @SENDTOOPTIONCODE, @CONSTITUENTINCLUDECODE, @CONSIDERREVENUEHISTORY, @REVENUECRITERIACODE, @LOWREVENUEAMOUNT, @HIGHREVENUEAMOUNT, @MARGINTOP, @MARGINBOTTOM, @MARGINLEFT, @MARGINRIGHT, @PAPERSIZECODE, @PAPERWIDTH, @PAPERHEIGHT, @MAILPACKAGEID, @EMAILPACKAGEID, @MAILSEGMENTID, @EMAILSEGMENTID, @IDSETREGISTERID, @MKTASKLADDERID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        --exec dbo.USP_APPEALMAILINGSETUPLETTER_GETSELECTIONS_ADDFROMXML @ID, @SELECTIONS, @CHANGEAGENTID, @CURRENTDATE;


    end try

    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

    return 0;