USP_DATAFORMTEMPLATE_ADD_MKTTESTSEGMENTATION
The save procedure used by the add dataform template "Test Marketing Effort Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@SEGMENTATIONID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@CODE | nvarchar(10) | IN | Code |
@SAMPLESIZE | int | IN | Sample size |
@SAMPLESIZETYPECODE | tinyint | IN | Sample size type |
@SOURCECODEID | uniqueidentifier | IN | Source code |
@ITEMLIST | xml | IN | Items |
@MAILDATE | datetime | IN | Date |
@HOUSEHOLDINGTYPECODE | tinyint | IN | Include |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@EXCLUSIONDATETYPECODE | tinyint | IN | Consider exclusions as of |
@EXCLUSIONASOFDATE | datetime | IN | Consider exclusions as of |
@EXCLUDEDECEASED | bit | IN | Exclude deceased constituents |
@EXCLUDEINACTIVE | bit | IN | Exclude inactive constituents |
@EXCLUSIONS | xml | IN | Exclusions |
@USEADDRESSPROCESSING | bit | IN | Use address processing? |
@ADDRESSPROCESSINGOPTIONID | uniqueidentifier | IN | Address processing options |
@NAMEFORMATPARAMETERID | uniqueidentifier | IN | Name format options |
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE | tinyint | IN | Consider seasonal addresses as of |
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE | datetime | IN | Consider seasonal addresses as of |
@ACTIVATIONKPIS | xml | IN | Activation KPIs |
@USEKPISASDEFAULT | bit | IN | Use the chosen KPIs as the default for future marketing efforts |
@APPEALINFORMATION | xml | IN | Appeal information including the appeal searchlist and record source. |
@RUNACTIVATEANDEXPORT | bit | IN | Export marketing effort when activation completes |
@EXPORTDESCRIPTION | nvarchar(255) | IN | Export description |
@MAILEXPORTDEFINITIONID | uniqueidentifier | IN | Mail export definition |
@EMAILEXPORTDEFINITIONID | uniqueidentifier | IN | Email export definition |
@PHONEEXPORTDEFINITIONID | uniqueidentifier | IN | Phone export definition |
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD | bit | IN | Also include qualifying individuals who are not members of any household |
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS | bit | IN | Also include qualifying households which do not have any members |
@HOUSEHOLDINGONERECORDPERHOUSEHOLD | bit | IN | Send to one person per household |
@CODEVALUEID | uniqueidentifier | IN | Code value ID |
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS | bit | IN | Refresh segment selections and filters |
@CACHESOURCEANALYSISRULEDATA | bit | IN | Capture source analysis rule data |
@OVERRIDEBUSINESSUNITS | bit | IN | Override appeal business units |
@BUSINESSUNITS | xml | IN | Business units |
@RUNMARKETINGEXCLUSIONSREPORT | bit | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTTESTSEGMENTATION]
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@SEGMENTATIONID uniqueidentifier,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255) = '',
@CODE nvarchar(10) = '',
@SAMPLESIZE int = 5,
@SAMPLESIZETYPECODE tinyint = 0,
@SOURCECODEID uniqueidentifier = null,
@ITEMLIST xml = null,
@MAILDATE datetime = null,
@HOUSEHOLDINGTYPECODE tinyint = 0,
@CURRENTAPPUSERID uniqueidentifier,
@EXCLUSIONDATETYPECODE tinyint = 0,
@EXCLUSIONASOFDATE datetime = null,
@EXCLUDEDECEASED bit = 1,
@EXCLUDEINACTIVE bit = 1,
@EXCLUSIONS xml = null,
@USEADDRESSPROCESSING bit = 0,
@ADDRESSPROCESSINGOPTIONID uniqueidentifier = null,
@NAMEFORMATPARAMETERID uniqueidentifier = null,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint = 0,
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime = null,
@ACTIVATIONKPIS xml = null,
@USEKPISASDEFAULT bit = 0,
@APPEALINFORMATION xml = null,
@RUNACTIVATEANDEXPORT bit = 0,
@EXPORTDESCRIPTION nvarchar(255) = null,
@MAILEXPORTDEFINITIONID uniqueidentifier = null,
@EMAILEXPORTDEFINITIONID uniqueidentifier = null,
@PHONEEXPORTDEFINITIONID uniqueidentifier = null,
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit = 0,
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit = 0,
@HOUSEHOLDINGONERECORDPERHOUSEHOLD bit = 0,
@CODEVALUEID uniqueidentifier = null,
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS bit = 0,
@CACHESOURCEANALYSISRULEDATA bit = 1,
@OVERRIDEBUSINESSUNITS bit = 0,
@BUSINESSUNITS xml = null,
@RUNMARKETINGEXCLUSIONSREPORT bit = 1
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @PARENTID uniqueidentifier;
declare @OLDHOUSEHOLDINGTYPECODE bit;
declare @OLDHOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit;
declare @OLDHOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit;
declare @OLDHOUSEHOLDINGONERECORDPERHOUSEHOLD bit;
declare @OLDUSEADDRESSPROCESSING bit;
declare @OLDADDRESSPROCESSINGOPTIONID uniqueidentifier;
declare @OLDADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint;
declare @OLDADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime;
declare @OLDEXCLUSIONDATETYPECODE as tinyint;
declare @OLDEXCLUSIONASOFDATE as datetime;
declare @OLDEXCLUDEDECEASED as bit;
declare @OLDEXCLUDEINACTIVE as bit;
declare @OLDEXCLUSIONS as xml;
declare @OLDRUNSEGMENTATIONSEGMENTREFRESHPROCESS as bit;
declare @OLDCACHESOURCEANALYSISRULEDATA as bit;
declare @MKTSEGMENTATIONACTIVATEPROCESSID uniqueidentifier;
declare @ADDRESSPROCESSINGOPTIONSCHANGED bit;
declare @EXCLUSIONSCHANGED bit;
declare @BASECURRENCYID uniqueidentifier;
declare @OLDRUNMARKETINGEXCLUSIONSREPORT as bit;
begin try
--Check if the mailing is currently being activated...
exec dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @SEGMENTATIONID;
set @CURRENTDATE = GetDate();
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
select
@PARENTID = [MKTSEGMENTATION].[ID],
@OLDHOUSEHOLDINGTYPECODE = [MKTSEGMENTATION].[HOUSEHOLDINGTYPECODE],
@OLDHOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD = [MKTSEGMENTATION].[HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD],
@OLDHOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS = [MKTSEGMENTATION].[HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS],
@OLDHOUSEHOLDINGONERECORDPERHOUSEHOLD = [MKTSEGMENTATION].[HOUSEHOLDINGONERECORDPERHOUSEHOLD],
@OLDUSEADDRESSPROCESSING = [MKTSEGMENTATION].[USEADDRESSPROCESSING],
@OLDADDRESSPROCESSINGOPTIONID = [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONID],
@OLDADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE = [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE],
@OLDADDRESSPROCESSINGOPTIONSEASONALASOFDATE = [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE],
@OLDEXCLUSIONDATETYPECODE = [BUSINESSPROCESSCOMMPREF].[DATETYPECODE],
@OLDEXCLUSIONASOFDATE = [BUSINESSPROCESSCOMMPREF].[ASOFDATE],
@OLDEXCLUDEDECEASED = [BUSINESSPROCESSCOMMPREF].[EXCLUDEDECEASED],
@OLDEXCLUDEINACTIVE = [BUSINESSPROCESSCOMMPREF].[EXCLUDEINACTIVE],
@OLDEXCLUSIONS = dbo.[UFN_BUSINESSPROCESSCOMMPREF_GETEXCLUSIONS_TOITEMLISTXML]([MKTSEGMENTATIONACTIVATEPROCESS].[ID]),
@OLDRUNSEGMENTATIONSEGMENTREFRESHPROCESS = [MKTSEGMENTATIONACTIVATEPROCESS].[RUNSEGMENTATIONSEGMENTREFRESHPROCESS],
@OLDCACHESOURCEANALYSISRULEDATA = [MKTSEGMENTATIONACTIVATEPROCESS].[CACHESOURCEANALYSISRULEDATA],
@BASECURRENCYID = [MKTSEGMENTATION].[BASECURRENCYID]
from dbo.[MKTSEGMENTATION]
inner join dbo.[MKTSEGMENTATIONACTIVATEPROCESS] on [MKTSEGMENTATIONACTIVATEPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
left join dbo.[BUSINESSPROCESSCOMMPREF] on [BUSINESSPROCESSCOMMPREF].[BUSINESSPROCESSPARAMETERSETID] = [MKTSEGMENTATIONACTIVATEPROCESS].[ID]
where [MKTSEGMENTATION].[ID] = @SEGMENTATIONID;
set @ADDRESSPROCESSINGOPTIONSCHANGED = dbo.[UFN_MKTSEGMENTATION_COMPAREADDRESSPROCESSINGOPTIONS](@USEADDRESSPROCESSING, @ADDRESSPROCESSINGOPTIONID, @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE, @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE, @OLDUSEADDRESSPROCESSING, @OLDADDRESSPROCESSINGOPTIONID, @OLDADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE, @OLDADDRESSPROCESSINGOPTIONSEASONALASOFDATE);
set @EXCLUSIONSCHANGED = dbo.[UFN_MKTSEGMENTATION_COMPARECOMMPREFS](@EXCLUSIONDATETYPECODE, @EXCLUSIONASOFDATE, @EXCLUDEDECEASED, @EXCLUDEINACTIVE, @EXCLUSIONS, @OLDEXCLUSIONDATETYPECODE, @OLDEXCLUSIONASOFDATE, @OLDEXCLUDEDECEASED, @OLDEXCLUDEINACTIVE, @OLDEXCLUSIONS);
--@SEGMENTATIONID goes in as the SOURCE SEGMENTATION ID, and comes out as the COPY's ID
exec dbo.[USP_MKTSEGMENTATION_COPY_HELPER]
@SEGMENTATIONID output,
@CURRENTAPPUSERID,
@CHANGEAGENTID,
0,
null,
'{0} - Copy{1}';
set @ID = @SEGMENTATIONID;
--Copy in any test mailings as exclusions on the parent mailing...
declare @PREVIOUSSEGMENTATIONID uniqueidentifier;
declare EXCEPTIONCURSOR cursor local fast_forward for
select [ID]
from [MKTSEGMENTATION]
where [PARENTSEGMENTATIONID] = @PARENTID
and [ACTIVE] = 1;
open EXCEPTIONCURSOR;
fetch next from EXCEPTIONCURSOR into @PREVIOUSSEGMENTATIONID;
while (@@FETCH_STATUS = 0)
begin
if not exists(select [ID] from dbo.[MKTSEGMENTATIONFILTERSEGMENTATION] where [SEGMENTATIONID] = @SEGMENTATIONID and [PREVIOUSSEGMENTATIONID] = @PREVIOUSSEGMENTATIONID)
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONFILTERSEGMENTATION] null, @CHANGEAGENTID, @SEGMENTATIONID, @PREVIOUSSEGMENTATIONID;
fetch next from EXCEPTIONCURSOR into @PREVIOUSSEGMENTATIONID;
end;
close EXCEPTIONCURSOR;
deallocate EXCEPTIONCURSOR;
--Set the fields for the test mailing that the user may have changed...
update dbo.[MKTSEGMENTATION] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[CODE] = @CODE,
[PARTDEFINITIONVALUESID] = @CODEVALUEID,
[SOURCECODEID] = @SOURCECODEID,
[MAILDATE] = @MAILDATE,
[SAMPLESIZE] = @SAMPLESIZE,
[SAMPLESIZETYPECODE] = @SAMPLESIZETYPECODE,
[HOUSEHOLDINGTYPECODE] = @HOUSEHOLDINGTYPECODE,
[HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD] = @HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD,
[HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS] = @HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
[HOUSEHOLDINGONERECORDPERHOUSEHOLD] = @HOUSEHOLDINGONERECORDPERHOUSEHOLD,
[USEADDRESSPROCESSING] = @USEADDRESSPROCESSING,
[ADDRESSPROCESSINGOPTIONID] = @ADDRESSPROCESSINGOPTIONID,
[NAMEFORMATPARAMETERID] = @NAMEFORMATPARAMETERID,
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE] = @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE,
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE] = @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE,
[RUNACTIVATEANDEXPORT] = @RUNACTIVATEANDEXPORT,
[PARENTSEGMENTATIONID] = @PARENTID,
[OVERRIDEBUSINESSUNITS] = @OVERRIDEBUSINESSUNITS,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE,
[BASECURRENCYID] = @BASECURRENCYID
where [ID] = @SEGMENTATIONID;
exec dbo.USP_MKTSEGMENTATIONBUSINESSUNIT_GETBUSINESSUNITS_UPDATEFROMXML @ID, @BUSINESSUNITS, @CHANGEAGENTID;
select @MKTSEGMENTATIONACTIVATEPROCESSID = [ID]
from dbo.[MKTSEGMENTATIONACTIVATEPROCESS]
where [SEGMENTATIONID] = @SEGMENTATIONID;
if (@RUNSEGMENTATIONSEGMENTREFRESHPROCESS <> @OLDRUNSEGMENTATIONSEGMENTREFRESHPROCESS) or
(@CACHESOURCEANALYSISRULEDATA <> @OLDCACHESOURCEANALYSISRULEDATA) or
(@RUNMARKETINGEXCLUSIONSREPORT <> @OLDRUNMARKETINGEXCLUSIONSREPORT)
exec dbo.[USP_MKTSEGMENTATIONACTIVATEPROCESS_SAVE] @SEGMENTATIONID, @CHANGEAGENTID, 1, @RUNSEGMENTATIONSEGMENTREFRESHPROCESS, @CACHESOURCEANALYSISRULEDATA, @RUNMARKETINGEXCLUSIONSREPORT;
if @EXCLUSIONSCHANGED = 1
begin
--Update the contact rules/communication preferences for the mailing activation business process...
exec dbo.[USP_BUSINESSPROCESSCOMMPREF_UPDATE]
@CHANGEAGENTID = @CHANGEAGENTID,
@BUSINESSPROCESSCATALOGID = '22C3D75C-A956-4BFC-A5FD-4B866BAEF509',
@BUSINESSPROCESSPARAMETERSETID = @MKTSEGMENTATIONACTIVATEPROCESSID,
@EXCLUSIONDATETYPECODE = @EXCLUSIONDATETYPECODE,
@EXCLUSIONASOFDATE = @EXCLUSIONASOFDATE,
@EXCLUDEDECEASED = @EXCLUDEDECEASED,
@EXCLUDEINACTIVE = @EXCLUDEINACTIVE,
@EXCLUSIONS = @EXCLUSIONS,
@CURRENTAPPUSERID = @CURRENTAPPUSERID;
end;
--Set all the segments to the correct sample size (only for non-vendormanaged segments)...
update dbo.[MKTSEGMENTATIONSEGMENT] set
[SAMPLESIZE] = @SAMPLESIZE,
[SAMPLESIZETYPECODE] = @SAMPLESIZETYPECODE,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
from dbo.[MKTSEGMENTATIONSEGMENT] as [SS]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [SS].[SEGMENTID]
where [SS].[SEGMENTATIONID] = @SEGMENTATIONID
and ([MKTSEGMENT].[SEGMENTTYPECODE] <> 2 or ([MKTSEGMENT].[SEGMENTTYPECODE] = 2 and dbo.[UFN_MKTSEGMENT_ISVENDORMANAGEDLIST]([MKTSEGMENT].[ID]) = 0));
-- BTR CR287449-110707 11/20/2007
-- respect sample size when creating test mailings for mailings with vendor managed list segments
declare @SEGMENTATIONSEGMENTID uniqueidentifier;
declare @SEGMENTID uniqueidentifier;
declare @RENTALQUANTITY integer;
declare @EXCHANGEQUANTITY integer;
declare @BASERENTALCOST money;
declare @BASERENTALCOSTBASISCODE tinyint;
declare @BASEEXCHANGECOST money;
declare @BASEEXCHANGECOSTBASISCODE tinyint;
declare @RENTALCOSTADJUSTMENT money;
declare @RENTALCOSTADJUSTMENTBASISCODE tinyint;
declare @EXCHANGECOSTADJUSTMENT money;
declare @EXCHANGECOSTADJUSTMENTBASISCODE tinyint;
declare SEGMENTCURSOR cursor local fast_forward for
select [MKTSEGMENTATIONSEGMENT].[ID], [MKTSEGMENT].[ID]
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @SEGMENTATIONID
and [MKTSEGMENT].[SEGMENTTYPECODE] = 2
and dbo.[UFN_MKTSEGMENT_ISVENDORMANAGEDLIST]([MKTSEGMENT].[ID]) = 1;
open SEGMENTCURSOR;
fetch next from SEGMENTCURSOR into @SEGMENTATIONSEGMENTID, @SEGMENTID;
while (@@FETCH_STATUS = 0)
begin
if exists(select top 1 1 from dbo.[MKTSEGMENTATIONSEGMENTLIST] where [ID] = @SEGMENTATIONSEGMENTID)
begin
select
@RENTALQUANTITY = [RENTALQUANTITY],
@EXCHANGEQUANTITY = [EXCHANGEQUANTITY]
from dbo.[MKTSEGMENTATIONSEGMENTLIST]
where [ID] = @SEGMENTATIONSEGMENTID;
update dbo.[MKTSEGMENTATIONSEGMENTLIST] set
[OVERRIDEQUANTITIESANDORSEGMENTCOSTS] = 1,
[RENTALQUANTITY] = (case when @SAMPLESIZETYPECODE = 0 then -- percent
floor(cast(@RENTALQUANTITY as decimal(20,5)) * (cast(@SAMPLESIZE as decimal(20,5)) / 100))
else -- records
(case when @SAMPLESIZE < @RENTALQUANTITY then @SAMPLESIZE else @RENTALQUANTITY end)
end),
[EXCHANGEQUANTITY] = (case when @SAMPLESIZETYPECODE = 0 then -- percent
floor(cast(@EXCHANGEQUANTITY as decimal(20,5)) * (cast(@SAMPLESIZE as decimal(20,5)) / 100))
else -- records
(case when @SAMPLESIZE < @EXCHANGEQUANTITY then @SAMPLESIZE else @EXCHANGEQUANTITY end)
end),
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @SEGMENTATIONSEGMENTID;
end;
else
begin
select
@RENTALQUANTITY = [MKTSEGMENTLIST].[RENTALQUANTITY],
@EXCHANGEQUANTITY = [MKTSEGMENTLIST].[EXCHANGEQUANTITY],
@BASERENTALCOST = [MKTLIST].[BASERENTALCOST],
@BASERENTALCOSTBASISCODE = [MKTLIST].[BASERENTALCOSTBASISCODE],
@BASEEXCHANGECOST = [MKTLIST].[BASEEXCHANGECOST],
@BASEEXCHANGECOSTBASISCODE = [MKTLIST].[BASEEXCHANGECOSTBASISCODE],
@RENTALCOSTADJUSTMENT = [MKTSEGMENTLIST].[RENTALCOSTADJUSTMENT],
@RENTALCOSTADJUSTMENTBASISCODE = [MKTSEGMENTLIST].[RENTALCOSTBASISCODE],
@EXCHANGECOSTADJUSTMENT = [MKTSEGMENTLIST].[EXCHANGECOSTADJUSTMENT],
@EXCHANGECOSTADJUSTMENTBASISCODE = [MKTSEGMENTLIST].[EXCHANGECOSTBASISCODE]
from dbo.[MKTSEGMENT]
inner join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
inner join dbo.[MKTLIST] on [MKTLIST].[ID] = [MKTSEGMENTLIST].[LISTID]
where [MKTSEGMENT].[ID] = @SEGMENTID;
insert into dbo.[MKTSEGMENTATIONSEGMENTLIST] (
[ID],
[OVERRIDEQUANTITIESANDORSEGMENTCOSTS],
[OVERRIDELISTCOSTS],
[BASERENTALCOST],
[BASERENTALCOSTBASISCODE],
[RENTALQUANTITY],
[RENTALCOSTADJUSTMENT],
[RENTALCOSTADJUSTMENTBASISCODE],
[BASEEXCHANGECOST],
[BASEEXCHANGECOSTBASISCODE],
[EXCHANGEQUANTITY],
[EXCHANGECOSTADJUSTMENT],
[EXCHANGECOSTADJUSTMENTBASISCODE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
@SEGMENTATIONSEGMENTID,
1,
0,
@BASERENTALCOST,
@BASERENTALCOSTBASISCODE,
(case when @SAMPLESIZETYPECODE = 0 then
floor(cast(@RENTALQUANTITY as decimal(20,5)) * (cast(@SAMPLESIZE as decimal(20,5)) / 100))
else
(case when @SAMPLESIZE < @RENTALQUANTITY then @SAMPLESIZE else @RENTALQUANTITY end)
end),
@RENTALCOSTADJUSTMENT,
@RENTALCOSTADJUSTMENTBASISCODE,
@BASEEXCHANGECOST,
@BASEEXCHANGECOSTBASISCODE,
(case when @SAMPLESIZETYPECODE = 0 then
floor(cast(@EXCHANGEQUANTITY as decimal(20,5)) * (cast(@SAMPLESIZE as decimal(20,5)) / 100))
else
(case when @SAMPLESIZE < @EXCHANGEQUANTITY then @SAMPLESIZE else @EXCHANGEQUANTITY end)
end),
@EXCHANGECOSTADJUSTMENT,
@EXCHANGECOSTADJUSTMENTBASISCODE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end;
fetch next from SEGMENTCURSOR into @SEGMENTATIONSEGMENTID, @SEGMENTID;
end;
--Save the source code information that the user may have changed...
exec dbo.[USP_MKTSOURCECODEPART_GETITEMLIST2_UPDATEFROMXML] @SEGMENTATIONID, @ITEMLIST, @CHANGEAGENTID, @CURRENTDATE;
/* Save KPIs */
exec dbo.[USP_MKTSEGMENTATIONACTIVATEKPI_SAVEFIELD_FROMXML]
@ID,
@ACTIVATIONKPIS,
@USEKPISASDEFAULT,
@CHANGEAGENTID,
@CURRENTAPPUSERID;
/* Save the appeal information */
exec dbo.[USP_MKTSEGMENTATIONACTIVATE_SAVEFIELD_FROMXML]
@ID,
@APPEALINFORMATION,
@CHANGEAGENTID;
/* Update the export information */
update dbo.[MKTSEGMENTATIONEXPORTPROCESS] set
[DESCRIPTION] = @EXPORTDESCRIPTION,
[MAILEXPORTDEFINITIONID] = @MAILEXPORTDEFINITIONID,
[EMAILEXPORTDEFINITIONID] = @EMAILEXPORTDEFINITIONID,
[PHONEEXPORTDEFINITIONID] = @PHONEEXPORTDEFINITIONID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [SEGMENTATIONID] = @SEGMENTATIONID;
if (select [MAILINGTYPECODE] from dbo.[MKTSEGMENTATION] where [ID] = @ID) = 3
begin
/* For sponsorship efforts, save a link to the business process. */
declare @SPONSORSHIPMAILINGPROCESSSTATUSID uniqueidentifier;
select
@SPONSORSHIPMAILINGPROCESSSTATUSID = [MKTSPONSORSHIPMAILINGPROCESSSEGMENTATION].[SPONSORSHIPMAILINGPROCESSSTATUSID]
from dbo.[MKTSEGMENTATION]
inner join dbo.[MKTSPONSORSHIPMAILINGPROCESSSEGMENTATION] on [MKTSPONSORSHIPMAILINGPROCESSSEGMENTATION].[SEGMENTATIONID] = [MKTSEGMENTATION].[PARENTSEGMENTATIONID]
where [MKTSEGMENTATION].[ID] = @ID;
insert into dbo.[MKTSPONSORSHIPMAILINGPROCESSSEGMENTATION] (
[ID],
[SPONSORSHIPMAILINGPROCESSSTATUSID],
[SEGMENTATIONID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
newid(),
@SPONSORSHIPMAILINGPROCESSSTATUSID,
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;