USP_GLOBALCHANGE_SETALLMAILPREFERENCE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@IDSETREGISTERID | uniqueidentifier | IN | |
@OVERWRITEEXISTING | bit | IN | |
@SENDMAIL | bit | IN | |
@DELIVERYMETHODCODE | tinyint | IN | |
@USESEASONALADDRESS | bit | IN | |
@COMMENTS | nvarchar(500) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@ASOF | datetime | IN | |
@NUMBERADDED | int | INOUT | |
@NUMBEREDITED | int | INOUT | |
@NUMBERDELETED | int | INOUT | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_GLOBALCHANGE_SETALLMAILPREFERENCE
(
@IDSETREGISTERID uniqueidentifier = null,
@OVERWRITEEXISTING bit = 0,
@SENDMAIL bit = 1,
@DELIVERYMETHODCODE tinyint = 0,
@USESEASONALADDRESS bit = 1,
@COMMENTS nvarchar(500) = '',
@CHANGEAGENTID uniqueidentifier = null,
@ASOF as datetime = null,
@NUMBERADDED int = 0 output,
@NUMBEREDITED int = 0 output,
@NUMBERDELETED int = 0 output,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount off;
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate();
set @NUMBERADDED = 0;
set @NUMBEREDITED = 0;
set @NUMBERDELETED = 0;
declare @BPID uniqueidentifier = '3269A1D1-31CB-4D28-945C-B7623A3EFCCA';
declare @BYPASSSECURITY bit;
declare @BYPASSSITESECURITY bit;
exec dbo.USP_SECURITY_APPUSER_BYPASSSECURITYFORBUSINESSPROCESS @CURRENTAPPUSERID, @BPID, @BYPASSSECURITY output, @BYPASSSITESECURITY output;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @USEPRIMARYADDRESS bit
set @USEPRIMARYADDRESS = 0
declare @USEPRIMARYEMAIL bit
set @USEPRIMARYEMAIL = 0
if @SENDMAIL = 1
begin
if @DELIVERYMETHODCODE=0
begin
set @USEPRIMARYADDRESS=1
end
if @DELIVERYMETHODCODE=1
begin
set @USEPRIMARYEMAIL=1
set @USESEASONALADDRESS=0
end
end
else
begin
set @USESEASONALADDRESS = 0; --JamesWill WI192065 2011-02-01 Override the seasonal address flag when choosing not to send mail. This mimics what the UI Model on the add form does.
end
declare @SELECTION table (ID uniqueidentifier not null primary key)
begin try
insert into @SELECTION (ID)
select ID
from dbo.UFN_CONSTITUENT_GETRECORDSINSELECTION_FORBUSINESSPROCESS(@CURRENTAPPUSERID, @IDSETREGISTERID, @BPID, @BYPASSSECURITY, @BYPASSSITESECURITY);
if @OVERWRITEEXISTING = 1
begin
delete dbo.MAILPREFERENCE
where CONSTITUENTID in (select ID from @SELECTION)
end
declare @i int
set @i = 0
while @i < 9
begin
insert into dbo.MAILPREFERENCE
(
ID, CONSTITUENTID, MAILTYPECODE, SENDMAIL, DELIVERYMETHODCODE, ADDRESSID, EMAILADDRESSID, USESEASONALADDRESS,
USEPRIMARYADDRESS, USEPRIMARYEMAIL, COMMENTS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
newid(), selection.ID, @i, @SENDMAIL, @DELIVERYMETHODCODE, null, null, @USESEASONALADDRESS,
@USEPRIMARYADDRESS, @USEPRIMARYEMAIL, @COMMENTS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from @SELECTION selection
where @OVERWRITEEXISTING = 1 or
dbo.UFN_MAILPREFERENCE_VALIDATEUNIQUE(null, selection.ID, @i, null, null, null, null,
null, null, null, null, null) = 1
set @NUMBERADDED = @NUMBERADDED + @@ROWCOUNT
set @i = @i + 1
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch