USP_DATAFORM_ADD_MAILPREFERENCE
The save procedure used by the add dataform template "Mail Preference Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@MAILTYPECODE | tinyint | IN | Mail type |
@ACKNOWLEDGEMENTID | uniqueidentifier | IN | Selected communication |
@CORRESPONDENCEID | uniqueidentifier | IN | Selected communication |
@PLEDGEREMINDERID | uniqueidentifier | IN | Selected communication |
@BUSINESSUNITCODEID | uniqueidentifier | IN | Business unit |
@CATEGORYCODEID | uniqueidentifier | IN | Category |
@EVENTCATEGORYCODEID | uniqueidentifier | IN | Category |
@SITEID | uniqueidentifier | IN | Site |
@CORRESPONDENCECODEID | uniqueidentifier | IN | Correspondence code |
@RECEIPTTYPECODE | int | IN | Receipt type |
@SENDMAIL | bit | IN | Send mail |
@DELIVERYMETHODCODE | tinyint | IN | Send by |
@CONTACTTYPES | xml | IN | Send to contact(s) |
@ADDRESSID | uniqueidentifier | IN | Selected address |
@EMAILADDRESSID | uniqueidentifier | IN | Selected address |
@USESEASONALADDRESS | bit | IN | Send to seasonal address when valid |
@COMMENTS | nvarchar(500) | IN | Comments |
@GROUPCONTACTS | xml | IN | |
@PURPOSEID | uniqueidentifier | IN | Fundraising Purpose |
@DONOTSENDOTHERCHANNEL | bit | IN | |
@ISNOPREFERENCE | bit | IN | |
@LINKEDCONSTITUENTSOLICITCODEID | uniqueidentifier | IN | |
@HASINHERITEDCONSENT | bit | IN | |
@SOURCEEVIDENCECODEID | uniqueidentifier | IN | |
@SOURCEFILE | nvarchar(260) | IN | |
@PRIVACYPOLICY | nvarchar(260) | IN | |
@SUPPORTINGINFORMATION | nvarchar(max) | IN | |
@CONSENTSTATEMENT | nvarchar(max) | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORM_ADD_MAILPREFERENCE
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@CONSTITUENTID uniqueidentifier,
@MAILTYPECODE tinyint = null,
@ACKNOWLEDGEMENTID uniqueidentifier = null,
@CORRESPONDENCEID uniqueidentifier = null,
@PLEDGEREMINDERID uniqueidentifier = null,
@BUSINESSUNITCODEID uniqueidentifier = null,
@CATEGORYCODEID uniqueidentifier = null,
@EVENTCATEGORYCODEID uniqueidentifier = null,
@SITEID uniqueidentifier = null,
@CORRESPONDENCECODEID uniqueidentifier = null,
@RECEIPTTYPECODE int = 0,
@SENDMAIL bit = 1,
@DELIVERYMETHODCODE tinyint = 0,
@CONTACTTYPES xml = null,
@ADDRESSID uniqueidentifier = null,
@EMAILADDRESSID uniqueidentifier = null,
@USESEASONALADDRESS bit = 1,
@COMMENTS nvarchar(500) = '',
@GROUPCONTACTS xml = null,
@PURPOSEID uniqueidentifier = null,
@DONOTSENDOTHERCHANNEL bit = 0,
@ISNOPREFERENCE bit = 0,
@LINKEDCONSTITUENTSOLICITCODEID uniqueidentifier = null,
@HASINHERITEDCONSENT bit = 0,
@SOURCEEVIDENCECODEID uniqueidentifier = null,
@SOURCEFILE nvarchar(260) = '',
@PRIVACYPOLICY nvarchar(260) = '',
@SUPPORTINGINFORMATION nvarchar(max) = '',
@CONSENTSTATEMENT nvarchar(max) = ''
)
as
set nocount on;
if @ISNOPREFERENCE = 1
return;
declare @CURRENTDATE datetime;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
-- Note to future developers, please don't copy this pattern of using 00000000-0000-0000-0000-000000000001. There are better ways to do this, but since we want to minimize code churn, this implementation is still in place.
declare @USEPRIMARYADDRESS bit
if @ADDRESSID='00000000-0000-0000-0000-000000000001'
begin
set @USEPRIMARYADDRESS = 1;
set @ADDRESSID = null;
end
else
begin
set @USEPRIMARYADDRESS = 0;
end
-- Note to future developers, please don't copy this pattern of using 00000000-0000-0000-0000-000000000001. There are better ways to do this, but since we want to minimize code churn, this implementation is still in place.
declare @USEPRIMARYEMAIL bit
if @EMAILADDRESSID='00000000-0000-0000-0000-000000000001'
begin
set @USEPRIMARYEMAIL = 1;
set @EMAILADDRESSID = null;
end
else
begin
set @USEPRIMARYEMAIL = 0;
end
begin try
--JamesWill WI144637 2011-04-07 Don't try to set site unless the preference type supports it
if not @MAILTYPECODE in (1,2)
set @SITEID = null;
insert into dbo.MAILPREFERENCE
(
ID,
CONSTITUENTID,
MAILTYPECODE,
ACKNOWLEDGEMENTID,
CORRESPONDENCEID,
PLEDGEREMINDERID,
BUSINESSUNITCODEID,
CATEGORYCODEID,
EVENTCATEGORYCODEID,
SITEID,
CORRESPONDENCECODEID,
RECEIPTTYPECODE,
SENDMAIL,
DELIVERYMETHODCODE,
ADDRESSID,
EMAILADDRESSID,
USESEASONALADDRESS,
USEPRIMARYADDRESS,
USEPRIMARYEMAIL,
COMMENTS,
PURPOSEID,
DONOTSENDOTHERCHANNEL,
CONSTITUENTSOLICITCODEID,
HASINHERITEDCONSENT,
SOURCECODEID,
SOURCEFILEPATH,
PRIVACYPOLICYFILEPATH,
SUPPORTINGINFORMATION,
CONSENTSTATEMENT,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ID,
@CONSTITUENTID,
@MAILTYPECODE,
@ACKNOWLEDGEMENTID,
@CORRESPONDENCEID,
@PLEDGEREMINDERID,
@BUSINESSUNITCODEID,
@CATEGORYCODEID,
@EVENTCATEGORYCODEID,
@SITEID,
@CORRESPONDENCECODEID,
@RECEIPTTYPECODE,
@SENDMAIL,
@DELIVERYMETHODCODE,
@ADDRESSID,
@EMAILADDRESSID,
@USESEASONALADDRESS,
@USEPRIMARYADDRESS,
@USEPRIMARYEMAIL,
@COMMENTS,
@PURPOSEID,
@DONOTSENDOTHERCHANNEL,
@LINKEDCONSTITUENTSOLICITCODEID,
@HASINHERITEDCONSENT,
@SOURCEEVIDENCECODEID,
@SOURCEFILE,
@PRIVACYPOLICY,
@SUPPORTINGINFORMATION,
@CONSENTSTATEMENT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_MAILPREFERENCE_GETCONTACTTYPES_ADDFROMXML @ID, @CONTACTTYPES, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MAILPREFERENCE_GETGROUPCONTACTS_ADDFROMXML @ID, @GROUPCONTACTS, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;