USP_MKTSEGMENTATIONPASSIVESEGMENT_ADD
Adds a public media marketing effort segment.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SEGMENTATIONID | uniqueidentifier | IN | |
@SEGMENTID | uniqueidentifier | IN | |
@CODEVALUEID | uniqueidentifier | IN | |
@CODE | nvarchar(10) | IN | |
@PACKAGEID | uniqueidentifier | IN | |
@PACKAGECODEVALUEID | uniqueidentifier | IN | |
@PACKAGECODE | nvarchar(10) | IN | |
@CHANNELCODEVALUEID | uniqueidentifier | IN | |
@CHANNELCODE | nvarchar(10) | IN | |
@EXPOSURESTARTDATE | date | IN | |
@EXPOSUREENDDATE | date | IN | |
@RESPONSERATE | decimal(5, 2) | IN | |
@GIFTAMOUNT | money | IN | |
@ITEMLIST | xml | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTATIONPASSIVESEGMENT_ADD]
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@SEGMENTATIONID uniqueidentifier,
@SEGMENTID uniqueidentifier,
@CODEVALUEID uniqueidentifier = null,
@CODE nvarchar(10) = '',
@PACKAGEID uniqueidentifier,
@PACKAGECODEVALUEID uniqueidentifier = null,
@PACKAGECODE nvarchar(10) = '',
@CHANNELCODEVALUEID uniqueidentifier = null,
@CHANNELCODE nvarchar(10) = '',
@EXPOSURESTARTDATE date = null,
@EXPOSUREENDDATE date = null,
@RESPONSERATE decimal(5, 2) = 5,
@GIFTAMOUNT money,
@ITEMLIST xml = null,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
declare @ACTIVE bit;
declare @CURRENTDATE datetime;
declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONCURRENCYEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @ORGANIZATIONGIFTAMOUNT money;
declare @SEQUENCE int;
begin try
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
select
@ACTIVE = [ACTIVE],
@BASECURRENCYID = [BASECURRENCYID]
from dbo.[MKTSEGMENTATION]
where [ID] = @SEGMENTATIONID;
set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
set @ORGANIZATIONGIFTAMOUNT = @GIFTAMOUNT;
else
begin
set @ORGANIZATIONCURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
set @ORGANIZATIONGIFTAMOUNT = dbo.[UFN_CURRENCY_CONVERT](@GIFTAMOUNT, @ORGANIZATIONCURRENCYEXCHANGERATEID);
end
select
@SEQUENCE = isnull(max([SEQUENCE]), 0) + 1
from dbo.[MKTSEGMENTATIONSEGMENT]
where [SEGMENTATIONID] = @SEGMENTATIONID;
insert into dbo.[MKTSEGMENTATIONSEGMENT] (
[ID],
[SEGMENTATIONID],
[SEGMENTID],
[PARTDEFINITIONVALUESID],
[CODE],
[PACKAGEID],
[EXPOSURESTARTDATE],
[EXPOSUREENDDATE],
[RESPONSERATE],
[GIFTAMOUNT],
[BASECURRENCYID],
[ORGANIZATIONGIFTAMOUNT],
[CURRENCYEXCHANGERATEID],
[SEQUENCE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
@ID,
@SEGMENTATIONID,
@SEGMENTID,
@CODEVALUEID,
@CODE,
@PACKAGEID,
@EXPOSURESTARTDATE,
@EXPOSUREENDDATE,
@RESPONSERATE,
@GIFTAMOUNT,
@BASECURRENCYID,
@ORGANIZATIONGIFTAMOUNT,
@ORGANIZATIONCURRENCYEXCHANGERATEID,
@SEQUENCE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
-- save and add the package to the mailing, only if it doesn't already exist
if not exists(select [ID] from dbo.[MKTSEGMENTATIONPACKAGE] where [SEGMENTATIONID] = @SEGMENTATIONID and [PACKAGEID] = @PACKAGEID)
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTATIONPACKAGE] null, @CHANGEAGENTID, @SEGMENTATIONID, @PACKAGEID;
-- save the source code information
exec dbo.[USP_MKTSOURCECODEPART_SEGMENTATIONSEGMENT_GETITEMLIST3_UPDATEFROMXML] @ID, @ITEMLIST, @CHANGEAGENTID, @CURRENTDATE;
-- update the segment with the selected code
if @ACTIVE = 0
begin
exec dbo.[USP_MKTSEGMENT_UPDATECODE] @SEGMENTID, @CODE, @CODEVALUEID, @CHANGEAGENTID, 0, @CURRENTAPPUSERID;
exec dbo.[USP_MKTPACKAGE_UPDATECODE] @PACKAGEID, @PACKAGECODE, @PACKAGECODEVALUEID, @CHANNELCODE, @CHANNELCODEVALUEID, @CHANGEAGENTID, @CURRENTAPPUSERID;
end
else
exec dbo.[USP_MKTSEGMENTATIONACTIVATE_CACHEPACKAGE] @SEGMENTATIONID, @PACKAGEID, @CHANGEAGENTID, @CURRENTDATE, @PACKAGECODEVALUEID, @PACKAGECODE, @CHANNELCODEVALUEID, @CHANNELCODE;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;