USP_DATALIST_CONSTITUENTGROUP_CONSTITUENCY
List of a constituent group's members' constituencies.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GROUPID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@INCLUDEINACTIVE | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_CONSTITUENTGROUP_CONSTITUENCY
(
@GROUPID uniqueidentifier,
@INCLUDEINACTIVE bit = 0
)
as
set nocount on;
select
C.ID,
C.CONSTITUENCYTYPECODE,
NF.NAME,
C.DESCRIPTION,
dbo.UFN_DATE_FROMFUZZYDATE(C.DATEFROM),
dbo.UFN_DATE_FROMFUZZYDATE(C.DATETO),
CONSTITUENT.ID,
case
when CONSTITUENT.ID = @GROUPID then
'0'
when GROUPMEMBER.ISPRIMARY = 1 then
'1'
else
'2' + CONSTITUENT.KEYNAME + ' ' + CONSTITUENT.FIRSTNAME + ' ' + cast(CONSTITUENT.ID as nvarchar(36))
end as 'GROUPORPRIMARYSORT',
CONSTITUENCYDEFINITION.ISACTIVE
from
dbo.GROUPMEMBER
inner join dbo.CONSTITUENT
on CONSTITUENT.ID = GROUPMEMBER.MEMBERID
left join dbo.GROUPMEMBERDATERANGE GMDR
on GMDR.GROUPMEMBERID = GROUPMEMBER.ID
cross apply dbo.UFN_CONSTITUENT_GETALLCONSTITUENCIES(CONSTITUENT.ID) C
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
-- the view should always return all available constituencies, but left joining to ensure Constituent constituencies are never lost.
left join dbo.V_CONSTITUENCYDISPLAYORDER
on V_CONSTITUENCYDISPLAYORDER.ID = C.CONSTITUENCYCODEID
inner join dbo.CONSTITUENCYDEFINITION
on CONSTITUENCYDEFINITION.ID = C.CONSTITUENCYCODEID
where
(
@INCLUDEINACTIVE = 1 or
CONSTITUENCYDEFINITION.ISACTIVE = 1
) and
GROUPMEMBER.GROUPID = @GROUPID and
(
(GMDR.DATEFROM is null and GMDR.DATETO is null)
or
(GMDR.DATEFROM is null and (GMDR.DATETO is not null and GMDR.DATETO >= coalesce(dbo.UFN_DATE_FROMFUZZYDATE(C.DATEFROM), GMDR.DATETO)))
or
(GMDR.DATETO is null and (GMDR.DATEFROM is not null and GMDR.DATEFROM <= coalesce(dbo.UFN_DATE_FROMFUZZYDATE(C.DATETO), GMDR.DATEFROM)))
or
(
GMDR.DATEFROM is not null and GMDR.DATEFROM is not null and
(dbo.UFN_DATE_FROMFUZZYDATE(C.DATEFROM) between GMDR.DATEFROM and GMDR.DATETO) or
(dbo.UFN_DATE_FROMFUZZYDATE(C.DATETO) between GMDR.DATEFROM and GMDR.DATETO) or
(GMDR.DATEFROM between coalesce(dbo.UFN_DATE_FROMFUZZYDATE(C.DATEFROM), GMDR.DATEFROM) and coalesce(dbo.UFN_DATE_FROMFUZZYDATE(C.DATETO), GMDR.DATETO))
)
)
order by
GROUPORPRIMARYSORT desc,
CONSTITUENT.KEYNAME,
CONSTITUENT.FIRSTNAME,
coalesce(V_CONSTITUENCYDISPLAYORDER.SEQUENCE, 9999),
C.DESCRIPTION,
C.DATEFROM,
C.DATETO,
C.CONSTITUENCYTYPECODE;