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;