USP_CONSTITUENTSOLICITCODES_DATALIST
Constituent solicit code list
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@SITEID | uniqueidentifier | IN | Site |
@SHOWEXPIRED | bit | IN | Show expired codes for |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@DATERANGE | smallint | IN | Date range |
@SITEFILTERMODE | tinyint | IN | Sites |
@SITESSELECTED | xml | IN | |
@SECURITYFEATUREID | uniqueidentifier | IN | Input parameter indicating the ID of the feature to use for site security checking. |
@SECURITYFEATURETYPE | tinyint | IN | Input parameter indicating the type of the feature to use for site security checking. |
Definition
Copy
CREATE procedure dbo.USP_CONSTITUENTSOLICITCODES_DATALIST(
@CONSTITUENTID uniqueidentifier,
@SITEID uniqueidentifier=null,
@SHOWEXPIRED bit=0,
@CURRENTAPPUSERID uniqueidentifier=null,
@DATERANGE smallint=4,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null
)
as
set nocount on;
declare @CUTOFFDATE datetime
if @DATERANGE = 1 -- Last 30 days
set @CUTOFFDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-29,getdate()));
else if @DATERANGE = 2 -- Last 60 days
set @CUTOFFDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-59,getdate()));
else if @DATERANGE = 3 -- Last 90 days
set @CUTOFFDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-89,getdate()))
else if @DATERANGE = 4 -- Last 6 months
set @CUTOFFDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(month,-6,getdate()));
else if @DATERANGE = 5 -- Last year
set @CUTOFFDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(year,-1,getdate()));
else if @DATERANGE = 6 -- Last 2 years
set @CUTOFFDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(year,-2,getdate()));
select
CONSTITUENTSOLICITCODE.ID,
SOLICITCODE.DESCRIPTION,
coalesce(SITE.NAME, 'All sites'),
CONSTITUENTSOLICITCODE.STARTDATE,
CONSTITUENTSOLICITCODE.ENDDATE,
CONSTITUENTSOLICITCODE.COMMENTS,
case when (CONSTITUENTSOLICITCODE.ENDDATE is null or CONSTITUENTSOLICITCODE.ENDDATE>getdate()) then 0 else 1 end "EXPIRED",
1 EDITABLE,
SOLICITCODE.ID as SOLICITCODEID,
case
when SOLICITCODE.CONSENTCODE = 0 then 255
else CONSENTPREFERENCECODE
end CONSENTPREFERENCECODE,
DATAPROTECTIONEVIDENCESOURCECODE.[DESCRIPTION] SOURCE,
case
when SOLICITCODE.CONSENTCODE = 0 then null
when LEN(SOURCEFILEPATH) <> 0 then 1
else 0
end SOURCEFILEPATH,
case
when SOLICITCODE.CONSENTCODE = 0 then null
when LEN(PRIVACYPOLICYFILEPATH) <> 0 then 1
else 0
end PRIVACYPOLICYFILEPATH,
case
when SOLICITCODE.CONSENTCODE = 0 then null
when LEN(SUPPORTINGINFORMATION) <> 0 then 1
else 0
end SUPPORTINGINFORMATION,
case
when SOLICITCODE.CONSENTCODE = 0 then null
when LEN(CONSENTSTATEMENT) <> 0 then 1
else 0
end CONSENTSTATEMENT,
SOLICITCODE.CONSENTCODE as CONSENTCODE
from
dbo.CONSTITUENTSOLICITCODE
inner join dbo.SOLICITCODE on SOLICITCODE.ID=CONSTITUENTSOLICITCODE.SOLICITCODEID
left join dbo.SITE on SOLICITCODE.SITEID=SITE.ID
left join dbo.DATAPROTECTIONEVIDENCESOURCECODE on DATAPROTECTIONEVIDENCESOURCECODE.ID = CONSTITUENTSOLICITCODE.SOURCECODEID
where
(
-- Special case. Only copy this behavior if no site assignment means all sites.
SOLICITCODE.SITEID is null
or
(dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SOLICITCODE].[SITEID] or (SITEID is null and [SOLICITCODE].[SITEID] is null)))
)
and
(
@SITEFILTERMODE = 0
or
SOLICITCODE.SITEID in(select SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED))
)
and
CONSTITUENTSOLICITCODE.CONSTITUENTID = @CONSTITUENTID
and
(
(
@SHOWEXPIRED = 1
and
(
@CUTOFFDATE is null
or
datediff(day, ENDDATE, @CUTOFFDATE) <=0
)
)
or
ENDDATE is null
or
datediff(day, ENDDATE, getdate()) <= 0
)
order by
EXPIRED, CONSTITUENTSOLICITCODE.SEQUENCE