USP_DATALIST_PARTICIPANTGOALS
Get current, min, and target fundraising goal for a participant (all roles)
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | eventid |
@CLIENTUSERSID | int | IN | CLIENTUSERSID |
@REGTYPEGOALCODE | tinyint | IN | REGTYPEGOALCODE |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_PARTICIPANTGOALS
(
@EVENTID uniqueidentifier = NULL,
@CLIENTUSERSID integer = NULL,
@REGTYPEGOALCODE TinyInt = 0 --0:Individual/participant Goal, 1:Team Goal, 2:Company Goal, 3:Household Goal
)
as
set nocount on;
DECLARE @CONSTITUENTID uniqueidentifier = NULL
DECLARE @EVENTPRICEID uniqueidentifier = NULL
DECLARE @MINFUNDRAISING money = 0
DECLARE @TARGETFUNDRAISING money = 0
DECLARE @CURRENTGOAL money = 0 --Current Goal is for all roles such as current goal of individual participant, team goal, household goal, company goal
DECLARE @NUMOFCOMM Integer = 0
DECLARE @NUMOFVOL Integer = 0
DECLARE @NUMOFPARTS Integer = 0
DECLARE @PEROFDONORS decimal(6,2) = 0.0
DECLARE @PEROFTEAMMEMBERS decimal(6,2) = 0.0
DECLARE @OTHERGOAL money = 0
DECLARE @NUMOFTEAMS Integer = 0
DECLARE @PEROFTEAMS decimal(6,2) = 0.0
DECLARE @NUMOFTEAMEMBERS Integer = 0
SET @CONSTITUENTID=dbo.UFN_CONSTITUENT_GET_BY_CLIENTUSERID(@CLIENTUSERSID)
--Pull default and restriction
--Event default goals---
DECLARE @EVENTMINFUNDRAISING money = 0
DECLARE @EVENTTARGETFUNDRAISING money = 0
DECLARE @EVENTCURRENTGOAL money = 0 --Current Goal is for all roles such as current goal of individual participant, team goal, household goal, company goal
DECLARE @EVENTNUMOFCOMM Integer = 0
DECLARE @EVENTNUMOFVOL Integer = 0
DECLARE @EVENTNUMOFPARTS Integer = 0
DECLARE @EVENTPEROFDONORS decimal(6,2) = 0.0
DECLARE @EVENTPEROFTEAMMEMBERS decimal(6,2) = 0.0
DECLARE @EVENTOTHERGOAL Integer = 0
DECLARE @EVENTNUMOFTEAMS Integer = 0
DECLARE @EVENTPEROFTEAMS decimal(6,2) = 0.0
DECLARE @EVENTNUMOFTEAMEMBERS Integer = 0
DECLARE @ISNOTLOWERFUNDRAISING bit = 0
DECLARE @ISNOTLOWERRECRUITEMENT bit = 0
DECLARE @ISNOTLOWERVOLUNTEERRECRUITEMENT bit = 0
DECLARE @ISNOTLOWERDONORRETENTION bit = 0
DECLARE @ISNOTLOWERCOMMUNICATION bit =0
DECLARE @ISNOTLOWERTEAMMEMBERS bit = 0
DECLARE @ISNOTLOWERTEAMMEMBERRETENTION bit = 0
DECLARE @ISNOTLOWERTEAMS bit = 0
DECLARE @ISNOTLOWERTEAMRETENTION bit = 0
DECLARE @ISNOTLOWERTARGETFUNDRAISING bit = 0
--Pull default and restriction
SELECT @EVENTMINFUNDRAISING=FG.MINFUNDRAISING,@EVENTTARGETFUNDRAISING=FG.TARGETFUNDRAISING,
@EVENTNUMOFPARTS=FG.RECRUITEMENT,@EVENTNUMOFTEAMEMBERS=FG.TEAMMEMBERS, @EVENTNUMOFVOL=FG.VOLUNTEERRECRUITEMENT,
@EVENTPEROFTEAMMEMBERS=FG.TEAMMEMBERRETENTION, @EVENTNUMOFCOMM=FG.COMMUNICATIONS,@EVENTOTHERGOAL=0,@EVENTNUMOFTEAMS=FG.TEAMS,
@EVENTPEROFTEAMS=TEAMRETENTION, @EVENTPEROFDONORS=FG.DONORRETENTION,
@ISNOTLOWERFUNDRAISING = FG.ISNOTLOWERFUNDRAISING,
@ISNOTLOWERRECRUITEMENT = FG.ISNOTLOWERRECRUITEMENT,
@ISNOTLOWERVOLUNTEERRECRUITEMENT = FG.ISNOTLOWERVOLUNTEERRECRUITEMENT,
@ISNOTLOWERDONORRETENTION = FG.ISNOTLOWERDONORRETENTION,
@ISNOTLOWERCOMMUNICATION = FG.ISNOTLOWERCOMMUNICATION,
@ISNOTLOWERTEAMMEMBERS = FG.ISNOTLOWERTEAMMEMBERS,
@ISNOTLOWERTEAMMEMBERRETENTION = FG.ISNOTLOWERTEAMMEMBERRETENTION,
@ISNOTLOWERTEAMS = FG.ISNOTLOWERTEAMS,
@ISNOTLOWERTEAMRETENTION = FG.ISNOTLOWERTEAMRETENTION,
@ISNOTLOWERTARGETFUNDRAISING = FG.ISNOTLOWERTARGETFUNDRAISING,
@EVENTPRICEID = FG.EVENTPRICEID
FROM FAFREGISTRATIONTYPEGOAL FG, REGISTRANTREGISTRATION RR
WHERE RR.REGISTRANTID = (SELECT REG.ID FROM REGISTRANT REG WHERE REG.CONSTITUENTID=@CONSTITUENTID AND REG.EVENTID=@EVENTID)
AND RR.EVENTPRICEID = FG.EVENTPRICEID
AND FG.REGTYPEGOALCODE = @REGTYPEGOALCODE
If @REGTYPEGOALCODE = 0 --Personal goals
Begin
SELECT @CURRENTGOAL=RE.FUNDRAISINGGOAL,@MINFUNDRAISING=RE.FUNDRAISINGGOAL,@TARGETFUNDRAISING=RE.TARGETFUNDRAISINGGOAL,
@NUMOFCOMM=RE.COMMUNICATIONGOAL, @NUMOFVOL=RE.VOLUNTEERRECRUITMENTGOAL,
@NUMOFPARTS=RE.MEMBERECRUITMENTGOAL,@OTHERGOAL=RE.OTHERUNITGOAL, @PEROFDONORS=RE.DONORRETENTIONGOAL
FROM REGISTRANTEXTENSION RE, REGISTRANT REG
WHERE RE.REGISTRANTID=REG.ID
AND REG.CONSTITUENTID=@CONSTITUENTID
AND REG.EVENTID=@EVENTID
End
Else If @REGTYPEGOALCODE = 3 --Household goals
Begin
--Two cases here, user could be a household leader or a household member
If NOT EXISTS(SELECT ID FROM TEAMFUNDRAISINGTEAMCAPTAIN TFTC0 WHERE TFTC0.CONSTITUENTID=@CONSTITUENTID)
Begin
SELECT @NUMOFPARTS=TE.PARTICIPANTGOAL,@NUMOFTEAMEMBERS=TE.TEAMMEMBERGOAL,
@NUMOFVOL=TE.VOLUNTEERGOAL, @NUMOFCOMM=TE.COMMUNICATIONGOAL, @OTHERGOAL=TE.OTHERGOAL,
@PEROFTEAMMEMBERS=TE.PCTTEAMMEMBERRETENSION, @NUMOFTEAMS=TE.TEAMRECRUITMENTGOAL,@PEROFTEAMS=TE.PCTTEAMSRETENSION,
@TARGETFUNDRAISING=TE.TARGETFUNDRAISINGGOAL,@PEROFDONORS=TE.DONORRETENTIONGOAL,@CURRENTGOAL=TFT.GOAL
FROM TEAMFUNDRAISER TFR INNER JOIN TEAMFUNDRAISINGTEAMMEMBER TFTM ON TFR.ID = TFTM.TEAMFUNDRAISERID
INNER JOIN TEAMFUNDRAISINGTEAM TFT ON TFTM.TEAMFUNDRAISINGTEAMID = TFT.ID
INNER JOIN TEAMEXTENSION TE ON TE.TEAMFUNDRAISINGTEAMID=TFT.ID
WHERE TFR.CONSTITUENTID=@CONSTITUENTID
AND TE.EVENTID=@EVENTID
ORDER BY TFT.DATECHANGED DESC
End
Else
Begin
SELECT @NUMOFPARTS=PARTICIPANTGOAL,@NUMOFTEAMEMBERS=TEAMMEMBERGOAL,
@NUMOFVOL=VOLUNTEERGOAL, @NUMOFCOMM=COMMUNICATIONGOAL, @OTHERGOAL=OTHERGOAL,
@PEROFTEAMMEMBERS=PCTTEAMMEMBERRETENSION, @NUMOFTEAMS=TEAMRECRUITMENTGOAL,@PEROFTEAMS=PCTTEAMSRETENSION,
@TARGETFUNDRAISING=TARGETFUNDRAISINGGOAL,@PEROFDONORS=DONORRETENTIONGOAL,@CURRENTGOAL=TFT.GOAL
FROM TEAMEXTENSION TE INNER JOIN TEAMFUNDRAISINGTEAM TFT ON TE.TEAMFUNDRAISINGTEAMID=TFT.ID
LEFT JOIN TEAMFUNDRAISINGTEAMCAPTAIN TFTC ON TFT.ID=TFTC.TEAMFUNDRAISINGTEAMID
WHERE TFTC.CONSTITUENTID=@CONSTITUENTID
AND TE.EVENTID=@EVENTID
End
End
Else --Team or Company goals
Begin
SELECT @NUMOFPARTS=PARTICIPANTGOAL,@NUMOFTEAMEMBERS=TEAMMEMBERGOAL,
@NUMOFVOL=VOLUNTEERGOAL, @NUMOFCOMM=COMMUNICATIONGOAL, @OTHERGOAL=OTHERGOAL,
@PEROFTEAMMEMBERS=PCTTEAMMEMBERRETENSION, @NUMOFTEAMS=TEAMRECRUITMENTGOAL,@PEROFTEAMS=PCTTEAMSRETENSION,
@TARGETFUNDRAISING=TARGETFUNDRAISINGGOAL,@PEROFDONORS=DONORRETENTIONGOAL,@CURRENTGOAL=TFT.GOAL
FROM TEAMEXTENSION TE INNER JOIN TEAMFUNDRAISINGTEAM TFT ON TE.TEAMFUNDRAISINGTEAMID=TFT.ID
LEFT JOIN TEAMFUNDRAISINGTEAMCAPTAIN TFTC ON TFT.ID=TFTC.TEAMFUNDRAISINGTEAMID
WHERE TFTC.CONSTITUENTID=@CONSTITUENTID
AND TE.EVENTID=@EVENTID
End
--Now check with event goal rules to output correct goals value
If (@ISNOTLOWERFUNDRAISING = 1 AND @CURRENTGOAL < @EVENTMINFUNDRAISING)
SET @CURRENTGOAL=@EVENTMINFUNDRAISING
If (@ISNOTLOWERRECRUITEMENT = 1 AND @NUMOFPARTS < @EVENTNUMOFPARTS)
SET @NUMOFPARTS=@EVENTNUMOFPARTS
If (@ISNOTLOWERVOLUNTEERRECRUITEMENT = 1 AND @NUMOFVOL < @EVENTNUMOFVOL)
SET @NUMOFVOL=@EVENTNUMOFVOL
If (@ISNOTLOWERDONORRETENTION = 1 AND @PEROFDONORS < @EVENTPEROFDONORS)
SET @PEROFDONORS=@EVENTPEROFDONORS
If (@ISNOTLOWERCOMMUNICATION = 1 AND @NUMOFCOMM < @EVENTNUMOFCOMM)
SET @NUMOFCOMM = @EVENTNUMOFCOMM
If (@ISNOTLOWERTEAMMEMBERS = 1 AND @NUMOFTEAMEMBERS < @EVENTNUMOFTEAMEMBERS)
SET @NUMOFTEAMEMBERS = @EVENTNUMOFTEAMEMBERS
If (@ISNOTLOWERTEAMMEMBERRETENTION = 1 and @PEROFTEAMMEMBERS < @EVENTPEROFTEAMMEMBERS)
set @PEROFTEAMMEMBERS = @EVENTPEROFTEAMMEMBERS
If (@ISNOTLOWERTEAMS = 1 and @NUMOFTEAMS < @EVENTNUMOFTEAMS)
SET @NUMOFTEAMS = @EVENTNUMOFTEAMS
If (@ISNOTLOWERTEAMRETENTION = 1 and @PEROFTEAMS < @EVENTPEROFTEAMS)
SET @PEROFTEAMS = @EVENTPEROFTEAMS
If (@ISNOTLOWERFUNDRAISING = 1 and @TARGETFUNDRAISING < @EVENTMINFUNDRAISING)
SET @TARGETFUNDRAISING = @EVENTMINFUNDRAISING
SELECT ISNULL(@CURRENTGOAL,0) AS CURRENTGOAL,ISNULL(@MINFUNDRAISING,0) AS MINFUNDRAISING,ISNULL(@TARGETFUNDRAISING,0) AS TARGETFUNDRAISING,
ISNULL(@NUMOFCOMM,0) AS NUMOFCOMM, ISNULL(@NUMOFVOL,0) AS NUMOFVOL, ISNULL(@NUMOFPARTS,0) AS NUMOFPARTS, ISNULL((@PEROFDONORS*100),0) AS PEROFDONORS,
ISNULL(@OTHERGOAL,0) AS OTHERGOAL, ISNULL(@NUMOFTEAMS,0) AS NUMOFTEAMS, ISNULL((@PEROFTEAMS*100),0) AS PEROFTEAMS, ISNULL(@NUMOFTEAMEMBERS,0) AS NUMOFTEAMEMBERS, ISNULL((@PEROFTEAMMEMBERS*100),0) AS PEROFTEAMMEMBERS,
@EVENTPRICEID AS EVENTPRICEID