UFN_FAFADDRESSBOOK_ALLGROUPMEMBERS_LIST
Get the List of all group members contacts from FAF address book
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@CLIENTUSERSID | int | IN |
Definition
Copy
CREATE FUNCTION [dbo].[UFN_FAFADDRESSBOOK_ALLGROUPMEMBERS_LIST]
(
@EVENTID AS uniqueidentifier,
@CLIENTUSERSID AS INT
)
RETURNS TABLE
AS
RETURN
WITH
-- Client user linked constituent id
[CLIENTUSERCONSITUENTID]
AS(
SELECT C.ID AS CONSTITUENTID, C.DATEADDED
FROM dbo.ClientUsers cu (NOLOCK)
INNER JOIN dbo.BackOfficeSystemUsers bosu (NOLOCK)
ON cu.ID = bosu.ClientUsersID AND bosu.[current] = 1 AND cu.Deleted = 0
INNER JOIN dbo.BackOfficeSystemPeople bosp (NOLOCK)
ON bosp.ID = bosu.BackofficePeopleID AND bosp.BackOfficeSystemID = 0
INNER JOIN dbo.CONSTITUENT C (NOLOCK)
ON bosp.BackofficeRecordID = C.SEQUENCEID
WHERE cu.ID = @CLIENTUSERSID
)
,[CURRENTEVENTAGMEMBERS]
AS
(
SELECT
TF.CONSTITUENTID, TM.TEAMFUNDRAISINGTEAMID AS TEAMID, TM.DATEADDED, TFTC.CONSTITUENTID AS TEAMCAPTAINCONSTITUENTID, TE.TYPECODE,
E.ID, E.NAME, E.STARTDATE, T.NAME TNAME, T.GOAL TGOAL
FROM [dbo].[TEAMFUNDRAISINGTEAMMEMBER] TM (NOLOCK)
JOIN [dbo].[TEAMFUNDRAISER] TF (NOLOCK) ON TM.TEAMFUNDRAISERID = TF.ID
JOIN [dbo].[TEAMFUNDRAISINGTEAM] T (NOLOCK) ON TM.TEAMFUNDRAISINGTEAMID = T.ID AND TF.APPEALID = T.APPEALID
JOIN [dbo].[TEAMEXTENSION] TE (NOLOCK) ON T.ID= TE.TEAMFUNDRAISINGTEAMID
JOIN [dbo].[EVENT] E (NOLOCK) ON TF.APPEALID = E.APPEALID
LEFT JOIN [dbo].[TEAMFUNDRAISINGTEAMCAPTAIN] TFTC (NOLOCK) ON TFTC.TEAMFUNDRAISINGTEAMID=T.ID
WHERE E.ID = @EVENTID
)
,[PREVIOUSEVENTAGMEMBERS]
AS
(
SELECT
TF.CONSTITUENTID, TM.TEAMFUNDRAISINGTEAMID AS TEAMID, TM.DATEADDED, TFTC.CONSTITUENTID AS TEAMCAPTAINCONSTITUENTID, TE.TYPECODE,
E.ID, E.NAME, E.STARTDATE, T.NAME TNAME, T.GOAL TGOAL
FROM [dbo].[TEAMFUNDRAISINGTEAMMEMBER] TM (NOLOCK)
JOIN [dbo].[TEAMFUNDRAISER] TF (NOLOCK) ON TM.TEAMFUNDRAISERID = TF.ID
JOIN [dbo].[TEAMFUNDRAISINGTEAM] T (NOLOCK) ON TM.TEAMFUNDRAISINGTEAMID = T.ID AND TF.APPEALID= T.APPEALID
JOIN [dbo].[TEAMEXTENSION] TE (NOLOCK) ON T.ID= TE.TEAMFUNDRAISINGTEAMID
JOIN [dbo].[EVENT] E (NOLOCK) ON TF.APPEALID = E.APPEALID
JOIN [dbo].[EVENTEXTENSION] EE (NOLOCK) ON EE.PRIORYEAREVENTID = E.ID
LEFT JOIN [dbo].[TEAMFUNDRAISINGTEAMCAPTAIN] TFTC (NOLOCK) ON TFTC.TEAMFUNDRAISINGTEAMID=T.ID
WHERE EE.EVENTID = @EVENTID
)
-- Client user team id
,[CLIENTUSERTEAM]
AS
(
SELECT TEAMID
FROM [CURRENTEVENTAGMEMBERS] T
JOIN [CLIENTUSERCONSITUENTID] C
ON T.CONSTITUENTID = C.CONSTITUENTID
)
-- FAF Address book contact related list
,[FAFADDRESSBOOKCONTACTS]
AS
(
SELECT A.ID AS CONTACTID, A.FIRSTNAME, A.LASTNAME, A.CONSTITUENTID
, CASE WHEN CE.CONSTITUENTID IS NOT NULL THEN 'C' END AS [GROUPSTATUS]
, CASE WHEN CE.CONSTITUENTID IS NOT NULL THEN CE.DATEADDED END AS [DATEADDED]
, CASE WHEN CE.CONSTITUENTID=CE.TEAMCAPTAINCONSTITUENTID THEN 'Y' END AS [ISGROUPCAPTAIN]
, CASE WHEN CE.TEAMCAPTAINCONSTITUENTID IS NOT NULL THEN 'C' END AS [GROUPCAPTAINSTATUS]
, CASE WHEN CE.TYPECODE IS NOT NULL THEN CE.TYPECODE END AS [TYPECODE]
, CASE WHEN CE.ID IS NOT NULL THEN CE.ID END AS [EVENTID]
, CASE WHEN CE.NAME IS NOT NULL THEN CE.NAME END AS [EVENTNAME]
, CASE WHEN CE.STARTDATE IS NOT NULL THEN CE.STARTDATE END AS [EVENTSTARTDATE]
, CASE WHEN CE.TEAMID IS NOT NULL THEN CE.TEAMID END AS [TEAMID]
, CASE WHEN CE.TNAME IS NOT NULL THEN CE.TNAME END AS [TEAMNAME]
, CASE WHEN CE.TGOAL IS NOT NULL THEN CE.TGOAL END AS [TEAMGOAL]
, CE.TEAMCAPTAINCONSTITUENTID
FROM [dbo].[ADDRESSBOOKFAF] A (NOLOCK)
LEFT JOIN [CURRENTEVENTAGMEMBERS] CE ON A.CONSTITUENTID = CE.CONSTITUENTID
JOIN [CLIENTUSERTEAM] CT ON CT.TEAMID = CE.TEAMID
WHERE A.CLIENTUSERSID=@CLIENTUSERSID
UNION
SELECT A.ID AS CONTACTID, A.FIRSTNAME, A.LASTNAME, A.CONSTITUENTID
, CASE WHEN PE.CONSTITUENTID IS NOT NULL THEN 'P' END AS [GROUPSTATUS]
, CASE WHEN PE.CONSTITUENTID IS NOT NULL THEN PE.DATEADDED END AS [DATEADDED]
, CASE WHEN PE.CONSTITUENTID=PE.TEAMCAPTAINCONSTITUENTID THEN 'Y' END AS [ISGROUPCAPTAIN]
, CASE WHEN PE.TEAMCAPTAINCONSTITUENTID IS NOT NULL THEN 'P' END AS [GROUPCAPTAINSTATUS]
, CASE WHEN PE.TYPECODE IS NOT NULL THEN PE.TYPECODE END AS [TYPECODE]
, CASE WHEN PE.ID IS NOT NULL THEN PE.ID END AS [EVENTID]
, CASE WHEN PE.NAME IS NOT NULL THEN PE.NAME END AS [EVENTNAME]
, CASE WHEN PE.STARTDATE IS NOT NULL THEN PE.STARTDATE END AS [EVENTSTARTDATE]
, CASE WHEN PE.TEAMID IS NOT NULL THEN PE.TEAMID END AS [TEAMID]
, CASE WHEN PE.TNAME IS NOT NULL THEN PE.TNAME END AS [TEAMNAME]
, CASE WHEN PE.TGOAL IS NOT NULL THEN PE.TGOAL END AS [TEAMGOAL]
, PE.TEAMCAPTAINCONSTITUENTID
FROM [dbo].[ADDRESSBOOKFAF] A (NOLOCK)
LEFT JOIN [PREVIOUSEVENTAGMEMBERS] PE ON A.CONSTITUENTID = PE.CONSTITUENTID
JOIN [CLIENTUSERTEAM] CT ON CT.TEAMID = PE.TEAMID
WHERE A.CLIENTUSERSID=@CLIENTUSERSID
)
SELECT * FROM [FAFADDRESSBOOKCONTACTS];