USP_DATAFORMTEMPLATE_EDITLOAD_MKTSPONSORSHIPMAILINGTEMPLATERULE_MULTIPLE
The load procedure used by the edit dataform template "Sponsorship Effort Template Multiple Rule Edit Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | nvarchar(max) | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@SPONSORSHIPMAILINGTEMPLATEID | uniqueidentifier | INOUT | Sponsorship Effort Template |
@ASKLADDER | xml | INOUT | Ask ladder |
@ASKLADDERLOADED | bit | INOUT | Ask ladder loaded |
@ASKLADDERLOCKED | bit | INOUT | Ask ladder locked |
@PACKAGEID | uniqueidentifier | INOUT | Package |
@PACKAGECODE | nvarchar(10) | INOUT | Package code |
@PACKAGELOADED | bit | INOUT | Package loaded |
@RESPONSERATE | decimal(5, 2) | INOUT | Response rate |
@RESPONSERATELOADED | bit | INOUT | Response rate loaded |
@GIFTAMOUNT | money | INOUT | Gift amount |
@GIFTAMOUNTLOADED | bit | INOUT | Gift amount loaded |
@SOURCECODEID | uniqueidentifier | INOUT | Source code ID |
@SPONSORSHIPMAILINGTEMPLATESITEID | uniqueidentifier | INOUT | Sponsorship Effort Template site ID |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@BASECURRENCYID | uniqueidentifier | INOUT | Base currency ID |
@PACKAGEADDDATAFORMCONTEXT | nvarchar(128) | INOUT | Package add data form context |
@PACKAGECODEVALUEID | uniqueidentifier | INOUT | Package code value ID |
@EXCLUDE | bit | INOUT | Exclude from effort but show counts |
@EXCLUDELOADED | bit | INOUT | Exclude loaded |
@EXCLUDELOCKED | bit | INOUT | Exclude locked |
@PACKAGEPARTDEFINITIONID | uniqueidentifier | INOUT | |
@PACKAGECHANNELCODE | tinyint | INOUT | |
@CHANNELPARTDEFINITIONID | uniqueidentifier | INOUT | |
@CHANNELCODEVALUEID | uniqueidentifier | INOUT | |
@CHANNELCODE | nvarchar(10) | INOUT |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTSPONSORSHIPMAILINGTEMPLATERULE_MULTIPLE]
(
@ID nvarchar(max),
@DATALOADED bit = 0 output,
@SPONSORSHIPMAILINGTEMPLATEID uniqueidentifier = null output,
@ASKLADDER xml = null output,
@ASKLADDERLOADED bit = null output,
@ASKLADDERLOCKED bit = null output,
@PACKAGEID uniqueidentifier = null output,
@PACKAGECODE nvarchar(10) = null output,
@PACKAGELOADED bit = null output,
@RESPONSERATE decimal(5,2) = null output,
@RESPONSERATELOADED bit = null output,
@GIFTAMOUNT money = null output,
@GIFTAMOUNTLOADED bit = null output,
@SOURCECODEID uniqueidentifier = null output,
@SPONSORSHIPMAILINGTEMPLATESITEID uniqueidentifier = null output,
@TSLONG bigint = 0 output,
@BASECURRENCYID uniqueidentifier = null output,
@PACKAGEADDDATAFORMCONTEXT nvarchar(128) = null output,
@PACKAGECODEVALUEID uniqueidentifier = null output,
@EXCLUDE bit = null output,
@EXCLUDELOADED bit = null output,
@EXCLUDELOCKED bit = null output,
@PACKAGEPARTDEFINITIONID uniqueidentifier = null output,
@PACKAGECHANNELCODE tinyint = null output,
@CHANNELPARTDEFINITIONID uniqueidentifier = null output,
@CHANNELCODEVALUEID uniqueidentifier = null output,
@CHANNELCODE nvarchar(10) = null output
)
as
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
declare @RULESTABLE table([ID] uniqueidentifier primary key);
declare @START int;
declare @POS int;
/* parse out the multiple rule IDs */
set @START = 0;
select @POS = charindex(',', @ID, @START);
while (@POS <> 0)
begin
insert into @RULESTABLE
select substring(@ID, @START, @POS - @START);
set @START = @POS + 1;
select @POS = charindex(',', @ID, @START);
end;
if len(@ID) > 0
insert into @RULESTABLE
select substring(@ID, @START, 37);
select top 1
@DATALOADED = 1,
@SPONSORSHIPMAILINGTEMPLATEID = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[SPONSORSHIPMAILINGTEMPLATEID],
@SOURCECODEID = [MKTSPONSORSHIPMAILINGTEMPLATE].[SOURCECODEID],
@SPONSORSHIPMAILINGTEMPLATESITEID = [MKTSPONSORSHIPMAILINGTEMPLATE].[SITEID],
@BASECURRENCYID = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[BASECURRENCYID],
@PACKAGEADDDATAFORMCONTEXT = '3|' + convert(nvarchar(36), [MKTSPONSORSHIPMAILINGTEMPLATERULE].[BASECURRENCYID])
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
inner join @RULESTABLE as [RULESTABLE] on [RULESTABLE].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID]
inner join dbo.[MKTSPONSORSHIPMAILINGTEMPLATE] on [MKTSPONSORSHIPMAILINGTEMPLATE].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[SPONSORSHIPMAILINGTEMPLATEID];
if @DATALOADED = 1
begin
/* common exclude */
if (select count(distinct([MKTSPONSORSHIPMAILINGTEMPLATERULE].[EXCLUDE])) from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] inner join @RULESTABLE as [R] on [R].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID]) = 1
select top 1
@EXCLUDE = [EXCLUDE],
@EXCLUDELOADED = 1,
@EXCLUDELOCKED = 0
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
inner join @RULESTABLE as [R] on [R].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID];
else
begin
set @EXCLUDE = 0;
set @EXCLUDELOADED = 0;
end
/* common record source and common ask ladder */
if (select count(distinct([MKTSEGMENT].[QUERYVIEWCATALOGID])) from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID] inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[SEGMENTID]) = 1
begin
if (select count(distinct(isnull([MKTSPONSORSHIPMAILINGTEMPLATERULE].[ASKLADDERID], '00000000-0000-0000-0000-000000000000'))) from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID]) = 1
select top 1
@ASKLADDER = (select
[QUERYVIEWCATALOG].[ID] as [RECORDSOURCEID],
[QUERYVIEWCATALOG].[DISPLAYNAME] as [RECORDSOURCENAME],
(select top 1 [T1].[ASKLADDERID] from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] as [T1] inner join @RULESTABLE as [T2] on [T2].[ID] = [T1].[ID]) as [ASKLADDERID]
from dbo.[MKTRECORDSOURCE]
inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTRECORDSOURCE].[ID]
where [QUERYVIEWCATALOG].[ID] = [MKTSEGMENT].[QUERYVIEWCATALOGID]
for xml raw('ITEM'), type, elements, root('ASKLADDER'), binary base64),
@ASKLADDERLOADED = 1,
@ASKLADDERLOCKED = 0
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[SEGMENTID];
else
select top 1
@ASKLADDER = (select
[QUERYVIEWCATALOG].[ID] as [RECORDSOURCEID],
[QUERYVIEWCATALOG].[DISPLAYNAME] as [RECORDSOURCENAME]
from dbo.[MKTRECORDSOURCE]
inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTRECORDSOURCE].[ID]
where [QUERYVIEWCATALOG].[ID] = [MKTSEGMENT].[QUERYVIEWCATALOGID]
for xml raw('ITEM'), type, elements, root('ASKLADDER'), BINARY BASE64),
@ASKLADDERLOADED = 0,
@ASKLADDERLOCKED = 0
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[SEGMENTID];
end
else
begin
set @ASKLADDERLOADED = 0;
set @ASKLADDERLOCKED = 1;
end
/* common package */
if (select count(distinct([PACKAGEID])) from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID]) = 1
select top 1
@PACKAGEID = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[PACKAGEID],
@PACKAGECHANNELCODE = [MKTPACKAGE].[CHANNELCODE],
@PACKAGECODEVALUEID = [MKTPACKAGE].[PARTDEFINITIONVALUESID],
@PACKAGECODE = [MKTPACKAGE].[CODE],
@CHANNELCODEVALUEID = [MKTPACKAGE].[CHANNELPARTDEFINITIONVALUESID],
@CHANNELCODE = [MKTPACKAGE].[CHANNELSOURCECODE],
@PACKAGELOADED = 1
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID]
inner join [MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[PACKAGEID];
else
begin
set @PACKAGELOADED = 0;
set @PACKAGECHANNELCODE = 255;
end
/* common response rate */
if (select count(distinct([RESPONSERATE])) from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID]) = 1
select top 1
@RESPONSERATE = [RESPONSERATE],
@RESPONSERATELOADED = 1
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID];
else
begin
set @RESPONSERATE = 5;
set @RESPONSERATELOADED = 0;
end
/* common gift amount */
if (select count(distinct([GIFTAMOUNT])) from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID]) = 1
select top 1
@GIFTAMOUNT = [GIFTAMOUNT],
@GIFTAMOUNTLOADED = 1
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID];
else
set @GIFTAMOUNTLOADED = 0;
select @TSLONG = max([TSLONG])
from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
inner join @RULESTABLE as [S] on [S].[ID] = [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID];
select @PACKAGEPARTDEFINITIONID = [ID] from dbo.[MKTSOURCECODEPARTDEFINITION] where [ITEMTYPECODE] = 2;
select @CHANNELPARTDEFINITIONID = [ID] from dbo.[MKTSOURCECODEPARTDEFINITION] where [ITEMTYPECODE] = 3;
end
return 0;