UFN_ADDRESSBOOKFAF_GETEXPECTEDGROUPMEMBER
Get all members and leaders that are not in registrant address book.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GROUPID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@CLIENTUSERSID | int | IN | |
@ROLECODE | tinyint | IN |
Definition
Copy
CREATE function dbo.UFN_ADDRESSBOOKFAF_GETEXPECTEDGROUPMEMBER
(
@GROUPID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@CLIENTUSERSID int,
@ROLECODE tinyint -- 0: company leader, 1: team leader, 2: team member, 3: head of household, 4: household member
)
returns table
as return
With CurrentGroupMembers
as
(
select
dbo.fnGetUserIDFromLinkedRecordID(C.SEQUENCEID, 0) as USERID,
C.ID
from dbo.TEAMEXTENSION TX
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM on TFTM.TEAMFUNDRAISINGTEAMID = TX.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISER TF on TF.ID = TFTM.TEAMFUNDRAISERID
join dbo.CONSTITUENT C on TF.CONSTITUENTID = C.ID
where (TX.TEAMFUNDRAISINGTEAMID = @GROUPID
--and C.ID not in (select CONSTITUENTID from dbo.ADDRESSBOOKFAF where CLIENTUSERSID in (select CLIENTUSERID from dbo.UFN_CLIENTUSERS_GETIDLISTBYCURRENTCLIENTUSERID(@CLIENTUSERSID)) and CONSTITUENTID is not null)
and C.ID <> @CONSTITUENTID)
and @ROLECODE between 0 and 4
)
, CurrentGroupChildGroupLeaders
as
(
select USERID ,ID from CurrentGroupMembers
union
/* child group leaders */
select
dbo.fnGetUserIDFromLinkedRecordID(C.SEQUENCEID, 0) as USERID,
C.ID
from dbo.TEAMFUNDRAISINGTEAM TFT
join dbo.TEAMEXTENSION TX on TFT.ID = TX.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISINGTEAMCAPTAIN TFTC on TFTC.TEAMFUNDRAISINGTEAMID = TX.TEAMFUNDRAISINGTEAMID
join dbo.CONSTITUENT C on TFTC.CONSTITUENTID = C.ID
where (TFT.PARENTTEAMID = @GROUPID
--and C.ID not in (select CONSTITUENTID from dbo.ADDRESSBOOKFAF where CLIENTUSERSID in (select CLIENTUSERID from dbo.UFN_CLIENTUSERS_GETIDLISTBYCURRENTCLIENTUSERID(@CLIENTUSERSID)) and CONSTITUENTID is not null)
and C.ID <> @CONSTITUENTID )
and (@ROLECODE = 0 or (@ROLECODE in(1,2) and TX.TYPECODE = 3) )
)
, HouseholdParentGroupMembers
as
(
select USERID ,ID from [CurrentGroupMembers]
union
/* household's parent group members */
select
dbo.fnGetUserIDFromLinkedRecordID(C.SEQUENCEID, 0) as USERID,
C.ID
from dbo.TEAMEXTENSION TX
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM on TFTM.TEAMFUNDRAISINGTEAMID = TX.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISER TF on TF.ID = TFTM.TEAMFUNDRAISERID
join dbo.CONSTITUENT C on TF.CONSTITUENTID = C.ID
where (TX.TEAMFUNDRAISINGTEAMID in (select PARENTTEAMID from dbo.TEAMFUNDRAISINGTEAM where ID = @GROUPID) and TX.TYPECODE <> 2
--and C.ID not in (select CONSTITUENTID from dbo.ADDRESSBOOKFAF where CLIENTUSERSID in (select CLIENTUSERID from dbo.UFN_CLIENTUSERS_GETIDLISTBYCURRENTCLIENTUSERID(@CLIENTUSERSID)) and CONSTITUENTID is not null)
and C.ID <> @CONSTITUENTID)
and @ROLECODE = 3
)
select USERID, ID from CurrentGroupChildGroupLeaders CGCGL where @rolecode in (0,1,2)
union all
select USERID, ID from HouseholdParentGroupMembers HPGM where @rolecode in (3,4)