USP_MKTSEGMENTATIONPACKAGE_SAVE
Saves information about a package in a marketing effort.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@NAME | nvarchar(100) | IN | |
@DESCRIPTION | nvarchar(255) | IN | |
@CATEGORYCODEID | uniqueidentifier | IN | |
@COST | money | IN | |
@COSTDISTRIBUTIONMETHODCODE | tinyint | IN | |
@LETTERCODEID | uniqueidentifier | IN | |
@NETCOMMUNITYTEMPLATEID | int | IN | |
@NETCOMMUNITYDATASOURCEID | int | IN | |
@DOCUMENTFILENAME | nvarchar(255) | IN | |
@DOCUMENTFILENAMEFORDISPLAY | nvarchar(255) | IN | |
@DOCUMENTFILE | varbinary | IN | |
@DOCUMENTFILECHANGED | bit | IN | |
@CREATIVEID | uniqueidentifier | IN | |
@EXPORTDEFINITIONID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SITEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTATIONPACKAGE_SAVE]
(
@ID uniqueidentifier,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@CATEGORYCODEID uniqueidentifier,
@COST money,
@COSTDISTRIBUTIONMETHODCODE tinyint,
@LETTERCODEID uniqueidentifier,
@NETCOMMUNITYTEMPLATEID integer,
@NETCOMMUNITYDATASOURCEID integer,
@DOCUMENTFILENAME nvarchar(255),
@DOCUMENTFILENAMEFORDISPLAY nvarchar(255),
@DOCUMENTFILE varbinary(max),
@DOCUMENTFILECHANGED bit,
@CREATIVEID uniqueidentifier,
@EXPORTDEFINITIONID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@SITEID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @SEGMENTATIONID uniqueidentifier;
declare @ACTIVE bit;
declare @PACKAGEID uniqueidentifier;
declare @CHANNELCODE tinyint;
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCOST money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
declare @DATEADDED datetime;
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
select
@SEGMENTATIONID = [MKTSEGMENTATION].[ID],
@ACTIVE = [MKTSEGMENTATION].[ACTIVE],
@PACKAGEID = [MKTSEGMENTATIONPACKAGE].[PACKAGEID],
@CHANNELCODE = [MKTPACKAGE].[CHANNELCODE],
@BASECURRENCYID = [MKTPACKAGE].[BASECURRENCYID],
@CURRENCYEXCHANGERATEID = [MKTPACKAGE].[CURRENCYEXCHANGERATEID],
@DATEADDED = [MKTPACKAGE].[DATEADDED]
from dbo.[MKTSEGMENTATION]
inner join dbo.[MKTSEGMENTATIONPACKAGE] on [MKTSEGMENTATIONPACKAGE].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
inner join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSEGMENTATIONPACKAGE].[PACKAGEID]
where [MKTSEGMENTATIONPACKAGE].[ID] = @ID;
set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
set @ORGANIZATIONCOST = @COST;
else
begin
if @CURRENCYEXCHANGERATEID is null
set @CURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);
set @ORGANIZATIONCOST = dbo.[UFN_CURRENCY_CONVERT](@COST, @CURRENCYEXCHANGERATEID);
end
if @ACTIVE = 0
begin
--Check if the mailing is currently being activated...
exec dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @SEGMENTATIONID;
if @CHANNELCODE = 0 -- mail
begin
if (select [EXPORTDEFINITIONID] from dbo.[LETTERCODE] where [ID] = @LETTERCODEID) is not null
set @EXPORTDEFINITIONID = null;
update dbo.[MKTPACKAGE] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[SITEID] = @SITEID,
[PACKAGECATEGORYCODEID] = @CATEGORYCODEID,
[UNITCOST] = @COST,
[ORGANIZATIONUNITCOST] = @ORGANIZATIONCOST,
[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE,
[LETTERCODEID] = @LETTERCODEID,
[EXPORTDEFINITIONID] = @EXPORTDEFINITIONID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @PACKAGEID
end
else if @CHANNELCODE = 1 -- email
begin
update dbo.[MKTPACKAGE] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[SITEID] = @SITEID,
[PACKAGECATEGORYCODEID] = @CATEGORYCODEID,
[UNITCOST] = @COST,
[ORGANIZATIONUNITCOST] = @ORGANIZATIONCOST,
[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE,
[NETCOMMUNITYTEMPLATEID] = @NETCOMMUNITYTEMPLATEID,
[NETCOMMUNITYDATASOURCEID] = @NETCOMMUNITYDATASOURCEID,
[EXPORTDEFINITIONID] = case when @NETCOMMUNITYDATASOURCEID > 0 then null else @EXPORTDEFINITIONID end,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @PACKAGEID
end
else if @CHANNELCODE = 2 -- phone
begin
if @DOCUMENTFILECHANGED = 1
update dbo.[MKTPACKAGE] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[SITEID] = @SITEID,
[PACKAGECATEGORYCODEID] = @CATEGORYCODEID,
[UNITCOST] = @COST,
[ORGANIZATIONUNITCOST] = @ORGANIZATIONCOST,
[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE,
[DOCUMENTFILENAME] = @DOCUMENTFILENAMEFORDISPLAY,
[DOCUMENTFILE] = @DOCUMENTFILE,
[EXPORTDEFINITIONID] = @EXPORTDEFINITIONID,
[CHANGEDBYID] = @CHANGEAGENTID
where [ID] = @PACKAGEID;
else
update dbo.[MKTPACKAGE] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[SITEID] = @SITEID,
[PACKAGECATEGORYCODEID] = @CATEGORYCODEID,
[UNITCOST] = @COST,
[ORGANIZATIONUNITCOST] = @ORGANIZATIONCOST,
[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE,
[EXPORTDEFINITIONID] = @EXPORTDEFINITIONID,
[CHANGEDBYID] = @CHANGEAGENTID
where [ID] = @PACKAGEID;
end
else if @CHANNELCODE = 3 -- public media
update dbo.[MKTPACKAGE] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[SITEID] = @SITEID,
[PACKAGECATEGORYCODEID] = @CATEGORYCODEID,
[UNITCOST] = @COST,
[ORGANIZATIONUNITCOST] = @ORGANIZATIONCOST,
[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE,
[CREATIVEID] = @CREATIVEID,
[CHANGEDBYID] = @CHANGEAGENTID
where [ID] = @PACKAGEID;
end
else
update dbo.[MKTSEGMENTATIONPACKAGE] set
[UNITCOST] = @COST,
[ORGANIZATIONUNITCOST] = @ORGANIZATIONCOST,
[COSTDISTRIBUTIONMETHODCODE] = @COSTDISTRIBUTIONMETHODCODE,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;