USP_DATALIST_DONATION_DESIGNATION_ANCESTORS

Lists a designation's ancestors.

Parameters

Parameter Parameter Type Mode Description
@CONTEXTID uniqueidentifier IN Input parameter indicating the context ID for the data list.

Definition

Copy


CREATE procedure dbo.USP_DATALIST_DONATION_DESIGNATION_ANCESTORS(@CONTEXTID uniqueidentifier)
as
    set nocount on;

--table of the given designation's ancestor's designation level IDs

with DESIGNATIONLEVEL_CTE (ID, NAME) as (
select DESIGNATIONLEVEL.ID, DESIGNATIONLEVEL.NAME 
from    dbo.DESIGNATION
inner join dbo.DESIGNATIONLEVEL
    on (DESIGNATION.DESIGNATIONLEVEL1ID = DESIGNATIONLEVEL.ID) 
    or (DESIGNATION.DESIGNATIONLEVEL2ID = DESIGNATIONLEVEL.ID) 
    or (DESIGNATION.DESIGNATIONLEVEL3ID = DESIGNATIONLEVEL.ID) 
    or (DESIGNATION.DESIGNATIONLEVEL4ID = DESIGNATIONLEVEL.ID) 
where DESIGNATION.ID = @CONTEXTID
)

select 
    DESIGNATION.ID,
    DESIGNATION.VANITYNAME,
    DESIGNATION.ISACTIVE,
    ISNULL(CAST(dbo.MICROSITEPAGE.SITEPAGESID as bit), 0) as ISCMS,
    case
        when (ISNULL(CAST(dbo.MICROSITEPAGE.SITEPAGESID as bit), 0) = 1)
            and (DESIGNATION.ISACTIVE = 1)
            and (((GETDATE() >= DESIGNATION.STARTDATE) or (DESIGNATION.STARTDATE is null)) and ((GETDATE() <= DESIGNATION.ENDDATE) or (DESIGNATION.ENDDATE is null)))
            then 1
        else 0
    end as ISLIVE,
    isnull([DESIGNATION_MICROSITEEMAILTEMPLATE].[EMAILTEMPLATEID], 0) as ACKNOWLEDGEMENTEMAILTEMPLATEID
from DESIGNATION 
inner join DESIGNATIONLEVEL_CTE as DL
    on ((DESIGNATION.DESIGNATIONLEVEL1ID = DL.ID) and (DESIGNATION.DESIGNATIONLEVEL2ID is null))
    or ((DESIGNATION.DESIGNATIONLEVEL2ID = DL.ID) and (DESIGNATION.DESIGNATIONLEVEL3ID is null))
    or ((DESIGNATION.DESIGNATIONLEVEL3ID = DL.ID) and (DESIGNATION.DESIGNATIONLEVEL4ID is null))
    or ((DESIGNATION.DESIGNATIONLEVEL4ID = DL.ID) and (DESIGNATION.DESIGNATIONLEVEL5ID is null))
    or ((DESIGNATION.DESIGNATIONLEVEL5ID = DL.ID))
left join dbo.MICROSITEPAGE
    on (dbo.MICROSITEPAGE.OBJECTID = DESIGNATION.ID) and (dbo.MICROSITEPAGE.EXCLUDED = 0)
left join dbo.[DESIGNATION_MICROSITEEMAILTEMPLATE] on
    ([DESIGNATION].[ID] = [DESIGNATION_MICROSITEEMAILTEMPLATE].[DESIGNATIONID]) and ([DESIGNATION_MICROSITEEMAILTEMPLATE].[ACTIVE] = 1)
order by 
    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        
desc