USP_DATAFORMTEMPLATE_EDIT_APPEALMAILINGSETUP_2
Save an existing appeal mailing.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@NAME | nvarchar(100) | IN | |
@DESCRIPTION | nvarchar(255) | IN | |
@MAILDATE | datetime | IN | |
@APPEALID | uniqueidentifier | IN | |
@ADDRESSPROCESSINGOPTIONID | uniqueidentifier | IN | |
@NAMEFORMATPARAMETERID | uniqueidentifier | IN | |
@HOUSEHOLDINGTYPECODE | tinyint | IN | |
@CREATEOUTPUTIDSET | bit | IN | |
@OUTPUTIDSETNAME | nvarchar(100) | IN | |
@OVERWRITEOUTPUTIDSET | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_APPEALMAILINGSETUP_2
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255) = '',
@MAILDATE datetime = null,
@APPEALID uniqueidentifier,
@ADDRESSPROCESSINGOPTIONID uniqueidentifier = null,
@NAMEFORMATPARAMETERID uniqueidentifier = null,
@HOUSEHOLDINGTYPECODE tinyint = 0,
@CREATEOUTPUTIDSET bit = 0,
@OUTPUTIDSETNAME nvarchar(100) = '',
@OVERWRITEOUTPUTIDSET bit = 0
)
as
begin
declare @CURRENTDATE datetime;
begin try
set @CURRENTDATE = getDate();
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
declare @ACTIVE bit = 0;
declare @OLDAPPEALID uniqueidentifier;
declare @OLDHOUSEHOLDINGTYPECODE tinyint;
declare @OLDNAME nvarchar(100);
declare @OLDDESCRIPTION nvarchar(255);
declare @OLDMAILDATE datetime;
declare @OLDADDRESSPROCESSINGOPTIONID uniqueidentifier;
declare @OLDNAMEFORMATPARAMETERID uniqueidentifier;
declare @OLDCREATEOUTPUTIDSET bit;
declare @OLDOUTPUTIDSETNAME nvarchar(100);
declare @OLDOVERWRITEOUTPUTIDSET bit;
select
@OLDAPPEALID = APPEALMAILING.APPEALID,
@OLDHOUSEHOLDINGTYPECODE = APPEALMAILINGSETUP.HOUSEHOLDINGTYPECODE,
@ACTIVE = MKTSEGMENTATION.ACTIVE,
@OLDNAME = MKTSEGMENTATION.NAME,
@OLDDESCRIPTION = MKTSEGMENTATION.DESCRIPTION,
@OLDMAILDATE = MKTSEGMENTATION.MAILDATE,
@OLDADDRESSPROCESSINGOPTIONID = MKTSEGMENTATION.ADDRESSPROCESSINGOPTIONID,
@OLDNAMEFORMATPARAMETERID = MKTSEGMENTATION.NAMEFORMATPARAMETERID,
@OLDCREATEOUTPUTIDSET = MKTSEGMENTATION.CREATEOUTPUTIDSET,
@OLDOUTPUTIDSETNAME = MKTSEGMENTATION.OUTPUTIDSETNAME,
@OLDOVERWRITEOUTPUTIDSET = MKTSEGMENTATION.OVERWRITEOUTPUTIDSET
from dbo.APPEALMAILING
left outer join dbo.APPEALMAILINGSETUP
on APPEALMAILING.ID = APPEALMAILINGSETUP.ID
left outer join dbo.MKTSEGMENTATION
on APPEALMAILING.ID = MKTSEGMENTATION.ID
where APPEALMAILING.ID = @ID;
if @ACTIVE = 1 or dbo.UFN_MKTSEGMENTATION_HASACTIVESEGMENTS(@ID) = 1
begin
if @OLDAPPEALID <> @APPEALID or @OLDHOUSEHOLDINGTYPECODE <> @HOUSEHOLDINGTYPECODE or @OLDADDRESSPROCESSINGOPTIONID <> @ADDRESSPROCESSINGOPTIONID or @OLDNAMEFORMATPARAMETERID <> @NAMEFORMATPARAMETERID
begin
declare @DELETEAPPEALINFO bit = case when @APPEALID is null then 0 else 1 end;
exec dbo.USP_MKTSEGMENTATIONACTIVATE_ROLLBACK @ID, @CHANGEAGENTID, @DELETEAPPEALINFO, 1;
end
end
if @OLDNAME <> @NAME or @OLDDESCRIPTION <> @DESCRIPTION or @OLDMAILDATE <> @MAILDATE or @OLDHOUSEHOLDINGTYPECODE <> @HOUSEHOLDINGTYPECODE or @OLDADDRESSPROCESSINGOPTIONID <> @ADDRESSPROCESSINGOPTIONID
or @OLDNAMEFORMATPARAMETERID <> @NAMEFORMATPARAMETERID or @OLDCREATEOUTPUTIDSET <> @CREATEOUTPUTIDSET or @OLDOUTPUTIDSETNAME <> @OUTPUTIDSETNAME or @OLDOVERWRITEOUTPUTIDSET <> @OVERWRITEOUTPUTIDSET
update dbo.[MKTSEGMENTATION] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[MAILDATE] = @MAILDATE,
[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE] = @MAILDATE,
[HOUSEHOLDINGONERECORDPERHOUSEHOLD] = case @HOUSEHOLDINGTYPECODE when 0 then 1 else 0 end,
[ADDRESSPROCESSINGOPTIONID] = @ADDRESSPROCESSINGOPTIONID,
[NAMEFORMATPARAMETERID] = @NAMEFORMATPARAMETERID,
[CREATEOUTPUTIDSET] = @CREATEOUTPUTIDSET,
[OUTPUTIDSETNAME] = @OUTPUTIDSETNAME,
[OVERWRITEOUTPUTIDSET] = @OVERWRITEOUTPUTIDSET,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where ID = @ID;
if @OLDAPPEALID <> @APPEALID
begin
-- Update appeal mailing information...
update dbo.[APPEALMAILING] set
[APPEALID] = @APPEALID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where
[ID] = @ID;
-- Update MKTSegmentationActivate appeal information
declare @APPEALNAME nvarchar(100);
declare @APPEALDESCRIPTION nvarchar(255);
select
@APPEALNAME = [NAME],
@APPEALDESCRIPTION = [DESCRIPTION]
from dbo.[APPEAL]
where [ID] = @APPEALID;
exec dbo.[USP_MKTSEGMENTATIONACTIVATE_SAVEFIELD] @ID, @CHANGEAGENTID, 'DFB4B8C1-5E9A-4C14-ACE3-01C096B53BA0', null, null, @APPEALID, @APPEALNAME, @APPEALDESCRIPTION;
end
--Because the appeal mailing name uniqueness depends on the appeal, we need to check for name uniqueness after the appeal mailing is created.
if dbo.[UFN_MKTSEGMENTATION_NAMEEXISTS](@NAME, 0, 1) = 1
begin
--Name is not unique, throw error.
raiserror('BBERR_MKTSEGMENTATION_VALIDNAME', 13, 1);
end
-- If not Enterprise, update AppealMailingSetup table
if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('3117d2c8-7f46-42f2-abeb-b654f2f63046') = 0 And @OLDHOUSEHOLDINGTYPECODE <> @HOUSEHOLDINGTYPECODE
begin
if exists (select ID from dbo.APPEALMAILINGSETUP where ID = @ID)
update dbo.[APPEALMAILINGSETUP] set
[HOUSEHOLDINGTYPECODE] = @HOUSEHOLDINGTYPECODE,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where
[ID] = @ID;
else
insert into dbo.[APPEALMAILINGSETUP]
([ID], [MAILEXPORTDEFINITIONID], [EMAILEXPORTDEFINITIONID], [HOUSEHOLDINGTYPECODE], [ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED])
values
(@ID, dbo.UFN_COMMUNICATIONLETTER_GETDEFAULTEXPORTDEFINITIONID(1, 0), dbo.UFN_COMMUNICATIONLETTER_GETDEFAULTEXPORTDEFINITIONID(1, 1), @HOUSEHOLDINGTYPECODE, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;
end