USP_MKTSEGMENTWHITEMAIL_SAVE
Saves a white mail segment.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SEGMENTATIONID | uniqueidentifier | IN | |
@QUERYVIEWCATALOGID | uniqueidentifier | IN | |
@NAME | nvarchar(100) | IN | |
@DESCRIPTION | nvarchar(255) | IN | |
@SEGMENTCATEGORYCODEID | uniqueidentifier | IN | |
@STATUSCODE | tinyint | IN | |
@ACTIVEFROM | date | IN | |
@ACTIVETO | date | IN | |
@SOURCECODEID | uniqueidentifier | IN | |
@SOURCECODEITEMLIST | xml | IN | |
@CODEVALUEID | uniqueidentifier | IN | |
@CODE | nvarchar(10) | IN | |
@GROUPS | xml | IN | |
@SITEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTWHITEMAIL_SAVE]
(
@ID uniqueidentifier = null output,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@SEGMENTATIONID uniqueidentifier,
@QUERYVIEWCATALOGID uniqueidentifier,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@SEGMENTCATEGORYCODEID uniqueidentifier,
@STATUSCODE tinyint,
@ACTIVEFROM date,
@ACTIVETO date,
@SOURCECODEID uniqueidentifier,
@SOURCECODEITEMLIST xml,
@CODEVALUEID uniqueidentifier,
@CODE nvarchar(10),
@GROUPS xml,
@SITEID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @SOURCECODE nvarchar(50);
declare @BASECURRENCYID uniqueidentifier;
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
if @CODE is null set @CODE = '';
begin try
if exists (select top 1 1 from dbo.[MKTSEGMENTWHITEMAIL] where [ID] = @ID)
begin
set @SOURCECODE = dbo.[UFN_MKTSOURCECODE_BUILDCODE](@ID, null, null);
exec dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENT_3]
@ID = @ID,
@CHANGEAGENTID = @CHANGEAGENTID,
@NAME = @NAME,
@DESCRIPTION = @DESCRIPTION,
@SEGMENTCATEGORYCODEID = @SEGMENTCATEGORYCODEID,
@CODE = @CODE,
@QUERYVIEWCATALOGID = @QUERYVIEWCATALOGID,
@SELECTIONS = null,
@GROUPS = @GROUPS,
@ALLOWCODEUPDATE = 1,
@CODEVALUEID = @CODEVALUEID,
@SITEID = @SITEID;
select @CURRENTDATE = [DATECHANGED] from dbo.[MKTSEGMENT] where [ID] = @ID;
update dbo.[MKTSEGMENTWHITEMAIL] set
[STATUSCODE] = @STATUSCODE,
[ACTIVEFROM] = @ACTIVEFROM,
[ACTIVETO] = @ACTIVETO,
[SOURCECODEID] = @SOURCECODEID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
exec dbo.[USP_MKTSOURCECODEPART_WHITEMAILSEGMENT_GETITEMLIST2_UPDATEFROMXML] @ID, @SOURCECODEITEMLIST, @CHANGEAGENTID, @CURRENTDATE;
-- update the source code map with any changes to the source code
exec dbo.[USP_MKTSEGMENTWHITEMAIL_UPDATESOURCECODEMAP] @ID, @CHANGEAGENTID;
-- if the source code has changed...
if dbo.[UFN_MKTSOURCECODE_BUILDCODE](@ID, null, null) <> @SOURCECODE
-- ...clear any cached calculations
exec dbo.[USP_MKTSEGMENTWHITEMAILCACHE_CLEAR] @ID, @CHANGEAGENTID;
end
else
begin
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENT]
@ID = @ID output,
@CHANGEAGENTID = @CHANGEAGENTID,
@QUERYVIEWCATALOGID = @QUERYVIEWCATALOGID,
@NAME = @NAME,
@DESCRIPTION = @DESCRIPTION,
@CODE = @CODE,
@SELECTIONS = null,
@GROUPS = @GROUPS,
@SEGMENTTYPECODE = 9,
@SEGMENTCATEGORYCODEID = @SEGMENTCATEGORYCODEID,
@CODEVALUEID = @CODEVALUEID,
@SITEID = @SITEID;
set @BASECURRENCYID = dbo.[UFN_APPUSER_GETBASECURRENCY](@CURRENTAPPUSERID);
select @CURRENTDATE = [DATEADDED] from dbo.[MKTSEGMENT] where [ID] = @ID;
update dbo.[MKTSEGMENT] set
[BASECURRENCYID] = @BASECURRENCYID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
insert into dbo.[MKTSEGMENTWHITEMAIL]
(
[ID],
[STATUSCODE],
[ACTIVEFROM],
[ACTIVETO],
[SOURCECODEID],
[SEGMENTATIONID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@STATUSCODE,
@ACTIVEFROM,
@ACTIVETO,
@SOURCECODEID,
case when @SEGMENTATIONID <> '00000000-0000-0000-0000-000000000000' then @SEGMENTATIONID else null end,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.[USP_MKTSOURCECODEPART_WHITEMAILSEGMENT_GETITEMLIST2_ADDFROMXML] @ID, @SOURCECODEITEMLIST, @CHANGEAGENTID, @CURRENTDATE;
-- add information about the source code to the source code map
exec dbo.[USP_MKTSEGMENTWHITEMAIL_ADDSOURCECODEMAP] @ID, @CHANGEAGENTID;
-- insert a parameter set for the white mail segment refresh process
exec dbo.[USP_MKTSEGMENTWHITEMAILREFRESHPROCESS_SAVE] @ID, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;