USP_SIMPLEDATALIST_HOUSEHOLDMEMBERS
Lists all current members of a household.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITID | uniqueidentifier | IN | CONSTITID |
Definition
Copy
CREATE procedure dbo.USP_SIMPLEDATALIST_HOUSEHOLDMEMBERS
(
@CONSTITID uniqueidentifier
)
as
set nocount on
declare @GROUPID uniqueidentifier;
declare @ISGROUP bit;
set @ISGROUP = 0;
select
@GROUPID = GROUPID
from
dbo.GROUPMEMBER
inner join dbo.CONSTITUENT C on C.ID = GROUPMEMBER.GROUPID and C.ISINACTIVE = 0 -- Check if group is active
inner join dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GROUPMEMBER.ID -- Check if constituent is a group member
inner join
dbo.GROUPDATA
on
GROUPTYPECODE = 0 and GROUPID = GROUPDATA.ID
where
MEMBERID = @CONSTITID
if @GROUPID is null
begin
select
@GROUPID = GROUPID,
@ISGROUP = 1
from
dbo.GROUPMEMBER
inner join dbo.CONSTITUENT C on C.ID = GROUPMEMBER.GROUPID and C.ISINACTIVE = 0 -- Check if group is active
inner join
dbo.GROUPDATA
on
GROUPTYPECODE = 0 and GROUPID = GROUPDATA.ID
where
GROUPID = @CONSTITID
end
declare @CURRENTDATE datetime;
set @CURRENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
if @GROUPID is null
select @CONSTITID as VALUE,
NF.NAME as LABEL
from dbo.UFN_CONSTITUENT_DISPLAYNAME(@CONSTITID) NF
else
select
GM.MEMBERID as VALUE,
NF.NAME as LABEL
from dbo.GROUPMEMBER GM
inner join dbo.CONSTITUENT on CONSTITUENT.ID = GM.MEMBERID and CONSTITUENT.ISINACTIVE = 0
inner join dbo.CONSTITUENT GC on GC.ID = GM.GROUPID and GC.ISINACTIVE = 0 -- Check if group is active
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(GM.MEMBERID) NF
left join dbo.GROUPMEMBERDATERANGE GMDR on GM.ID = GMDR.GROUPMEMBERID
where
GM.GROUPID = @GROUPID
-- the GMDR.DATETO is set to the earliest time on that day, so use a strictly greater than in checks using current day
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE))
or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE))
and not exists (select 1 from dbo.DECEASEDCONSTITUENT where ID = GM.MEMBERID)
union all
select @CONSTITID as VALUE,
NF.NAME as LABEL
from dbo.UFN_CONSTITUENT_DISPLAYNAME(@CONSTITID) NF
where @ISGROUP = 1
order by NF.NAME