USP_DATALIST_SPONSORSHIPLOCATIONHIERARCHY
List of all sponsorship locations in a hierarchical format.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@INCLUDEACTIVE | bit | IN | Include active |
@INCLUDEINACTIVE | bit | IN | Include inactive |
@INCLUDECLOSED | bit | IN | Include closed |
@INCLUDEONLINEONLY | bit | IN | Only include online |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_SPONSORSHIPLOCATIONHIERARCHY(
@INCLUDEACTIVE bit = 1,
@INCLUDEINACTIVE bit = 1,
@INCLUDECLOSED bit = 1,
@INCLUDEONLINEONLY bit = 0
)
as
set nocount on;
select
L.ID,
L.NAME,
SPONSORSHIPLOCATIONTYPECODE.DESCRIPTION TYPE,
L.STATUS,
L.SPONSORSHIPREASONID,
SPONSORSHIPREASON.REASON as REASON,
L.DESIGNATIONID,
DESIGNATION.NAME DESIGNATION,
(select ID from dbo.SPONSORSHIPLOCATION P where L.HIERARCHYPATH.GetAncestor(1)= P.HIERARCHYPATH) as PARENTID,
case when SPONSORSHIPLOCATIONCLOSEPROCESS.ID is not null then 1 else 0 end SHOWPROCESSPAGE,
case L.STATUSCODE
when 0 then 0
-- can't mark active if any parent is not active
else case when exists(select 'x'
from dbo.SPONSORSHIPLOCATION P
where L.HIERARCHYPATH.IsDescendantOf(P.HIERARCHYPATH) = 1
and P.ID <> L.ID
and P.STATUSCODE <> 0) then 0 else 1 end
end ALLOWMARKACTIVE,
case L.STATUSCODE
when 0 then 1
when 1 then 0
-- can't mark inactive if any parent is closed
else case when exists(select 'x'
from dbo.SPONSORSHIPLOCATION P
where L.HIERARCHYPATH.IsDescendantOf(P.HIERARCHYPATH) = 1
and P.ID <> L.ID
and P.STATUSCODE = 2) then 0 else 1 end
end ALLOWMARKINACTIVE
from
dbo.SPONSORSHIPLOCATION L
inner join
dbo.SPONSORSHIPLOCATIONTYPECODE on SPONSORSHIPLOCATIONTYPECODE.ID = L.SPONSORSHIPLOCATIONTYPECODEID
left outer join
dbo.DESIGNATION on DESIGNATION.ID = L.DESIGNATIONID
left outer join
dbo.SPONSORSHIPREASON on SPONSORSHIPREASON.ID = L.SPONSORSHIPREASONID
left outer join
dbo.SPONSORSHIPLOCATIONCLOSEPROCESS on SPONSORSHIPLOCATIONCLOSEPROCESS.ID = L.ID
where case STATUSCODE when 0 then @INCLUDEACTIVE
when 1 then @INCLUDEINACTIVE
when 2 then @INCLUDECLOSED end = 1
and (@INCLUDEONLINEONLY = 0 or DISPLAYONLINE = 1)
order by
dbo.UFN_SPONSORSHIPLOCATION_FULLSTRING(L.ID,'|',0,0);