USP_DATALIST_GROUPMEMBERWITHROLECURRENT
Displays current group members and their roles
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GROUPID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_GROUPMEMBERWITHROLECURRENT
(
@GROUPID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATEEARLIESTTIME date;
set @CURRENTDATEEARLIESTTIME = getdate();
declare @PRIMARYMEMBERID uniqueidentifier;
select @PRIMARYMEMBERID = MEMBERID
from dbo.GROUPMEMBER
where GROUPID = @GROUPID
and ISPRIMARY = 1;
with CURRENTMEMBERS_CTE as
(
select
GM.ID as GROUPMEMBERID,
GM.MEMBERID as MEMBERID,
GM.ISPRIMARY as ISPRIMARY,
GMDR.DATEFROM as STARTDATE,
GMDR.DATETO as ENDDATE
from dbo.GROUPMEMBER GM
left join dbo.GROUPMEMBERDATERANGE as GMDR on GM.ID = GMDR.GROUPMEMBERID
where ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATEEARLIESTTIME))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATEEARLIESTTIME))
or (GMDR.DATEFROM <= @CURRENTDATEEARLIESTTIME and GMDR.DATETO > @CURRENTDATEEARLIESTTIME))
and GM.GROUPID = @GROUPID
)
select
GM.GROUPMEMBERID as GROUPMEMBERID,
null as GROUPMEMBERROLEID,
C.ID as CONSTITUENTID,
case when GM.ISPRIMARY = 1
then 'CATALOG:Blackbaud.AppFx.ConstituentGroups.Catalog.dll,Blackbaud.AppFx.ConstituentGroups.Catalog.primary_16-c.png'
else 'RES:lv_spacer'
end as ISPRIMARYIMAGE,
GM.ISPRIMARY as ISPRIMARY,
(
rtrim(C.NAME + ' ' +
coalesce(
replace(
stuff(
(select '' + STATUS from
(select ',(Deceased)' STATUS
from dbo.DECEASEDCONSTITUENT DC
where DC.ID = C.ID
union all
select ',(Inactive)' STATUS
from dbo.CONSTITUENT
where CONSTITUENT.ID = C.ID
and CONSTITUENT.ISINACTIVE=1
) as SUBQ for xml path(''))
,1,1,'')
, '),(', ', ')
,'')
)
) as NAME,
GM.STARTDATE as STARTDATE,
GM.ENDDATE as ENDDATE,
case when GM.ISPRIMARY = 1
then ''
else ( select
dbo.UDA_BUILDLIST(distinct RTC.DESCRIPTION)
from dbo.RELATIONSHIP R
join dbo.RELATIONSHIPTYPECODE RTC
on R.RELATIONSHIPTYPECODEID = RTC.ID
where C.ID = R.RELATIONSHIPCONSTITUENTID
and R.RECIPROCALCONSTITUENTID = @PRIMARYMEMBERID
)
end as RELATIONSHIPWITHPRIMARY,
null as PARENT,
row_number() over (order by GM.ISPRIMARY desc, C.NAME) as SEQUENCE,
0 as ISROLE,
GM.GROUPMEMBERID as CONTEXTMEMBERID
from CURRENTMEMBERS_CTE as GM
inner join dbo.CONSTITUENT as C on GM.MEMBERID = C.ID
union all
select
null as GROUPMEMBERID,
GMR.ID as GROUPMEMBERROLEID,
C.ID as CONSTITUENTID,
'RES:lv_spacer' as ISPRIMARYIMAGE,
0 as ISPRIMARY,
GMRC.DESCRIPTION as NAME,
GMR.STARTDATE as STARTDATE,
GMR.ENDDATE as ENDDATE,
null as RELATIONSHIPWITHPRIMARY,
GMR.GROUPMEMBERID as PARENT,
row_number() over (order by GMRC.DESCRIPTION) as SEQUENCE,
1 as ISROLE,
GMR.GROUPMEMBERID as CONTEXTMEMBERID
from dbo.GROUPMEMBERROLE as GMR
inner join CURRENTMEMBERS_CTE as GM on GMR.GROUPMEMBERID = GM.GROUPMEMBERID
inner join dbo.CONSTITUENT as C on GM.MEMBERID = C.ID
inner join dbo.GROUPMEMBERROLECODE as GMRC on GMR.GROUPMEMBERROLECODEID = GMRC.ID