USP_DATAFORMTEMPLATE_VIEW_GROUP_REGISTRATION_GOALS
The load procedure used by the view dataform template "Event Group Registration Goals view Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@FUNDRAISINGGOAL | money | INOUT | Fundraising total amount |
@TEAMRECRUITMENTGOAL | int | INOUT | Number of teams |
@PCTTEAMSRETENSION | decimal(9, 2) | INOUT | Percentage of teams to retain |
@TEAMMEMBERGOAL | int | INOUT | Number of team members |
@PCTTEAMMEMBERRETENSION | decimal(9, 2) | INOUT | Percentage of team members to retain |
@PARTICIPANTGOAL | int | INOUT | Number of participants to recruit |
@COMMUNICATIONGOAL | int | INOUT | Number of communications to send |
@TARGETFUNDRAISINGGOAL | money | INOUT | Target fundraising goal |
@DONORRETENTIONGOAL | decimal(9, 2) | INOUT | Percentage of donors to retain |
@PROGRESSFUNDRAISINGGOAL | money | INOUT | Total Fundraising |
@PROGRESSTEAMRECRUITMENTGOAL | int | INOUT | Number of teams |
@PROGRESSPCTTEAMSRETENSION | decimal(9, 2) | INOUT | Percentage of teams retained |
@PROGRESSTEAMMEMBERGOAL | int | INOUT | Number of team members |
@PROGRESSPCTTEAMMEMBERRETENSION | decimal(9, 2) | INOUT | Percentage of team members retained |
@PROGRESSPARTICIPANTGOAL | int | INOUT | Number of participants recruited |
@PROGRESSCOMMUNICATIONGOAL | int | INOUT | Number of communications sent |
@PROGRESSDONORRETENTIONGOAL | decimal(9, 2) | INOUT | Percentage of donors retained |
@TYPE | nvarchar(50) | INOUT | Type |
@LEADERS | nvarchar(200) | INOUT | Leaders |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_GROUP_REGISTRATION_GOALS
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@FUNDRAISINGGOAL money = null output,
@TEAMRECRUITMENTGOAL int = null output,
@PCTTEAMSRETENSION decimal(9,2) = null output,
@TEAMMEMBERGOAL int = null output,
@PCTTEAMMEMBERRETENSION decimal(9,2) = null output,
@PARTICIPANTGOAL int = null output,
@COMMUNICATIONGOAL int = null output,
@TARGETFUNDRAISINGGOAL money = null output,
@DONORRETENTIONGOAL decimal(9,2) = null output,
@PROGRESSFUNDRAISINGGOAL money = null output,
@PROGRESSTEAMRECRUITMENTGOAL int = null output,
@PROGRESSPCTTEAMSRETENSION decimal(9,2) = null output,
@PROGRESSTEAMMEMBERGOAL int = null output,
@PROGRESSPCTTEAMMEMBERRETENSION decimal(9,2) = null output,
@PROGRESSPARTICIPANTGOAL int = null output,
@PROGRESSCOMMUNICATIONGOAL int = null output,
@PROGRESSDONORRETENTIONGOAL decimal(9,2) = null output,
@TYPE nvarchar(50) = null output,
@LEADERS nvarchar(200) = null output
)
as
set nocount on;
declare @PREVIOUSTEAMID uniqueidentifier,
@PREVIOUSTEAMCOUNT int,
@GROUPCONSTITUENTID uniqueidentifier,
@TOTALSOCIALPOSTS int=0,
@TOTALOTHERCOMMS int=0
select @PREVIOUSTEAMID = pTX.TEAMFUNDRAISINGTEAMID, @GROUPCONSTITUENTID=TX.TEAMCONSTITUENTID from TEAMEXTENSION TX
join EVENTEXTENSION EX on TX.EVENTID = EX.EVENTID
left join TEAMEXTENSION pTX on pTX.TEAMCONSTITUENTID = TX.TEAMCONSTITUENTID and EX.PRIORYEAREVENTID = pTX.EVENTID
where TX.TEAMFUNDRAISINGTEAMID = @ID
select @PREVIOUSTEAMCOUNT=count(teamid) from dbo.UFN_NUMBERTEAMMEMBERS_GROUP (@PREVIOUSTEAMID)
select @TOTALOTHERCOMMS=TOTALCOMMUNICATIONSENT from dbo.FAFGROUPSUMMARYINFORMATION where GROUPCONSTITUENTID=@GROUPCONSTITUENTID
SET @TOTALSOCIALPOSTS=(select count(F.ID) AS COMMUNICATIONSENT from dbo.FAFEVENTSOCIALNETWORKPOST F (nolock)
join REGISTRANT R on F.REGISTRANTID=R.ID
join (
select TX.EVENTID, G.ParentID as GROUPID, G.ParentTeamConstituentID as TEAMCONSTITUENTID, PTX.TYPECODE, C.ID as CONSTITUENTID
from dbo.UFN_FAFGROUP_GETALLGROUPS() G
join dbo.TEAMEXTENSION PTX (nolock) on G.PARENTID = PTX.TEAMFUNDRAISINGTEAMID
join dbo.TEAMEXTENSION TX (nolock) on G.TeamID = TX.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM (nolock) on TX.TEAMFUNDRAISINGTEAMID = TFTM.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISER TF (nolock) on TF.ID = TFTM.TEAMFUNDRAISERID
join dbo.CONSTITUENT C (nolock) on C.ID = TF.CONSTITUENTID
join dbo.BackOfficeSystemPeople BOSP(nolock) on BOSP.BackofficeRecordID = C.SEQUENCEID and BOSP.BackOfficeSystemID = 0
join dbo.BackOfficeSystemUsers BOSU(nolock) on BOSU.BackofficePeopleID = BOSP.ID and BOSU.[CURRENT] = 1
join dbo.ClientUsers CU(nolock) on CU.ID = BOSU.ClientUsersID and CU.Deleted = 0
) A on A.CONSTITUENTID = R.CONSTITUENTID and A.EVENTID = R.EVENTID
where A.GROUPID=@ID
group by A.GROUPID, A.TEAMCONSTITUENTID, A.EVENTID , A.TYPECODE)
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 0;
select @DATALOADED = 1,
@FUNDRAISINGGOAL = TFT.[GOAL] ,
@TEAMRECRUITMENTGOAL = TE.TEAMRECRUITMENTGOAL,
@PCTTEAMSRETENSION = TE.PCTTEAMSRETENSION * 100,
@TEAMMEMBERGOAL = TE.TEAMMEMBERGOAL,
@PCTTEAMMEMBERRETENSION = TE.PCTTEAMMEMBERRETENSION * 100,
@PARTICIPANTGOAL = TE.TEAMMEMBERGOAL,
@COMMUNICATIONGOAL = TE.COMMUNICATIONGOAL,
@TARGETFUNDRAISINGGOAL = TE.TARGETFUNDRAISINGGOAL,
@DONORRETENTIONGOAL = TE.DONORRETENTIONGOAL * 100,
@TYPE = TE.TYPE
,@PROGRESSFUNDRAISINGGOAL= case WHEN TE.TYPECODE=1 THEN dbo.UFN_REVENUE_GETTEAMRAISEDTOTAL(TFT.ID, TE.EVENTID)
WHEN TE.TYPECODE=2 THEN dbo.UFN_REVENUE_GETCOMPANYRAISEDTOTAL(TFT.ID, TE.EVENTID)
WHEN TE.TYPECODE=3 THEN dbo.UFN_REVENUE_GETHOUSEHOLDRAISEDTOTAL(TFT.ID, TE.EVENTID) END
,@PROGRESSTEAMRECRUITMENTGOAL= AG.TEAMNUMBER
,@PROGRESSPCTTEAMSRETENSION= case when isnull(AG.PREVIOUSTEAMSCNT,0) = 0 then 0 else (convert(decimal(9,2),AG.TEAMRETAINEDNUMBER)/AG.PREVIOUSTEAMSCNT) * 100 end
--,@PROGRESSTEAMMEMBERGOAL= (select Value from dbo.UFN_NUMBERTEAMMEMBERS_GROUP() where ID= @ID)
,@PROGRESSTEAMMEMBERGOAL= (select Value from dbo.UFN_NUMBERGROUPMEMBERS (@ID))
,@PROGRESSPCTTEAMMEMBERRETENSION= (select case when isnull(@PREVIOUSTEAMCOUNT,0) = 0 then 0
else cast((convert(decimal(5,2),sum(MEMBERRETAINEDNUMBER))/convert(decimal(5,2),@PREVIOUSTEAMCOUNT)) as decimal(5,2)) * 100 end
from dbo.UFN_REGISTRANT_GROUPMEMBERLIST() where GROUPID= @ID AND TYPECODE=TE.TYPECODE )
,@PROGRESSPARTICIPANTGOAL= (select count(fc.TYPEGUID)
from FAFCOMMUNICATIONSLOG fl
join FAFEVENTCOMMUNICATIONCHANNEL fc on fl.EMAILJOBID = fc.EMAILJOBID
where fc.TYPEGUID in (select REGISTRANTID from dbo.UFN_REGISTRANT_GROUPMEMBERLIST() where GROUPID= @ID AND TYPECODE=TE.TYPECODE))
,@PROGRESSCOMMUNICATIONGOAL=isnull(@TOTALOTHERCOMMS,0)+isnull(@TOTALSOCIALPOSTS,0)
,@PROGRESSDONORRETENTIONGOAL= NULL
from dbo.TEAMEXTENSION TE
join dbo.TEAMFUNDRAISINGTEAM TFT ON TE.TEAMFUNDRAISINGTEAMID = TFT.ID
join dbo.EVENTEXTENSION EX on TE.EVENTID = EX.EVENTID
left join dbo.UFN_COMPANY_TEAMS (@ID) AG ON TE.EVENTID= AG.EVENTID
left join TEAMEXTENSION pTX on pTX.TEAMCONSTITUENTID = TE.TEAMCONSTITUENTID and EX.PRIORYEAREVENTID = pTX.EVENTID
where TE.TEAMFUNDRAISINGTEAMID = @ID
select
@LEADERS = dbo.UDA_BUILDLIST(C.NAME)
from dbo.TEAMFUNDRAISINGTEAMCAPTAIN TC (NOLOCK)
left join dbo.CONSTITUENT C WITH (NOLOCK) on C.ID = TC.CONSTITUENTID
where TC.TEAMFUNDRAISINGTEAMID = @ID
group by TC.TEAMFUNDRAISINGTEAMID
return 0;