USP_DATALIST_MICROSITEDONATIONDESIGNATIONS
Lists the designations.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DESIGNATIONID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@CMSONLY | bit | IN | Show designations approved for website |
@LIVEONLY | bit | IN | Show designations live on website |
@NAMELIKE | nvarchar(512) | IN | Filter by designation name |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_MICROSITEDONATIONDESIGNATIONS
(
@DESIGNATIONID uniqueidentifier,
@CMSONLY bit = null,
@LIVEONLY bit = null,
@NAMELIKE nvarchar(512) = null
) as
set nocount on;
declare @DESIGNATIONLEVELID uniqueidentifier;
select @DESIGNATIONLEVELID =
case
when DESIGNATIONLEVEL2ID is null then DESIGNATIONLEVEL1ID
when DESIGNATIONLEVEL3ID is null then DESIGNATIONLEVEL2ID
when DESIGNATIONLEVEL4ID is null then DESIGNATIONLEVEL3ID
when DESIGNATIONLEVEL5ID is null then DESIGNATIONLEVEL4ID
else DESIGNATIONLEVEL5ID
end
from dbo.DESIGNATION where ID = @DESIGNATIONID;
declare @CURRENTDATE datetime = getdate();
declare @BBNCURL nvarchar(1024) = dbo.UFN_BBNC_URL();
set @NAMELIKE = '%' + ltrim(rtrim(@NAMELIKE)) + '%'
if @CMSONLY is null
set @CMSONLY = 0
if @LIVEONLY is null
set @LIVEONLY = 0
select
DESIGNATION.ID,
DESIGNATION.VANITYNAME AS PUBLICNAME,
--DESIGNATIONLEVELTYPE.[DESCRIPTION] AS TYPEDESCRIPTION,
DESIGNATION.STARTDATE,
DESIGNATION.ENDDATE,
DESIGNATION.ISACTIVE,
ISNULL(CAST(dbo.MICROSITEPAGE.SITEPAGESID AS BIT), 0) AS ISCMS,
LIVESTATUS.ISLIVE,
DESIGNATIONLEVEL.NAME,
DESIGNATION.USERID AS LOOKUPID,
case
when DESIGNATION.DESIGNATIONLEVEL2ID is null then 1
when DESIGNATION.DESIGNATIONLEVEL3ID is null then 2
when DESIGNATION.DESIGNATIONLEVEL4ID is null then 3
when DESIGNATION.DESIGNATIONLEVEL5ID is null then 4
else 5
end AS [LEVEL],
PARENTDESIGNATION.ID AS PARENTID,
MICROSITEPAGE.SITEPAGESID AS SITEPAGESID,
CASE WHEN ISNULL(CAST(MICROSITEPAGE.SITEPAGESID AS BIT), 0) = 1 THEN @BBNCURL + (SELECT TOP 1 VanityURL from dbo.VanityURL where PageID= MICROSITEPAGE.SITEPAGESID) ELSE '' END AS URL,
dbo.MICROSITEPAGE.PRIMARYCONTENTID AS PRIMARYCONTENTID,
DESIGNATION_MICROSITEEMAILTEMPLATE.ID as MICROSITEEMAILTEMPLATEID,
coalesce(DESIGNATION_MICROSITEEMAILTEMPLATE.ACTIVE, 0) HASACTIVEACKNOWLEDGEMENTEMAIL
from
dbo.DESIGNATION
inner join dbo.DESIGNATIONLEVEL
on (DESIGNATION.DESIGNATIONLEVEL1ID = DESIGNATIONLEVEL.ID and DESIGNATION.DESIGNATIONLEVEL2ID is null)
or (DESIGNATION.DESIGNATIONLEVEL2ID = DESIGNATIONLEVEL.ID and DESIGNATION.DESIGNATIONLEVEL3ID is null)
or (DESIGNATION.DESIGNATIONLEVEL3ID = DESIGNATIONLEVEL.ID and DESIGNATION.DESIGNATIONLEVEL4ID is null)
or (DESIGNATION.DESIGNATIONLEVEL4ID = DESIGNATIONLEVEL.ID and DESIGNATION.DESIGNATIONLEVEL5ID is null)
or (DESIGNATION.DESIGNATIONLEVEL5ID = DESIGNATIONLEVEL.ID)
--inner join dbo.DESIGNATIONLEVELTYPE
-- on DESIGNATIONLEVEL.DESIGNATIONLEVELTYPEID = DESIGNATIONLEVELTYPE.ID
left join dbo.DESIGNATION [PARENTDESIGNATION]
on DESIGNATION.DESIGNATIONLEVEL1ID = PARENTDESIGNATION.DESIGNATIONLEVEL1ID
and (DESIGNATION.DESIGNATIONLEVEL2ID = PARENTDESIGNATION.DESIGNATIONLEVEL2ID or (PARENTDESIGNATION.DESIGNATIONLEVEL2ID is null and DESIGNATION.DESIGNATIONLEVEL3ID is null))
and (DESIGNATION.DESIGNATIONLEVEL3ID = PARENTDESIGNATION.DESIGNATIONLEVEL3ID or (PARENTDESIGNATION.DESIGNATIONLEVEL3ID is null and DESIGNATION.DESIGNATIONLEVEL4ID is null))
and (DESIGNATION.DESIGNATIONLEVEL4ID = PARENTDESIGNATION.DESIGNATIONLEVEL4ID or (PARENTDESIGNATION.DESIGNATIONLEVEL4ID is null and DESIGNATION.DESIGNATIONLEVEL5ID is null))
and DESIGNATION.ID <> PARENTDESIGNATION.ID
--left join dbo.DonationDesignations
-- on dbo.DonationDesignations.BackOfficeIDGUID = DESIGNATION.ID
left join dbo.MICROSITEPAGE
on (dbo.MICROSITEPAGE.OBJECTID = DESIGNATION.ID) and (dbo.MICROSITEPAGE.EXCLUDED = 0)
left outer join dbo.DESIGNATION_MICROSITEEMAILTEMPLATE
on DESIGNATION.ID = DESIGNATION_MICROSITEEMAILTEMPLATE.DESIGNATIONID
cross apply (
select case
when (ISNULL(CAST(dbo.MICROSITEPAGE.SITEPAGESID AS BIT), 0) = 1)--(ISNULL(CAST(dbo.DonationDesignations.ID AS BIT), 0) = 1)
and (DESIGNATION.ISACTIVE = 1)
and (((@CURRENTDATE >= DESIGNATION.STARTDATE) or (DESIGNATION.STARTDATE is null)) and ((@CURRENTDATE <= DESIGNATION.ENDDATE) or (DESIGNATION.ENDDATE is null)))
then 1
else 0
end as [ISLIVE]
) as [LIVESTATUS]
where ((@DESIGNATIONID = '0D47D951-8E96-4FBA-A7AA-2339B3D7B0BC') -- this well known guid is passed in as the context by the page to indicate all hierarchies
or (DESIGNATION.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID)
or (DESIGNATION.DESIGNATIONLEVEL2ID = @DESIGNATIONLEVELID)
or (DESIGNATION.DESIGNATIONLEVEL3ID = @DESIGNATIONLEVELID)
or (DESIGNATION.DESIGNATIONLEVEL4ID = @DESIGNATIONLEVELID)
or (DESIGNATION.DESIGNATIONLEVEL5ID = @DESIGNATIONLEVELID)
or (DESIGNATIONLEVEL.ID = @DESIGNATIONLEVELID)
)
--and ((DESIGNATION.ISACTIVE = 1) or (any descendant is active))
and ((@CMSONLY= 0)
or (ISNULL(CAST(dbo.MICROSITEPAGE.SITEPAGESID AS BIT), 0) = 1)
)
and ((@LIVEONLY = 0)
or [LIVESTATUS].[ISLIVE] = 1
)
and ((@NAMELIKE is null)
or (DESIGNATION.VANITYNAME LIKE @NAMELIKE)
)
order by DESIGNATION.VANITYNAME, case when DESIGNATIONLEVEL.ID = @DESIGNATIONLEVELID then 1 else 0 end desc