USP_DATAFORMTEMPLATE_EDIT_MKTCOMMUNICATIONEFFORTCONTACTRULEEXCLUSIONS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@EXCLUDEDECEASED | bit | IN | |
@EXCLUDEINACTIVE | bit | IN | |
@EXCLUSIONS | xml | IN | |
@EXCLUSIONDATETYPECODE | tinyint | IN | |
@EXCLUSIONASOFDATE | datetime | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTCOMMUNICATIONEFFORTCONTACTRULEEXCLUSIONS]
(
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@EXCLUDEDECEASED bit,
@EXCLUDEINACTIVE bit,
@EXCLUSIONS xml,
@EXCLUSIONDATETYPECODE tinyint,
@EXCLUSIONASOFDATE datetime
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
declare @CURRENTDATE datetime = getdate();
declare @MKTSEGMENTATIONACTIVATEPROCESSID uniqueidentifier;
declare @EXCLUDEDECEASEDLOCKED bit = 0;
declare @EXCLUDEINACTIVELOCKED bit = 0;
declare @EXCLUSIONSLOCKED bit = 0;
declare @EXCLUSIONASOFDATELOCKED bit = 0;
begin try
/* Get template locked settings */
if exists(select top 1 1 from dbo.[MKTCOMMUNICATIONTEMPLATE] where [MKTSEGMENTATIONID] = @ID)
begin
select
@EXCLUDEDECEASEDLOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[EXCLUDEDECEASEDLOCKED],
@EXCLUDEINACTIVELOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[EXCLUDEINACTIVELOCKED],
@EXCLUSIONSLOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[EXCLUSIONSLOCKED],
@EXCLUSIONASOFDATELOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[EXCLUSIONASOFDATELOCKED]
from dbo.[MKTCOMMUNICATIONTEMPLATE]
inner join dbo.[MKTCOMMUNICATIONTEMPLATEDEFAULT] on [MKTCOMMUNICATIONTEMPLATEDEFAULT].[COMMUNICATIONTEMPLATEID] = [MKTCOMMUNICATIONTEMPLATE].[ID]
where [MKTCOMMUNICATIONTEMPLATE].[MKTSEGMENTATIONID] = @ID;
end
/* Get mailing activate process ID */
select
@MKTSEGMENTATIONACTIVATEPROCESSID = [MKTSEGMENTATIONACTIVATEPROCESS].[ID]
from dbo.[MKTSEGMENTATION]
inner join dbo.[MKTSEGMENTATIONACTIVATEPROCESS] on [MKTSEGMENTATIONACTIVATEPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
where [MKTSEGMENTATION].[ID] = @ID;
update
dbo.[BUSINESSPROCESSCOMMPREF]
set
[EXCLUDEDECEASED] = case when @EXCLUDEDECEASEDLOCKED = 1 then [EXCLUDEDECEASED] else @EXCLUDEDECEASED end,
[EXCLUDEINACTIVE] = case when @EXCLUDEINACTIVELOCKED = 1 then [EXCLUDEINACTIVE] else @EXCLUDEINACTIVE end,
[DATETYPECODE] = case when @EXCLUSIONASOFDATELOCKED = 1 then [DATETYPECODE] else @EXCLUSIONDATETYPECODE end,
[ASOFDATE] = case when @EXCLUSIONASOFDATELOCKED = 1 then [ASOFDATE] else @EXCLUSIONASOFDATE end,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [BUSINESSPROCESSPARAMETERSETID] = @MKTSEGMENTATIONACTIVATEPROCESSID;
if @EXCLUSIONSLOCKED = 0
begin
-- Bug 543524: Remove existing duplicate solicit code exclusions to avoid duplicates from required codes
delete from
dbo.[BUSINESSPROCESSCOMMPREFEXCLUSIONS]
where
[BUSINESSPROCESSCOMMPREFEXCLUSIONS].[SOLICITCODEID]
in (select
X.Q.value('@SOLICITCODEID', 'uniqueidentifier')
from
@EXCLUSIONS.nodes('/EXCLUSIONS/ITEM') X(Q))
and
[BUSINESSPROCESSPARAMETERSETID] = @MKTSEGMENTATIONACTIVATEPROCESSID;
exec dbo.[USP_MKTSEGMENTATION_GETREQUIREDANDSELECTEDSOLICITCODEEXCLUSIONS_FROMTEMPLATE_UPDATEFROMXML] @MKTSEGMENTATIONACTIVATEPROCESSID, @EXCLUSIONS, @CHANGEAGENTID, @CURRENTDATE;
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;