UFN_FAFADDRESSBOOK_PARTICIPANTS_LIST
Get the List of participants contacts from FAF address book
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@CLIENTUSERID | int | IN |
Definition
Copy
CREATE FUNCTION [dbo].[UFN_FAFADDRESSBOOK_PARTICIPANTS_LIST]
(
@EVENTID AS uniqueidentifier
,@CLIENTUSERID AS INT
)
RETURNS TABLE
AS
RETURN
WITH
[CURRENTEVENTPARTICIPANTS]
AS
(
SELECT Reg.CONSTITUENTID, Reg.DATEADDED
FROM dbo.EVENT E (NOLOCK)
JOIN dbo.REGISTRANT Reg (NOLOCK) ON E.ID = Reg.EVENTID AND Reg.EVENTID = @EVENTID
JOIN dbo.CONSTITUENT C (NOLOCK) ON Reg.CONSTITUENTID = C.ID AND ISORGANIZATION=0
LEFT JOIN dbo.TEAMFUNDRAISER TFR (NOLOCK) ON C.ID = TFR.CONSTITUENTID
LEFT JOIN dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM (NOLOCK) ON TFR.ID = TFTM.TEAMFUNDRAISERID
LEFT JOIN dbo.TEAMEXTENSION TE (NOLOCK) ON TFTM.TEAMFUNDRAISINGTEAMID = TE.TEAMFUNDRAISINGTEAMID AND TE.EVENTID = E.ID
WHERE E.ID = @EVENTID
AND TFTM.TEAMFUNDRAISINGTEAMID IS NULL OR TYPECODE= 2
)
,[PREVIOUSEVENTPARTICIPANTS]
AS
(
SELECT Reg.CONSTITUENTID, Reg.DATEADDED
FROM dbo.EVENT E (NOLOCK)
JOIN dbo.EVENTEXTENSION EE (NOLOCK) ON E.ID = EE.PRIORYEAREVENTID
JOIN dbo.REGISTRANT Reg (NOLOCK) ON E.ID = Reg.EVENTID AND Reg.EVENTID = EE.PRIORYEAREVENTID
JOIN dbo.CONSTITUENT C (NOLOCK) ON Reg.CONSTITUENTID = C.ID AND ISORGANIZATION=0
LEFT JOIN dbo.TEAMFUNDRAISER TFR (NOLOCK) ON C.ID = TFR.CONSTITUENTID
LEFT JOIN dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM (NOLOCK) ON TFR.ID = TFTM.TEAMFUNDRAISERID
LEFT JOIN dbo.TEAMEXTENSION TE (NOLOCK) ON TFTM.TEAMFUNDRAISINGTEAMID = TE.TEAMFUNDRAISINGTEAMID AND TE.EVENTID = EE.EVENTID
WHERE EE.EVENTID = @EVENTID
AND TFTM.TEAMFUNDRAISINGTEAMID IS NULL OR TYPECODE= 2
)
,[FAFAddressBook]
AS
(
SELECT
[ID] AS [CONTACTID]
, [CLIENTUSERSID]
, [FIRSTNAME]
, [LASTNAME]
, [CONSTITUENTID]
FROM [dbo].[ADDRESSBOOKFAF] (nolock)
WHERE [CLIENTUSERSID] in (select CLIENTUSERID from dbo.UFN_CLIENTUSERS_GETIDLISTBYCURRENTCLIENTUSERID(@CLIENTUSERID))
)
,participants
AS
(
SELECT DISTINCT
A.CONTACTID
, A.FIRSTNAME
, A.LASTNAME
,A.CONSTITUENTID
, CASE
WHEN CD.CONSTITUENTID IS NOT NULL THEN 'A'
WHEN PD.CONSTITUENTID IS NOT NULL THEN 'P'
END AS STATUS
, CASE
WHEN CD.CONSTITUENTID IS NOT NULL THEN CD.DATEADDED
WHEN PD.CONSTITUENTID IS NOT NULL THEN PD.DATEADDED
END AS [DATEADDED]
FROM [FAFAddressBook] A
LEFT JOIN CURRENTEVENTPARTICIPANTS CD ON A.CONSTITUENTID = CD.CONSTITUENTID
LEFT JOIN PREVIOUSEVENTPARTICIPANTS PD ON A.CONSTITUENTID = PD.CONSTITUENTID
WHERE A.CLIENTUSERSID in (select CLIENTUSERID from dbo.UFN_CLIENTUSERS_GETIDLISTBYCURRENTCLIENTUSERID(@CLIENTUSERID))
)
SELECT * FROM participants WHERE [STATUS] IS NOT NULL;