USP_MKTPACKAGE_EDITLOAD
Loads package information.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@NAME | nvarchar(100) | INOUT | |
@DESCRIPTION | nvarchar(255) | INOUT | |
@CODE | nvarchar(10) | INOUT | |
@COST | money | INOUT | |
@COSTDISTRIBUTIONMETHODCODE | tinyint | INOUT | |
@INSERTCOSTPERPIECE | money | INOUT | |
@TOTALCOSTPERPIECE | money | INOUT | |
@SITEID | uniqueidentifier | INOUT | |
@SITEREQUIRED | bit | INOUT | |
@SITECANBECHANGED | bit | INOUT | |
@CHANNELCODE | tinyint | INOUT | |
@CATEGORYCODEID | uniqueidentifier | INOUT | |
@EXPORTDEFINITIONID | uniqueidentifier | INOUT | |
@CONTENTCANBECHANGED | bit | INOUT | |
@CONTENTMAILINGTYPECODEALLOWED | tinyint | INOUT | |
@ACKNOWLEDGEMENTMAILINGSINSTALLED | bit | INOUT | |
@MEMBERSHIPMAILINGSINSTALLED | bit | INOUT | |
@CODEVALUEID | uniqueidentifier | INOUT | |
@CHANNELSOURCECODE | nvarchar(10) | INOUT | |
@CHANNELSOURCECODEVALUEID | uniqueidentifier | INOUT | |
@TSLONG | bigint | INOUT | |
@BASECURRENCYID | uniqueidentifier | INOUT | |
@PACKAGEPARTDEFINITIONID | uniqueidentifier | INOUT | |
@CHANNELPARTDEFINITIONID | uniqueidentifier | INOUT | |
@SPONSORSHIPMAILINGSINSTALLED | bit | INOUT |
Definition
Copy
CREATE procedure dbo.[USP_MKTPACKAGE_EDITLOAD]
(
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@DATALOADED bit = 0 output,
@NAME nvarchar(100) = null output,
@DESCRIPTION nvarchar(255) = null output,
@CODE nvarchar(10) = null output,
@COST money = null output,
@COSTDISTRIBUTIONMETHODCODE tinyint = null output,
@INSERTCOSTPERPIECE money = null output,
@TOTALCOSTPERPIECE money = null output,
@SITEID uniqueidentifier = null output,
@SITEREQUIRED bit = null output,
@SITECANBECHANGED bit = null output,
@CHANNELCODE tinyint = null output,
@CATEGORYCODEID uniqueidentifier = null output,
@EXPORTDEFINITIONID uniqueidentifier = null output,
@CONTENTCANBECHANGED bit = null output,
@CONTENTMAILINGTYPECODEALLOWED tinyint = null output,
@ACKNOWLEDGEMENTMAILINGSINSTALLED bit = null output,
@MEMBERSHIPMAILINGSINSTALLED bit = null output,
@CODEVALUEID uniqueidentifier = null output,
@CHANNELSOURCECODE nvarchar(10) = null output,
@CHANNELSOURCECODEVALUEID uniqueidentifier = null output,
@TSLONG bigint = 0 output,
@BASECURRENCYID uniqueidentifier = null output,
@PACKAGEPARTDEFINITIONID uniqueidentifier = null output,
@CHANNELPARTDEFINITIONID uniqueidentifier = null output,
@SPONSORSHIPMAILINGSINSTALLED bit = null output
)
as
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
select
@DATALOADED = 1,
@NAME = [MKTPACKAGE].[NAME],
@DESCRIPTION = [MKTPACKAGE].[DESCRIPTION],
@CODE = [MKTPACKAGE].[CODE],
@CODEVALUEID = [MKTPACKAGE].[PARTDEFINITIONVALUESID],
@CHANNELCODE = [MKTPACKAGE].[CHANNELCODE],
@CATEGORYCODEID = [MKTPACKAGE].[PACKAGECATEGORYCODEID],
@COST = [MKTPACKAGE].[UNITCOST],
@COSTDISTRIBUTIONMETHODCODE = [MKTPACKAGE].[COSTDISTRIBUTIONMETHODCODE],
@INSERTCOSTPERPIECE =
(case isnull([MKTCREATIVE].[COSTDISTRIBUTIONMETHODCODE], 255) when 0 then [MKTCREATIVE].[COST] when 4 then [MKTCREATIVE].[COST] / 1000 else 0 end) +
(select isnull(sum(case [MKTCREATIVE].[COSTDISTRIBUTIONMETHODCODE] when 0 then [MKTCREATIVE].[COST] when 4 then [MKTCREATIVE].[COST] / 1000 end), 0) from dbo.[MKTCREATIVE] inner join dbo.[MKTPACKAGECREATIVE] on [MKTPACKAGECREATIVE].[CREATIVEID] = [MKTCREATIVE].[ID] where [MKTPACKAGECREATIVE].[PACKAGEID] = [MKTPACKAGE].[ID] and [MKTCREATIVE].[COSTDISTRIBUTIONMETHODCODE] in (0, 4)) +
(select isnull(sum(case [MKTDOCUMENT].[COSTDISTRIBUTIONMETHODCODE] when 0 then [MKTDOCUMENT].[COST] when 4 then [MKTDOCUMENT].[COST] / 1000 end), 0) from dbo.[MKTDOCUMENT] inner join dbo.[MKTPACKAGEDOCUMENT] on [MKTPACKAGEDOCUMENT].[DOCUMENTID] = [MKTDOCUMENT].[ID] where [MKTPACKAGEDOCUMENT].[PACKAGEID] = [MKTPACKAGE].[ID] and [MKTDOCUMENT].[COSTDISTRIBUTIONMETHODCODE] in (0, 4)) +
(select isnull(sum(case [MKTMATERIAL].[COSTDISTRIBUTIONMETHODCODE] when 0 then [MKTMATERIAL].[COST] when 4 then [MKTMATERIAL].[COST] / 1000 end), 0) from dbo.[MKTMATERIAL] inner join dbo.[MKTPACKAGEMATERIAL] on [MKTPACKAGEMATERIAL].[MATERIALID] = [MKTMATERIAL].[ID] where [MKTPACKAGEMATERIAL].[PACKAGEID] = [MKTPACKAGE].[ID] and [MKTMATERIAL].[COSTDISTRIBUTIONMETHODCODE] in (0, 4)) +
(select isnull(sum(case [MKTEXPENSE].[COSTDISTRIBUTIONMETHODCODE] when 0 then [MKTEXPENSE].[COST] when 4 then [MKTEXPENSE].[COST] / 1000 end), 0) from dbo.[MKTEXPENSE] inner join dbo.[MKTPACKAGEEXPENSE] on [MKTPACKAGEEXPENSE].[EXPENSEID] = [MKTEXPENSE].[ID] where [MKTPACKAGEEXPENSE].[PACKAGEID] = [MKTPACKAGE].[ID] and [MKTEXPENSE].[COSTDISTRIBUTIONMETHODCODE] in (0, 4)),
@SITEID = [MKTPACKAGE].[SITEID],
@EXPORTDEFINITIONID = isnull([LETTERCODE].[EXPORTDEFINITIONID], [MKTPACKAGE].[EXPORTDEFINITIONID]),
@CHANNELSOURCECODE = [MKTPACKAGE].[CHANNELSOURCECODE],
@CHANNELSOURCECODEVALUEID = [MKTPACKAGE].[CHANNELPARTDEFINITIONVALUESID],
@TSLONG = [MKTPACKAGE].[TSLONG],
@BASECURRENCYID = [MKTPACKAGE].[BASECURRENCYID]
from dbo.[MKTPACKAGE]
left outer join dbo.[MKTCREATIVE] on [MKTCREATIVE].[ID] = [MKTPACKAGE].[CREATIVEID]
left outer join dbo.[LETTERCODE] on [LETTERCODE].[ID] = [MKTPACKAGE].[LETTERCODEID]
where [MKTPACKAGE].[ID] = @ID;
if @DATALOADED = 1
begin
set @TOTALCOSTPERPIECE = (case @COSTDISTRIBUTIONMETHODCODE when 0 then @COST when 4 then @COST / 1000 else 0 end) + @INSERTCOSTPERPIECE;
set @SITEREQUIRED = 0; -- obsolete (must be checked on a form-by-form basis)
set @SITECANBECHANGED = 1; -- obsolete
if exists(select top 1 1 from dbo.[MKTSEGMENTATIONSEGMENT] where [PACKAGEID] = @ID)
or exists(select top 1 1 from dbo.[MKTSEGMENTATIONTESTSEGMENT] where [PACKAGEID] = @ID)
or exists(select top 1 1 from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] where [PACKAGEID] = @ID)
or exists(select top 1 1 from dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] where [PACKAGEID] = @ID)
or exists(select top 1 1 from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] where [PACKAGEID] = @ID)
begin
-- if the package is in use by any mailings, the letter can be changed only if the package is only in use
-- by one type of mailing (appeal, acknowledgement, or membership)
declare @MAILINGTYPECODES table ([MAILINGTYPECODE] tinyint);
insert into @MAILINGTYPECODES
select distinct
[MKTSEGMENTATION].[MAILINGTYPECODE]
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
where [MKTSEGMENTATIONSEGMENT].[PACKAGEID] = @ID;
insert into @MAILINGTYPECODES
select distinct
[MKTSEGMENTATION].[MAILINGTYPECODE]
from dbo.[MKTSEGMENTATIONTESTSEGMENT]
inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID]
inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
where [MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID] = @ID;
if exists(select top 1 1 from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] where [PACKAGEID] = @ID)
insert into @MAILINGTYPECODES values (1);
if exists(select top 1 1 from dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] where [PACKAGEID] = @ID)
insert into @MAILINGTYPECODES values (2);
if exists(select top 1 1 from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] where [PACKAGEID] = @ID)
insert into @MAILINGTYPECODES values (3);
if (select count(distinct [MAILINGTYPECODE]) from @MAILINGTYPECODES) = 1
begin
set @CONTENTCANBECHANGED = 1;
set @CONTENTMAILINGTYPECODEALLOWED = (select top 1 [MAILINGTYPECODE] from @MAILINGTYPECODES);
end
else
begin
set @CONTENTCANBECHANGED = 0;
set @CONTENTMAILINGTYPECODEALLOWED = 255;
end
-- if the package is in use on an acknowledgement mailing, its letter cannot be changed
if exists(select top 1 1
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
inner join dbo.[MKTACKNOWLEDGEMENTMAILINGPROCESSSEGMENTATION] on [MKTACKNOWLEDGEMENTMAILINGPROCESSSEGMENTATION].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
where [MKTSEGMENTATION].[MAILINGTYPECODE] = 1
and [MKTSEGMENTATIONSEGMENT].[PACKAGEID] = @ID)
or
exists(select top 1 1
from dbo.[MKTSEGMENTATIONTESTSEGMENT]
inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID]
inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
inner join dbo.[MKTACKNOWLEDGEMENTMAILINGPROCESSSEGMENTATION] on [MKTACKNOWLEDGEMENTMAILINGPROCESSSEGMENTATION].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
where [MKTSEGMENTATION].[MAILINGTYPECODE] = 1
and [MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID] = @ID)
set @CONTENTCANBECHANGED = 0;
end
else
begin
set @CONTENTCANBECHANGED = 1;
set @CONTENTMAILINGTYPECODEALLOWED = 255;
end
end
set @ACKNOWLEDGEMENTMAILINGSINSTALLED = dbo.[UFN_MKTCOMMON_ACKNOWLEDGEMENTMAILINGSINSTALLED]();
set @MEMBERSHIPMAILINGSINSTALLED = dbo.[UFN_MKTCOMMON_MEMBERSHIPMAILINGSINSTALLED]();
set @SPONSORSHIPMAILINGSINSTALLED = dbo.[UFN_MKTCOMMON_SPONSORSHIPMAILINGSINSTALLED]();
select @PACKAGEPARTDEFINITIONID = [ID] from dbo.[MKTSOURCECODEPARTDEFINITION] where [ITEMTYPECODE] = 2;
select @CHANNELPARTDEFINITIONID = [ID] from dbo.[MKTSOURCECODEPARTDEFINITION] where [ITEMTYPECODE] = 3;
return 0;