USP_DATALIST_CONSTITUENTPROFILEDASHBOARDGROUPMEMBERS
This datalist returns group members for use in the constituent profile dashboard.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Constituent |
@ISVISIBLE | bit | IN | Visible |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_CONSTITUENTPROFILEDASHBOARDGROUPMEMBERS
(
@CONSTITUENTID uniqueidentifier,
@ISVISIBLE bit = 1,
@CURRENTAPPUSERID uniqueidentifier
)
as
set nocount on;
-- Bug 26927 - AdamBu - Security is not enforced in the members datalist, so don't enforce it here.
-- declare @ISADMIN bit;
-- declare @APPUSER_IN_NONRACROLE bit;
-- declare @APPUSER_IN_NOSECGROUPROLE bit;
-- declare @APPUSER_IN_NONSITEROLE bit;
-- declare @APPUSER_IN_NOSITEROLE bit;
--
-- set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
-- set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
-- set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
-- set @APPUSER_IN_NONSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NONSITEROLE(@CURRENTAPPUSERID);
-- set @APPUSER_IN_NOSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SITE_ROLE(@CURRENTAPPUSERID);
if @ISVISIBLE = 1
begin
declare @CURRENTDATE date;
set @CURRENTDATE = getdate()
declare @PRIMARYMEMBERID uniqueidentifier
select @PRIMARYMEMBERID = MEMBERID
from dbo.GROUPMEMBER
where
GROUPID = @CONSTITUENTID and
ISPRIMARY = 1
select
NF.NAME + case
when GM.ISPRIMARY = 1 then ' (Primary)'
else ''
end NAME,
C.NICKNAME,
C.MAIDENNAME,
dbo.UFN_BUILDFULLADDRESS(A.ID, A.ADDRESSBLOCK, A.CITY, A.STATEID, A.POSTCODE, A.COUNTRYID) ADDRESS,
C.BIRTHDATE,
case when DC.ID is null and C.BIRTHDATE <> '00000000' and not substring(C.BIRTHDATE,1,4) = '0000' then C.AGE else null end as AGE,
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,
(select dbo.UDA_BUILDLIST(dbo.UFN_GROUPMEMBERROLECODE_GETDESCRIPTION(GMR.GROUPMEMBERROLECODEID))
from dbo.GROUPMEMBERROLE GMR
where GMR.GROUPMEMBERID = GM.ID
and ((GMR.STARTDATE is null and (GMR.ENDDATE is null or GMR.ENDDATE > @CURRENTDATE))
or (GMR.ENDDATE is null and (GMR.STARTDATE is null or GMR.STARTDATE <= @CURRENTDATE))
or (GMR.STARTDATE <= @CURRENTDATE and GMR.ENDDATE > @CURRENTDATE))) as ROLES
from dbo.GROUPMEMBER GM
inner join dbo.CONSTITUENT C on GM.MEMBERID = C.ID
left join dbo.ADDRESS A on C.ID = A.CONSTITUENTID and A.ISPRIMARY = 1
left outer join dbo.DECEASEDCONSTITUENT DC on DC.ID = C.ID
left outer join dbo.GROUPMEMBERDATERANGE as GMDR on GM.ID = GMDR.GROUPMEMBERID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(C.ID) NF
where ((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 GM.GROUPID = @CONSTITUENTID
-- Bug 26927 - AdamBu - Security is not enforced in the members datalist, so don't enforce it here.
-- and (@ISADMIN = 1 or
-- (@APPUSER_IN_NONRACROLE = 1 or
-- dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, GM.MEMBERID, @APPUSER_IN_NOSECGROUPROLE) = 1)
-- and
-- (@APPUSER_IN_NONSITEROLE = 1 or
-- dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT_BYSITE(@CURRENTAPPUSERID, GM.MEMBERID, @APPUSER_IN_NOSITEROLE) = 1)
-- )
order by GM.ISPRIMARY desc, C.KEYNAME, C.FIRSTNAME
end