USP_DATAFORMTEMPLATE_EDIT_APPEALMAILINGHYBRIDACTIVATE_2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@EMAILPROCESSINGTYPE | tinyint | IN | |
@CREATEOUTPUTIDSET | bit | IN | |
@OUTPUTIDSETNAME | nvarchar(100) | IN | |
@OVERWRITEOUTPUTIDSET | bit | IN | |
@EMAILDATETIME | datetime | IN | |
@LETTEROPTIONS | xml | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_APPEALMAILINGHYBRIDACTIVATE_2]
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@EMAILPROCESSINGTYPE tinyint,
@CREATEOUTPUTIDSET bit,
@OUTPUTIDSETNAME nvarchar(100),
@OVERWRITEOUTPUTIDSET bit,
@EMAILDATETIME datetime,
@LETTEROPTIONS xml
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @SEGMENTATIONID uniqueidentifier;
declare @HASEMAIL bit = 0;
select
@SEGMENTATIONID = [MKTSEGMENTATIONACTIVATEPROCESS].[SEGMENTATIONID],
@HASEMAIL = case when exists(select ID from dbo.COMMUNICATIONLETTER where COMMUNICATIONLETTER.SEGMENTATIONID = MKTSEGMENTATIONACTIVATEPROCESS.SEGMENTATIONID and COMMUNICATIONLETTER.CHANNELCODE > 0) then 1 else 0 end
from dbo.[MKTSEGMENTATIONACTIVATEPROCESS]
where [MKTSEGMENTATIONACTIVATEPROCESS].[ID] = @ID;
begin try
exec dbo.USP_SELECTIVECOMMUNICATIONLETTERS_GETLETTEROPTIONS_UPDATEFROMXML @SEGMENTATIONID, @LETTEROPTIONS, @CHANGEAGENTID, @CURRENTDATE;
update dbo.[APPEALMAILING] set
[CREATEOUTPUTIDSET] = @CREATEOUTPUTIDSET,
[OUTPUTIDSETNAME] = @OUTPUTIDSETNAME,
[OVERWRITEOUTPUTIDSET] = @OVERWRITEOUTPUTIDSET,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @SEGMENTATIONID;
-- OutputIDSet information is now stored on the segmentation table, but keep both tables up-to-date for backwards compatibility...
update dbo.[MKTSEGMENTATION] set
[CREATEOUTPUTIDSET] = @CREATEOUTPUTIDSET,
[OUTPUTIDSETNAME] = @OUTPUTIDSETNAME,
[OVERWRITEOUTPUTIDSET] = @OVERWRITEOUTPUTIDSET,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @SEGMENTATIONID;
if @HASEMAIL = 1
begin
if exists (select [ID] from dbo.[APPEALMAILINGACTIVATEEMAILJOBSCHEDULE] where [ID] = @ID)
update dbo.[APPEALMAILINGACTIVATEEMAILJOBSCHEDULE] set
[SCHEDULETYPECODE] = @EMAILPROCESSINGTYPE,
[EMAILJOBSTART] = @EMAILDATETIME,
[EMAILJOBSTARTWITHOFFSET] = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEWITHTIMEOFFSET(@EMAILDATETIME, 0),
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where ID = @ID;
else
insert into dbo.[APPEALMAILINGACTIVATEEMAILJOBSCHEDULE]
(
[ID],
[SCHEDULETYPECODE],
[EMAILJOBSTART],
[EMAILJOBSTARTWITHOFFSET],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
@ID,
@EMAILPROCESSINGTYPE,
@EMAILDATETIME,
dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEWITHTIMEOFFSET(@EMAILDATETIME, 0),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
else
delete from dbo.[APPEALMAILINGACTIVATEEMAILJOBSCHEDULE] where ID = @ID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;