USP_DATALIST_PARTICIPATION_HISTORY
Get the Participant History info
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | Event ID |
@ADDRESSBOOKFAFID | uniqueidentifier | IN | Address book ID |
@CLIENTUSERSID | int | IN | Client User ID |
Definition
Copy
CREATE PROCEDURE dbo.USP_DATALIST_PARTICIPATION_HISTORY
( @EVENTID uniqueidentifier,
@ADDRESSBOOKFAFID uniqueidentifier,
@CLIENTUSERSID integer
)WITH EXECUTE AS CALLER
as
BEGIN
SET NOCOUNT ON;
DECLARE @EVENTID_PREV uniqueidentifier, @EVENTID_PREV2 uniqueidentifier, @SEQUENCEID int, @REGISTRANTCONSTITUENTID uniqueidentifier
SET @REGISTRANTCONSTITUENTID = dbo.UFN_CONSTITUENT_GET_BY_CLIENTUSERID(@CLIENTUSERSID)
DECLARE @REGISTRANTTEAMID uniqueidentifier
SET @REGISTRANTTEAMID = (select TFT.ID from CONSTITUENT C
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.TEAMFUNDRAISINGTEAM TFT (NOLOCK) ON TFTM.TEAMFUNDRAISINGTEAMID = TFT.ID AND TFR.APPEALID= TFT.APPEALID
LEFT JOIN dbo.EVENT E (NOLOCK) ON TFR.APPEALID = E.APPEALID
where C.ID = @REGISTRANTCONSTITUENTID
AND E.ID = @EVENTID)
SELECT @EVENTID_PREV= PRIORYEAREVENTID FROM EVENTEXTENSION WHERE EVENTID= @EVENTID;
SELECT @EVENTID_PREV2= PRIORYEAREVENTID FROM EVENTEXTENSION WHERE EVENTID= @EVENTID_PREV;
----------------ALT WAY TO GET ROLES--------------------------
--SELECT @SEQUENCEID= SEQUENCEID FROM CONSTITUENT WHERE ID IN (SELECT CONSTITUENTID FROM ADDRESSBOOKFAF WHERE ID= @ADDRESSBOOKFAFID);
--DECLARE @SYSTEM_ROLES varchar (100), @SYSTEM_ROLES_PREV varchar (100);
--DECLARE @GETSYSTEMROLES TABLE (ID INT NOT NULL, ROLEGUID UNIQUEIDENTIFIER, NAME VARCHAR(100), HASROLE BIT)
------
--INSERT INTO @GETSYSTEMROLES (ID, ROLEGUID, NAME, HASROLE)
--EXEC USP_DATALIST_GETSYSTEMROLES @EVENTID=@EVENTID, @SEQUENCEID=@SEQUENCEID, @CLIENTUSERSID= @CLIENTUSERSID
--------------
--DECLARE @GETSYSTEMROLES_PREV TABLE (ID INT NOT NULL, ROLEGUID UNIQUEIDENTIFIER, NAME VARCHAR(100), HASROLE BIT)
------
--INSERT INTO @GETSYSTEMROLES_PREV (ID, ROLEGUID, NAME, HASROLE)
--EXEC USP_DATALIST_GETSYSTEMROLES @EVENTID=@EVENTID_PREV, @SEQUENCEID=@SEQUENCEID, @CLIENTUSERSID= @CLIENTUSERSID
-------------
--SELECT @SYSTEM_ROLES= ISNULL(@SYSTEM_ROLES, '') + SUBSTRING(NAME,4, LEN(NAME)) + ', ' FROM @GETSYSTEMROLES WHERE HASROLE= 1;
--SELECT @SYSTEM_ROLES_PREV= ISNULL(@SYSTEM_ROLES_PREV, '') + SUBSTRING(NAME,4, LEN(NAME)) + ', ' FROM @GETSYSTEMROLES_PREV WHERE HASROLE= 1;
----------------ALT WAY TO GET ROLES--------------------------
--AJ: can use UFN_FUNDRAISINGGROUP_MEMBERSNUMBER instead of View, if needed
WITH GroupFacts as ( select distinct ID, MEMBERNUMBER, eventid from [V_QUERY_REGISTRANT_FUNDRAISINGGROUP] where EVENTID =@EVENTID )
, PriorGroupFacts as ( select distinct ID, MEMBERNUMBER, eventid from [V_QUERY_REGISTRANT_FUNDRAISINGGROUP] where EVENTID = @EVENTID_PREV )
, PriorGroupFacts2 as ( select distinct ID, MEMBERNUMBER, eventid from [V_QUERY_REGISTRANT_FUNDRAISINGGROUP] where EVENTID = @EVENTID_PREV2 )
SELECT DISTINCT A.FIRSTNAME, A.LASTNAME, E.ID AS EVENTID, E.NAME AS EVENTNAME, E.STARTDATE AS EVENTSTARTDATE
--, CASE WHEN TE.TYPECODE= 1 THEN 'TEAM' WHEN TE.TYPECODE= 2 THEN 'COMPANY' WHEN TE.TYPECODE= 3 THEN 'HOUSEHOLD'
-- ELSE 'INDIVIDUAL' END as GROUPTYPE
--, CASE WHEN TFR.CONSTITUENTID IS NOT NULL THEN 'MEMBER' ELSE 'PARTICIPANT' END AS CATEGORYTYPE
--, (SELECT UPPER(LEFT(@SYSTEM_ROLES, LEN(@SYSTEM_ROLES)-1))) as GROUPTYPE
, (SELECT TOP(1) UPPER(ROLE) from dbo.UFN_REGISTRANT_GETFAFROLE (@EVENTID, null)
WHERE CONSTITUENTID= (SELECT CONSTITUENTID FROM ADDRESSBOOKFAF WHERE ID= @ADDRESSBOOKFAFID)) as GROUPTYPE
, '' as CATEGORYTYPE
, CASE WHEN TFR.CONSTITUENTID IS NOT NULL THEN 'C' END AS EVENTINDICATOR
, NULL AS CATEGORYLEADER
, NULL AS GROUPAMOUNTRAISED
--, CASE WHEN TE.TYPECODE IN (1, 2) THEN RX.FUNDRAISINGGOAL ELSE RX.TARGETFUNDRAISINGGOAL END AS FUNDRAISINGGOAL
, RX.TARGETFUNDRAISINGGOAL AS FUNDRAISINGGOAL
, dbo.UFN_REVENUE_GETPARTICIPANTRAISEDTOTAL(REG.ID, E.ID) AS REGISTRANTAMOUNTRAISED
, H.TEAMNAME, H.COMPANYNAME, H.TEAMGOAL, H.COMPANYGOAL
, CASE WHEN dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TGF.ID, TGF.EVENTID) <> 0 AND dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TGFP.ID,TGF.EVENTID) <> 0
THEN dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TGF.ID, TGF.EVENTID)/dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TGFP.ID,TGF.EVENTID)
ELSE 0 END AS TEAMREVENUERETAINED
, CASE WHEN dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(CGF.ID,CGF.EVENTID) <> 0 AND dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(CGFP.ID, CGFP.EVENTID) <> 0
THEN dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(CGF.ID,CGF.EVENTID)/dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(CGFP.ID, CGFP.EVENTID)
ELSE 0 END as COMPANYREVENUERETAINED
, TGF.MEMBERNUMBER/TGFP.MEMBERNUMBER AS TEAMPARTICIPANTRETAINED
, CGF.MEMBERNUMBER/CGFP.MEMBERNUMBER AS COMPANYPARTICIPANTRETAINED
, CASE WHEN H.TEAMID IS NOT NULL THEN dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(H.TEAMID, E.ID) END AS TEAMRAISED
, CASE WHEN H.COMPANYID IS NOT NULL THEN dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(H.COMPANYID, E.ID) END AS COMPANYRAISED
, CASE WHEN H.HouseholdID IS NOT NULL THEN dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(H.HouseholdID, E.ID) END AS HOUSEHOLDRAISED
, H.HOUSEHOLDGOAL
, H.HouseholdName
, CASE WHEN dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(HGF.ID, HGF.EVENTID) <> 0 AND dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(HGFP.ID,HGFP.EVENTID) <> 0
THEN dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(HGF.ID, HGF.EVENTID)/dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(HGFP.ID,HGFP.EVENTID)
ELSE 0 END AS HOUSEHOLDREVENUERETAINED
,HGF.MEMBERNUMBER/HGFP.MEMBERNUMBER AS HOUSEHOLDPARTICIPANTRETAINED
FROM dbo.ADDRESSBOOKFAF A (NOLOCK)
LEFT JOIN dbo.REGISTRANT REG (NOLOCK) ON A.CONSTITUENTID = REG.CONSTITUENTID
LEFT JOIN [dbo].[REGISTRANTEXTENSION] Rx (NOLOCK) ON REG.ID =Rx.REGISTRANTID
LEFT JOIN dbo.CONSTITUENT C (NOLOCK) ON C.ID =REG.CONSTITUENTID
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.TEAMFUNDRAISINGTEAM TFT (NOLOCK) ON TFTM.TEAMFUNDRAISINGTEAMID = TFT.ID AND TFR.APPEALID= TFT.APPEALID
LEFT JOIN dbo.TEAMEXTENSION TE (NOLOCK) ON TFTM.TEAMFUNDRAISINGTEAMID = TE.TEAMFUNDRAISINGTEAMID
LEFT JOIN [dbo].[TEAMFUNDRAISINGTEAMCAPTAIN] TFTC (NOLOCK) ON TFT.ID= TFTC.TEAMFUNDRAISINGTEAMID
LEFT JOIN [dbo].[EVENT] E (NOLOCK) ON TFR.APPEALID = E.APPEALID
--LEFT JOIN dbo.EVENTEXTENSION EE (NOLOCK) ON EE.EVENTID = E.ID
OUTER APPLY UFN_FAF_GETTEAMCOMPANYHOUSEHOLDINFO_BY_REGISTRANT(@EVENTID, REG.CONSTITUENTID) H
OUTER APPLY UFN_FAF_GETTEAMCOMPANYHOUSEHOLDINFO_BY_REGISTRANT(@EVENTID_PREV, REG.CONSTITUENTID) HP
LEFT JOIN GroupFacts TGF ON TGF.EVENTID = @EVENTID AND TGF.ID = H.TEAMID
LEFT JOIN PriorGroupFacts TGFP ON TGFP.EVENTID = @EVENTID_PREV AND TGFP.ID = HP.TEAMID
LEFT JOIN GroupFacts CGF ON CGF.EVENTID = @EVENTID AND CGF.ID = H.COMPANYID
LEFT JOIN PriorGroupFacts CGFP ON CGFP.EVENTID = @EVENTID_PREV AND CGFP.ID = HP.COMPANYID
LEFT JOIN GroupFacts HGF ON CGF.EVENTID = @EVENTID AND HGF.ID = H.HouseholdID
LEFT JOIN PriorGroupFacts HGFP ON CGFP.EVENTID = @EVENTID_PREV AND HGFP.ID = HP.HouseholdID
WHERE A.ID= @ADDRESSBOOKFAFID AND A.CLIENTUSERSID in (select CLIENTUSERID from dbo.UFN_CLIENTUSERS_GETIDLISTBYCONSTITUENTID(@REGISTRANTCONSTITUENTID))
AND E.ID= @EVENTID
AND REG.EVENTID= @EVENTID
--AND (TFT.ID = @REGISTRANTTEAMID or TFT.PARENTTEAMID = @REGISTRANTTEAMID)
UNION
SELECT DISTINCT A.FIRSTNAME, A.LASTNAME, E.ID AS EVENTID, E.NAME AS EVENTNAME, E.STARTDATE AS EVENTSTARTDATE
--, CASE WHEN TE.TYPECODE= 1 THEN 'TEAM' WHEN TE.TYPECODE= 2 THEN 'COMPANY'
-- WHEN TE.TYPECODE= 3 THEN 'HOUSEHOLD' ELSE 'INDIVIDUAL' END as GROUPTYPE
--, CASE WHEN TFR.CONSTITUENTID IS NOT NULL THEN 'MEMBER' ELSE 'PARTICIPANT' END AS CATEGORYTYPE
--, (SELECT UPPER(LEFT(@SYSTEM_ROLES_PREV, LEN(@SYSTEM_ROLES_PREV)-1))) AS GROUPTYPE
, (SELECT UPPER(ROLE) from dbo.UFN_REGISTRANT_GETFAFROLE (@EVENTID_PREV, null)
WHERE CONSTITUENTID= (SELECT CONSTITUENTID FROM ADDRESSBOOKFAF WHERE ID= @ADDRESSBOOKFAFID)) as GROUPTYPE
, '' AS CATEGORYTYPE
, CASE WHEN TFR.CONSTITUENTID IS NOT NULL THEN 'P' END AS EVENTINDICATOR
, NULL AS CATEGORYLEADER
, NULL AS GROUPAMOUNTRAISED
--, CASE WHEN TE.TYPECODE IN (1, 2) THEN RX.FUNDRAISINGGOAL ELSE RX.TARGETFUNDRAISINGGOAL END AS FUNDRAISINGGOAL
, RX.TARGETFUNDRAISINGGOAL AS FUNDRAISINGGOAL
, dbo.UFN_REVENUE_GETPARTICIPANTRAISEDTOTAL(REG.ID, E.ID) AS REGISTRANTAMOUNTRAISED
, H.TEAMNAME, H.COMPANYNAME, H.TEAMGOAL, H.COMPANYGOAL
, CASE WHEN dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TGF.ID, TGF.EVENTID) <> 0 AND dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TGFP.ID,TGF.EVENTID) <> 0
THEN dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TGF.ID, TGF.EVENTID)/dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TGFP.ID,TGF.EVENTID)
ELSE 0 END AS TEAMREVENUERETAINED
, CASE WHEN dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(CGF.ID,CGF.EVENTID) <> 0 AND dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(CGFP.ID, CGFP.EVENTID) <> 0
THEN dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(CGF.ID,CGF.EVENTID)/dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(CGFP.ID, CGFP.EVENTID)
ELSE 0 END as COMPANYREVENUERETAINED
, TGF.MEMBERNUMBER/TGFP.MEMBERNUMBER AS TEAMPARTICIPANTRETAINED
, CGF.MEMBERNUMBER/CGFP.MEMBERNUMBER AS COMPANYPARTICIPANTRETAINED
, CASE WHEN H.TEAMID IS NOT NULL THEN dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(H.TEAMID, E.ID) END AS TEAMRAISED
, CASE WHEN H.COMPANYID IS NOT NULL THEN dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(H.COMPANYID, E.ID) END AS COMPANYRAISED
, CASE WHEN H.HouseholdID IS NOT NULL THEN dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(H.HouseholdID, E.ID) END AS HOUSEHOLDRAISED
, H.HOUSEHOLDGOAL
, H.HouseholdName
, CASE WHEN dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(HGF.ID, HGF.EVENTID) <> 0 AND dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(HGFP.ID,HGFP.EVENTID) <> 0
THEN dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(HGF.ID, HGF.EVENTID)/dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(HGFP.ID,HGFP.EVENTID)
ELSE 0 END AS HOUSEHOLDREVENUERETAINED
,HGF.MEMBERNUMBER/HGFP.MEMBERNUMBER AS HOUSEHOLDPARTICIPANTRETAINED
FROM dbo.ADDRESSBOOKFAF A (NOLOCK)
LEFT JOIN dbo.REGISTRANT REG (NOLOCK) ON A.CONSTITUENTID = REG.CONSTITUENTID
LEFT JOIN [dbo].[REGISTRANTEXTENSION] Rx (NOLOCK) ON REG.ID =Rx.REGISTRANTID
LEFT JOIN dbo.CONSTITUENT C (NOLOCK) ON C.ID =REG.CONSTITUENTID
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.TEAMFUNDRAISINGTEAM TFT (NOLOCK) ON TFTM.TEAMFUNDRAISINGTEAMID = TFT.ID AND TFR.APPEALID= TFT.APPEALID
LEFT JOIN dbo.TEAMEXTENSION TE (NOLOCK) ON TFTM.TEAMFUNDRAISINGTEAMID = TE.TEAMFUNDRAISINGTEAMID
LEFT JOIN [dbo].[TEAMFUNDRAISINGTEAMCAPTAIN] TFTC (NOLOCK) ON TFT.ID= TFTC.TEAMFUNDRAISINGTEAMID
LEFT JOIN [dbo].[EVENT] E (NOLOCK) ON TFR.APPEALID = E.APPEALID
--LEFT JOIN dbo.EVENTEXTENSION EE (NOLOCK) ON EE.PRIORYEAREVENTID = E.ID
OUTER APPLY UFN_FAF_GETTEAMCOMPANYHOUSEHOLDINFO_BY_REGISTRANT(@EVENTID_PREV, REG.CONSTITUENTID) H
OUTER APPLY UFN_FAF_GETTEAMCOMPANYHOUSEHOLDINFO_BY_REGISTRANT(@EVENTID_PREV2, REG.CONSTITUENTID) HP
LEFT JOIN PriorGroupFacts TGF ON TGF.EVENTID = @EVENTID_PREV AND TGF.ID = H.TEAMID
LEFT JOIN PriorGroupFacts2 TGFP ON TGFP.EVENTID = @EVENTID_PREV2 AND TGFP.ID = HP.TEAMID
LEFT JOIN PriorGroupFacts CGF ON CGF.EVENTID = @EVENTID_PREV AND CGF.ID = H.COMPANYID
LEFT JOIN PriorGroupFacts2 CGFP ON CGFP.EVENTID = @EVENTID_PREV2 AND CGFP.ID = HP.COMPANYID
LEFT JOIN PriorGroupFacts HGF ON CGF.EVENTID = @EVENTID_PREV AND HGF.ID = H.HouseholdID
LEFT JOIN PriorGroupFacts2 HGFP ON CGFP.EVENTID = @EVENTID_PREV2 AND HGFP.ID = HP.HouseholdID
WHERE A.ID= @ADDRESSBOOKFAFID AND A.CLIENTUSERSID in (select CLIENTUSERID from dbo.UFN_CLIENTUSERS_GETIDLISTBYCONSTITUENTID(@REGISTRANTCONSTITUENTID))
AND E.ID= @EVENTID_PREV
AND REG.EVENTID =@EVENTID_PREV
ORDER BY E.STARTDATE DESC
END