USP_DATALIST_MAILPREFERENCE
Generates information to build MailPreferences.Datalist
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@MAILTYPECODE | int | IN | |
@SITEFILTERMODE | tinyint | IN | |
@SITESSELECTED | xml | IN | |
@SECURITYFEATUREID | uniqueidentifier | IN | |
@SECURITYFEATURETYPE | tinyint | IN | |
@ONLYSHOWACTIVESOLICITCODES | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_MAILPREFERENCE
(
@CONSTITUENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier = null,
@MAILTYPECODE int = -1,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@ONLYSHOWACTIVESOLICITCODES bit = 0
)
as
set nocount on;
set @MAILTYPECODE = coalesce(@MAILTYPECODE, -1);
declare @ENTERPRISE bit = dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('3117D2C8-7F46-42F2-ABEB-B654F2F63046');
declare @ADVANCEDDEV bit = dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('A84DF439-5A75-4A3B-B3F5-B47035DDD3FF');
declare @CURRENTDATE date = getdate();
select
MAILPREFERENCE.ID,
MAILPREFERENCE.MAILTYPE,
ACKNOWLEDGEMENTPROCESS.NAME,
CORRESPONDENCEPROCESS.NAME,
PLEDGEREMINDERPROCESS.NAME,
SITE.NAME,
BUSINESSUNITCODE.DESCRIPTION,
APPEALCATEGORYCODE.DESCRIPTION,
MAILPREFERENCE.RECEIPTTYPE,
MAILPREFERENCE.SENDMAIL,
MAILPREFERENCE.DELIVERYMETHOD,
ADDRESSTYPECODE.DESCRIPTION,
ADDRESS.ISPRIMARY,
dbo.UFN_BUILDFULLADDRESS(ADDRESS.ID, ADDRESS.ADDRESSBLOCK,ADDRESS.CITY,ADDRESS.STATEID,ADDRESS.POSTCODE,ADDRESS.COUNTRYID),
EMAILADDRESSTYPECODE.DESCRIPTION,
EMAILADDRESS.ISPRIMARY,
EMAILADDRESS.EMAILADDRESS,
MAILPREFERENCE.USESEASONALADDRESS,
MAILPREFERENCE.COMMENTS,
CONSTITUENT.ISORGANIZATION,
CORRESPONDENCECODE.NAME,
ADDRESS.DONOTMAIL,
EVENTCATEGORYCODE.DESCRIPTION,
MAILPREFERENCE.USEPRIMARYADDRESS,
MAILPREFERENCE.USEPRIMARYEMAIL,
EMAILADDRESS.DONOTEMAIL,
CONSTITUENT.ISGROUP,
DESIGNATIONLEVEL.NAME,
case
when MAILPREFERENCE.MAILTYPECODE in (1,2) and SITE.ID is null and dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID,null) = 0
then 0
else 1
end ENABLEACTIONS,
SOLICITCODE.DESCRIPTION as LINKEDSOLICITCODE,
case
when MAILPREFERENCE.CONSTITUENTSOLICITCODEID is not null
and @CURRENTDATE not between CONSTITUENTSOLICITCODE.STARTDATE and isnull(CONSTITUENTSOLICITCODE.ENDDATE, @CURRENTDATE)
then 'RES:warning'
else null
end as IMAGEKEY
from dbo.MAILPREFERENCE
left join dbo.ACKNOWLEDGEMENTPROCESS on ACKNOWLEDGEMENTPROCESS.ID = MAILPREFERENCE.ACKNOWLEDGEMENTID
left join dbo.CORRESPONDENCEPROCESS on CORRESPONDENCEPROCESS.ID = MAILPREFERENCE.CORRESPONDENCEID
left join dbo.PLEDGEREMINDERPROCESS on PLEDGEREMINDERPROCESS.ID = MAILPREFERENCE.PLEDGEREMINDERID
left join dbo.SITE on SITE.ID = MAILPREFERENCE.SITEID
left join dbo.BUSINESSUNITCODE on BUSINESSUNITCODE.ID = MAILPREFERENCE.BUSINESSUNITCODEID
left join dbo.APPEALCATEGORYCODE on APPEALCATEGORYCODE.ID = MAILPREFERENCE.CATEGORYCODEID
left join dbo.EVENTCATEGORYCODE on EVENTCATEGORYCODE.ID = MAILPREFERENCE.EVENTCATEGORYCODEID
left join dbo.CONSTITUENT on CONSTITUENT.ID = MAILPREFERENCE.CONSTITUENTID
left join dbo.ADDRESS on ADDRESS.ID = MAILPREFERENCE.ADDRESSID
left join dbo.ADDRESSTYPECODE on ADDRESSTYPECODE.ID = ADDRESS.ADDRESSTYPECODEID
left join dbo.EMAILADDRESS on EMAILADDRESS.ID = MAILPREFERENCE.EMAILADDRESSID
left join dbo.EMAILADDRESSTYPECODE on EMAILADDRESSTYPECODE.ID = EMAILADDRESS.EMAILADDRESSTYPECODEID
left join dbo.STATE on STATE.ID = ADDRESS.STATEID
left join dbo.CORRESPONDENCECODE on MAILPREFERENCE.CORRESPONDENCECODEID = CORRESPONDENCECODE.ID
left join dbo.DESIGNATIONLEVEL on MAILPREFERENCE.PURPOSEID = DESIGNATIONLEVEL.ID
left join dbo.CONSTITUENTSOLICITCODE on MAILPREFERENCE.CONSTITUENTSOLICITCODEID = CONSTITUENTSOLICITCODE.ID
left join dbo.SOLICITCODE on CONSTITUENTSOLICITCODE.SOLICITCODEID = SOLICITCODE.ID
where
MAILPREFERENCE.CONSTITUENTID = @CONSTITUENTID
and
(
dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID,MAILPREFERENCE.SITEID) = 1
or MAILPREFERENCE.SITEID is null
or MAILPREFERENCE.MAILTYPECODE not in (1, 2)
)
and
(
@SITEFILTERMODE = 0
or MAILPREFERENCE.MAILTYPECODE not in (1, 2)
or MAILPREFERENCE.SITEID in (select SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED))
)
and (MAILPREFERENCE.PURPOSEID is null or dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID,DESIGNATIONLEVEL.SITEID) = 1)
and (case
when MAILPREFERENCE.MAILTYPECODE = 3 then @ENTERPRISE --General correspondence
when MAILPREFERENCE.MAILTYPECODE = 5 then @ENTERPRISE -- Receipts
when MAILPREFERENCE.MAILTYPECODE = 6 then (@ENTERPRISE | @ADVANCEDDEV) --Planned gift acknowledgements
when MAILPREFERENCE.MAILTYPECODE = 8 then @ENTERPRISE --Stewardship
else 1
end ) = 1
and (
(@MAILTYPECODE = -1) or (@MAILTYPECODE = MAILPREFERENCE.MAILTYPECODE)
)
and (
@ONLYSHOWACTIVESOLICITCODES = 0
or (
@ONLYSHOWACTIVESOLICITCODES = 1
and @CURRENTDATE between CONSTITUENTSOLICITCODE.STARTDATE and isnull(CONSTITUENTSOLICITCODE.ENDDATE, @CURRENTDATE)
)
);