UFN_FAFGROUP_GETDONORGIFTCOUNTANDAMOUNTRAISED
Return
Return Type |
---|
table |
Definition
Copy
CREATE function dbo.UFN_FAFGROUP_GETDONORGIFTCOUNTANDAMOUNTRAISED()
returns table
as
return
With [MembersAndGroups]
as (
select 1 as ISGROUP, ParentID, TeamID, ConstituentID, EventID from dbo.UFN_FAFGROUP_GETALLGROUPS()
Union
select 0 as ISGROUP, f.ParentID, f.TeamID, TF.CONSTITUENTID, f.EventID
from dbo.UFN_FAFGROUP_GETALLGROUPS() F
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM (nolock) on TFTM.TEAMFUNDRAISINGTEAMID = F.TeamID
join dbo.TEAMFUNDRAISER TF (nolock) on TF.ID = TFTM.TEAMFUNDRAISERID
group by f.EventID, f.ParentID, f.TeamID, TF.CONSTITUENTID
)
select F.EventID, F.ParentID as GROUPID, sum(isnull(T.DONORCOUNT,0)) DONORCOUNT, sum(isnull(T.GIFTCOUNT,0)) GIFTCOUNT, sum(isnull(T.AMOUNTRAISED, 0)) RAISEDTOTAL
from [MembersAndGroups] F
left join (
select
fr.EVENTID,
CONSTITUENTID,
AMOUNTRAISED = RECEIVEDAMOUNT
+ CASE WHEN opt.ISREGISTRATIONREVENUE = 1 then REGAMOUNT else 0 end
+ CASE WHEN opt.ISUNPAIDPLEDGES = 1 then UNPAIDPLEDGEAMOUNT else 0 end
+ CASE WHEN opt.ISUNPAIDRECURRINGGIFTS = 1 then UNPAIDRECURRINGAMOUNT else 0 end
+ CASE WHEN opt.ISPENDINGMATCHINGGIFTS = 1 then MATCHINGGIFTCLAIMAMOUNT else 0 end
+ CASE WHEN opt.UNCONFIRMEDPARTICIPANTGIFTENTRY = 1 then UNCONFIRMEDOFFLINEAMOUNT else 0 end,
DONORCOUNT,
GIFTCOUNT = GIFTCOUNT_DONATION
+ CASE WHEN opt.ISUNPAIDPLEDGES = 1 then GIFTCOUNT_UNPAIDPLEDGES_ON else GIFTCOUNT_UNPAIDPLEDGES_OFF end
+ CASE WHEN opt.ISUNPAIDRECURRINGGIFTS = 1 then GIFTCOUNT_UNPAIDRECURRINGGIFTS_ON else GIFTCOUNT_UNPAIDRECURRINGGIFTS_OFF end
+ CASE WHEN opt.ISPENDINGMATCHINGGIFTS = 1 then GIFTCOUNT_PENDINGMATCHINGGIFTS_ON else GIFTCOUNT_PENDINGMATCHINGGIFTS_OFF end
+ CASE WHEN opt.UNCONFIRMEDPARTICIPANTGIFTENTRY = 1 then GIFTCOUNT_UNCONFIRMEDPARTICIPANTGIFTENTRY_ON else GIFTCOUNT_UNCONFIRMEDPARTICIPANTGIFTENTRY_OFF end
from dbo.FAFRAISEDTOTAL fr (nolock)
inner join dbo.FAFEVENTDONATIONOPTIONSCONFIG opt (nolock) on opt.EVENTID = fr.EVENTID
) T on T.CONSTITUENTID = F.CONSTITUENTID and T.EVENTID = F.EventID
group by F.EventID, F.ParentID