USP_MKTMEMBERSHIPMAILINGTEMPLATE_COPY
Executes the "Membership Renewal Effort Template: Copy" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | Input parameter indicating the ID of the record being updated. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the update. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.[USP_MKTMEMBERSHIPMAILINGTEMPLATE_COPY]
(
@ID uniqueidentifier output,
@CHANGEAGENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier
)
as
set nocount on;
declare @SOURCEID uniqueidentifier;
declare @TARGETID uniqueidentifier;
declare @CURRENTDATE datetime;
begin try
set @SOURCEID = @ID;
set @TARGETID = newid();
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
/* create the new membership mailing template */
declare @DATALOADED bit;
declare @CODE nvarchar(10);
declare @CODEVALUEID uniqueidentifier;
declare @NAME nvarchar(100);
declare @DESCRIPTION nvarchar(255);
declare @SITEID uniqueidentifier;
declare @SOURCECODEID uniqueidentifier;
declare @ITEMLIST xml;
declare @SITEREQUIRED bit;
declare @SITECANBECHANGED bit;
declare @ISBBEC bit;
declare @OWNERID uniqueidentifier;
declare @EXCLUSIONDATETYPECODE tinyint;
declare @EXCLUSIONASOFDATE datetime;
declare @EXCLUDEDECEASED bit;
declare @EXCLUDEINACTIVE bit;
declare @EXCLUSIONS xml;
declare @USEADDRESSPROCESSING bit;
declare @ADDRESSPROCESSINGOPTIONID uniqueidentifier;
declare @NAMEFORMATPARAMETERID uniqueidentifier;
declare @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint;
declare @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime;
declare @TSLONG bigint;
declare @ACTIVATIONKPIS xml;
declare @USEKPISASDEFAULT bit;
declare @RUNACTIVATEANDEXPORT bit;
declare @EXPORTDESCRIPTION nvarchar(255);
declare @MAILEXPORTDEFINITIONID uniqueidentifier;
declare @EMAILEXPORTDEFINITIONID uniqueidentifier;
declare @RUNSEGMENTATIONSEGMENTREFRESHPROCESS bit;
declare @CACHESOURCEANALYSISRULEDATA bit;
declare @ISBBAC bit;
declare @BASECURRENCYID uniqueidentifier;
declare @RUNMARKETINGEXCLUSIONSREPORT bit;
exec dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTMEMBERSHIPMAILINGTEMPLATE_2]
@ID = @SOURCEID,
@CURRENTAPPUSERID = @CURRENTAPPUSERID,
@DATALOADED = @DATALOADED output,
@CODE = @CODE output,
@NAME = @NAME output,
@DESCRIPTION = @DESCRIPTION output,
@SITEID = @SITEID output,
@SOURCECODEID = @SOURCECODEID output,
@ITEMLIST = @ITEMLIST output,
@SITEREQUIRED = @SITEREQUIRED output,
@SITECANBECHANGED = @SITECANBECHANGED output,
@ISBBEC = @ISBBEC output,
@OWNERID = @OWNERID output,
@EXCLUSIONDATETYPECODE = @EXCLUSIONDATETYPECODE output,
@EXCLUSIONASOFDATE = @EXCLUSIONASOFDATE output,
@EXCLUDEDECEASED = @EXCLUDEDECEASED output,
@EXCLUDEINACTIVE = @EXCLUDEINACTIVE output,
@EXCLUSIONS = null,
@USEADDRESSPROCESSING = @USEADDRESSPROCESSING output,
@ADDRESSPROCESSINGOPTIONID = @ADDRESSPROCESSINGOPTIONID output,
@NAMEFORMATPARAMETERID = @NAMEFORMATPARAMETERID output,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE = @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE output,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE = @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE output,
@TSLONG = @TSLONG output,
@ACTIVATIONKPIS = @ACTIVATIONKPIS output,
@USEKPISASDEFAULT = @USEKPISASDEFAULT output,
@APPEALINFORMATION = null,
@RUNACTIVATEANDEXPORT = @RUNACTIVATEANDEXPORT output,
@EXPORTDESCRIPTION = @EXPORTDESCRIPTION output,
@MAILEXPORTDEFINITIONID = @MAILEXPORTDEFINITIONID output,
@EMAILEXPORTDEFINITIONID = @EMAILEXPORTDEFINITIONID output,
@CODEVALUEID = @CODEVALUEID output,
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS = @RUNSEGMENTATIONSEGMENTREFRESHPROCESS output,
@CACHESOURCEANALYSISRULEDATA = @CACHESOURCEANALYSISRULEDATA output,
@ISBBAC = @ISBBAC output,
@BASECURRENCYID = @BASECURRENCYID output,
@RUNMARKETINGEXCLUSIONSREPORT = @RUNMARKETINGEXCLUSIONSREPORT output;
declare @UNIQUENAME nvarchar(50);
set @UNIQUENAME = dbo.[UFN_MKTMEMBERSHIPMAILINGTEMPLATE_GETUNIQUENAME](@NAME);
-- return only the selected solicit code exclusions
-- (required are always used by default and thus aren't even saved to the database)
select
@EXCLUSIONS = dbo.[UFN_MKTSEGMENTATION_GETSELECTEDSOLICITCODEEXCLUSIONS_TOITEMLISTXML]([MKTMEMBERSHIPMAILINGPROCESS].[ID])
from dbo.[MKTMEMBERSHIPMAILINGTEMPLATE]
inner join dbo.[MKTMEMBERSHIPMAILINGPROCESS] on [MKTMEMBERSHIPMAILINGPROCESS].[MEMBERSHIPMAILINGTEMPLATEID] = [MKTMEMBERSHIPMAILINGTEMPLATE].[ID]
where [MKTMEMBERSHIPMAILINGTEMPLATE].[ID] = @SOURCEID;
-- null out existing IDs from solicit code exclusions
if @EXCLUSIONS is not null
set @EXCLUSIONS.modify('delete /EXCLUSIONS/ITEM/ID');
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTMEMBERSHIPMAILINGTEMPLATE]
@ID = @TARGETID output,
@CURRENTAPPUSERID = @CURRENTAPPUSERID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CODE = @CODE,
@NAME = @UNIQUENAME,
@DESCRIPTION = @DESCRIPTION,
@INCLUDESELECTIONS = null,
@EXCLUDESELECTIONS = null,
@SOURCECODEID = @SOURCECODEID,
@ITEMLIST = null,
@SITEID = @SITEID,
@EXCLUSIONDATETYPECODE = @EXCLUSIONDATETYPECODE,
@EXCLUSIONASOFDATE = @EXCLUSIONASOFDATE,
@EXCLUDEDECEASED = @EXCLUDEDECEASED,
@EXCLUDEINACTIVE = @EXCLUDEINACTIVE,
@EXCLUSIONS = @EXCLUSIONS,
@USEADDRESSPROCESSING = @USEADDRESSPROCESSING,
@ADDRESSPROCESSINGOPTIONID = @ADDRESSPROCESSINGOPTIONID,
@NAMEFORMATPARAMETERID = @NAMEFORMATPARAMETERID,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE = @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE = @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE,
@ACTIVATIONKPIS = @ACTIVATIONKPIS,
@USEKPISASDEFAULT = @USEKPISASDEFAULT,
@APPEALINFORMATION = null,
@RUNACTIVATEANDEXPORT = @RUNACTIVATEANDEXPORT,
@EXPORTDESCRIPTION = @EXPORTDESCRIPTION,
@MAILEXPORTDEFINITIONID = @MAILEXPORTDEFINITIONID,
@EMAILEXPORTDEFINITIONID = @EMAILEXPORTDEFINITIONID,
@CODEVALUEID = @CODEVALUEID,
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS = @RUNSEGMENTATIONSEGMENTREFRESHPROCESS,
@CACHESOURCEANALYSISRULEDATA = @CACHESOURCEANALYSISRULEDATA,
@BASECURRENCYID = @BASECURRENCYID,
@RUNMARKETINGEXCLUSIONSREPORT = @RUNMARKETINGEXCLUSIONSREPORT;
/* copy the universe/exclusion selection filters */
insert into dbo.[MKTMEMBERSHIPMAILINGTEMPLATEFILTERSELECTION] (
[MEMBERSHIPMAILINGTEMPLATEID],
[FILTERTYPECODE],
[SELECTIONID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
@TARGETID,
[FILTERTYPECODE],
[SELECTIONID],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTMEMBERSHIPMAILINGTEMPLATEFILTERSELECTION]
where [MEMBERSHIPMAILINGTEMPLATEID] = @SOURCEID;
/* copy the source code parts */
insert into dbo.[MKTSOURCECODEPART]
(
[MEMBERSHIPMAILINGTEMPLATEID],
[SOURCECODEITEMID],
[LISTID],
[CHANNELCODE],
[CODE],
[PARTDEFINITIONVALUESID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
@TARGETID,
[SOURCECODEITEMID],
[LISTID],
[CHANNELCODE],
[CODE],
[PARTDEFINITIONVALUESID],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTSOURCECODEPART]
where [MEMBERSHIPMAILINGTEMPLATEID] = @SOURCEID;
/* copy the appeals */
insert into dbo.[MKTMEMBERSHIPMAILINGTEMPLATEAPPEAL] (
[ID],
[MEMBERSHIPMAILINGTEMPLATEID],
[RECORDSOURCEID],
[APPEALSYSTEMID],
[APPEALID],
[APPEALDESCRIPTION],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
newid(),
@TARGETID,
[RECORDSOURCEID],
[APPEALSYSTEMID],
[APPEALID],
[APPEALDESCRIPTION],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTMEMBERSHIPMAILINGTEMPLATEAPPEAL]
where [MEMBERSHIPMAILINGTEMPLATEID] = @SOURCEID;
/* copy the rules */
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if @ORGANIZATIONCURRENCYID <> @BASECURRENCYID
set @CURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
insert into dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE]
(
[ID],
[MEMBERSHIPMAILINGTEMPLATEID],
[SEGMENTID],
[CODE],
[PARTDEFINITIONVALUESID],
[TESTSEGMENTCODE],
[TESTPARTDEFINITIONVALUESID],
[PACKAGEID],
[RESPONSERATE],
[GIFTAMOUNT],
[SEQUENCE],
[ASKLADDERID],
[OVERRIDEADDRESSPROCESSING],
[USEADDRESSPROCESSING],
[ADDRESSPROCESSINGOPTIONID],
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE],
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE],
[NAMEFORMATPARAMETERID],
[BASECURRENCYID],
[ORGANIZATIONGIFTAMOUNT],
[CURRENCYEXCHANGERATEID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[EXCLUDE]
)
select
newid(),
@TARGETID,
[SEGMENTID],
[CODE],
[PARTDEFINITIONVALUESID],
[TESTSEGMENTCODE],
[TESTPARTDEFINITIONVALUESID],
[PACKAGEID],
[RESPONSERATE],
[GIFTAMOUNT],
[SEQUENCE],
[ASKLADDERID],
[OVERRIDEADDRESSPROCESSING],
[USEADDRESSPROCESSING],
[ADDRESSPROCESSINGOPTIONID],
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE],
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE],
[NAMEFORMATPARAMETERID],
[BASECURRENCYID],
(case when @ORGANIZATIONCURRENCYID = @BASECURRENCYID then [GIFTAMOUNT] else dbo.[UFN_CURRENCY_CONVERT]([GIFTAMOUNT], @CURRENCYEXCHANGERATEID) end),
@CURRENCYEXCHANGERATEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
[EXCLUDE]
from dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE]
where [MEMBERSHIPMAILINGTEMPLATEID] = @SOURCEID;
/* copy the seeds */
insert into dbo.[MKTMEMBERSHIPMAILINGTEMPLATESEED]
(
[MEMBERSHIPMAILINGTEMPLATEID],
[SEEDID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
@TARGETID,
[SEEDID],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTMEMBERSHIPMAILINGTEMPLATESEED]
where [MEMBERSHIPMAILINGTEMPLATEID] = @SOURCEID;
/* copy any ask ladder overrides */
insert into dbo.[MKTMEMBERSHIPMAILINGTEMPLATEASKLADDEROVERRIDE]
(
[ID],
[MEMBERSHIPMAILINGTEMPLATEID],
[ASKLADDERID],
[IDSETREGISTERID],
[SEQUENCE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
newid(),
@TARGETID,
[ASKLADDERID],
[IDSETREGISTERID],
[SEQUENCE],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTMEMBERSHIPMAILINGTEMPLATEASKLADDEROVERRIDE]
where [MEMBERSHIPMAILINGTEMPLATEID] = @SOURCEID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;