UFN_REVENUE_GETEVENTTOTAL
Provide total raised for FAF events based on revenue configurations
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUE_GETEVENTTOTAL
(
@EVENTID uniqueidentifier
)
returns money
with execute as caller
as begin
-- return (select isnull(sum(TOTAL),0) from dbo.UFN_REVENUE_GETEVENTTOTAL_BY_CATEGORY(@EVENTID))
declare @donationTotal money = 0,
@registrationTotal money = 0,
@sponsorshipTotal money = 0,
@pledgedTotal money = 0,
@pledgPaidTotal money = 0,
@recurringTotal money = 0,
@recurringPaidTotal money = 0,
@offlineTotal money = 0,
@offlinePaidTotal money = 0,
@matchingGiftTotal money = 0,
@matchingGiftPaidTotal money = 0
select
@donationTotal= sum(case when FT.TYPECODE =0 and RS_EXT.APPLICATIONCODE = 0 then FTLI.TRANSACTIONAMOUNT else 0 end)
, @registrationTotal = sum(case when FT.TYPECODE =0 and RS_EXT.APPLICATIONCODE = 1 then FTLI.TRANSACTIONAMOUNT else 0 end)
, @sponsorshipTotal = sum(case when FT.TYPECODE =0 and RS_EXT.APPLICATIONCODE = 15 then FTLI.TRANSACTIONAMOUNT else 0 end)
, @pledgedTotal = sum(case when FT.TYPECODE =1 and RS_EXT.APPLICATIONCODE = 0 then FTLI.TRANSACTIONAMOUNT else 0 end)
, @pledgPaidTotal = sum(case when FT.TYPECODE =0 and RS_EXT.APPLICATIONCODE = 2 then FTLI.TRANSACTIONAMOUNT else 0 end)
, @recurringTotal = sum(case when FT.TYPECODE =2 and RS_EXT.APPLICATIONCODE = 0 then FTLI.TRANSACTIONAMOUNT else 0 end)
, @recurringPaidTotal = sum(case when FT.TYPECODE =0 and RS_EXT.APPLICATIONCODE = 3 then FTLI.TRANSACTIONAMOUNT else 0 end)
, @offlineTotal = sum(case when FT.TYPECODE =9 and RS_EXT.APPLICATIONCODE = 0 then FTLI.TRANSACTIONAMOUNT else 0 end)
, @offlinePaidTotal = sum(case when FT.TYPECODE =0 and RS_EXT.APPLICATIONCODE = 17 then FTLI.TRANSACTIONAMOUNT else 0 end)
, @matchingGiftTotal = sum(case when FT.TYPECODE =3/* and RS_EXT.APPLICATIONCODE = 2 */then FTLI.TRANSACTIONAMOUNT else 0 end)
, @matchingGiftPaidTotal = sum(case when FT.TYPECODE =0 and RS_EXT.APPLICATIONCODE = 7 then FTLI.TRANSACTIONAMOUNT else 0 end)
from dbo.FINANCIALTRANSACTION FT
inner join dbo.FINANCIALTRANSACTIONLINEITEM FTLI on FTLI.FINANCIALTRANSACTIONID = FT.ID
inner join dbo.REVENUESPLIT_EXT RS_EXT on RS_EXT.ID = FTLI.ID
inner join dbo.REVENUE_EXT R_EXT on FT.ID = R_EXT.ID
inner join dbo.EVENT E on E.APPEALID = R_EXT.APPEALID
where E.ID = @EVENTID
declare
@isUnpaidPledges bit = 0
,@isUnpaidRecurringGifts bit = 0
,@isSponsorshipRevenue bit = 0
,@isUnpaidSponsorshipRevenue bit = 0
,@isRegistrationRevenue bit = 0
,@isPendingMatchingGifts bit = 0
,@unconfirmedParticipantGiftEntry bit = 0;
-- Get configuration settings
select
@isUnpaidPledges = C.ISUNPAIDPLEDGES
,@isUnpaidRecurringGifts = C.ISUNPAIDRECURRINGGIFTS
,@isSponsorshipRevenue = C.ISSPONSORSHIPREVENUE
,@isUnpaidSponsorshipRevenue = C.ISUNPAIDSPONSORSHIPREVENUE
,@isRegistrationRevenue = C.ISREGISTRATIONREVENUE
,@isPendingMatchingGifts = C.ISPENDINGMATCHINGGIFTS
,@unconfirmedParticipantGiftEntry = C.UNCONFIRMEDPARTICIPANTGIFTENTRY
from dbo.FAFEVENTDONATIONOPTIONSCONFIG C
where EVENTID = @EVENTID;
return (
@donationTotal
+ case when @isRegistrationRevenue = 1 then @registrationTotal else 0 end
+ case when @isSponsorshipRevenue = 1 then @sponsorshipTotal else 0 end
+ case when @unconfirmedParticipantGiftEntry = 1 then @offlineTotal else @offlinePaidTotal end
+ case when @isUnpaidPledges = 1 then @pledgedTotal else @pledgPaidTotal end
+ case when @isUnpaidRecurringGifts = 1 and @recurringTotal > @recurringPaidTotal then @recurringTotal else @recurringPaidTotal end
+ case when @isPendingMatchingGifts = 1 then @matchingGiftTotal else @matchingGiftPaidTotal end
)
end