UFN_REVENUE_GETPARTICIPANTGIVENTOTAL
Provide revenue amount given by the current constituent in a given FAF event
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@EVENTID | uniqueidentifier | IN |
Definition
Copy
create function [dbo].[UFN_REVENUE_GETPARTICIPANTGIVENTOTAL]
(
@CONSTITUENTID uniqueidentifier
,@EVENTID uniqueidentifier
)
returns money
with execute as caller
as begin
-- Configuration flags variables
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 = FAFEVENTDONATIONOPTIONSCONFIG.ISUNPAIDPLEDGES
, @ISUNPAIDRECURRINGGIFTS = FAFEVENTDONATIONOPTIONSCONFIG.ISUNPAIDRECURRINGGIFTS
, @ISSPONSORSHIPREVENUE = FAFEVENTDONATIONOPTIONSCONFIG.ISSPONSORSHIPREVENUE
, @ISUNPAIDSPONSORSHIPREVENUE = FAFEVENTDONATIONOPTIONSCONFIG.ISUNPAIDSPONSORSHIPREVENUE
, @ISREGISTRATIONREVENUE = FAFEVENTDONATIONOPTIONSCONFIG.ISREGISTRATIONREVENUE
, @ISPENDINGMATCHINGGIFTS = FAFEVENTDONATIONOPTIONSCONFIG.ISPENDINGMATCHINGGIFTS
, @UNCONFIRMEDPARTICIPANTGIFTENTRY = FAFEVENTDONATIONOPTIONSCONFIG.UNCONFIRMEDPARTICIPANTGIFTENTRY
from dbo.FAFEVENTDONATIONOPTIONSCONFIG
where FAFEVENTDONATIONOPTIONSCONFIG.EVENTID = @EVENTID;
declare @TOTAL as money;
;with [EVENTTOTAL_CTE]
as
(
select SUM(ISNULL([ORIGINAL amount],0)) AS [ORIGINALAMOUNT]
,SUM(ISNULL([APPLIED AMOUNT],0)) AS [APPLIEDAMOUNT]
,TRANSACTIONTYPE AS [REVENUETYPE]
from [dbo].[UFN_REVENUE_EVENTREVENUEDETAILS](@EVENTID)
where CONSTITUENTID = @CONSTITUENTID
group by TRANSACTIONTYPE,CONSTITUENTID
)
,[REGISTRANTRAISEDAMOUNT_CTE]
as
(
select
case
when [REVENUETYPE] = 'Donation' THEN
case when @UNCONFIRMEDPARTICIPANTGIFTENTRY=1 then [ORIGINALAMOUNT] ELSE 0 END
when [REVENUETYPE] = 'Event registration' then
case when @ISREGISTRATIONREVENUE = 1 then [ORIGINALAMOUNT] else 0 end
when [REVENUETYPE] = 'Pledge' then
case when @ISUNPAIDPLEDGES=1 then [ORIGINALAMOUNT] else [APPLIEDAMOUNT] end
when [REVENUETYPE] = 'Event sponsorship' then
case when @ISSPONSORSHIPREVENUE = 0 then 0 else
case when @ISUNPAIDSPONSORSHIPREVENUE=1 then [ORIGINALAMOUNT] else [APPLIEDAMOUNT] end
end
when [REVENUETYPE] = 'Matching gift' then
case when @ISPENDINGMATCHINGGIFTS=1 then [ORIGINALAMOUNT] else [APPLIEDAMOUNT] end
when [REVENUETYPE] = 'Recurring gift' then
case when @ISUNPAIDRECURRINGGIFTS=1 then [ORIGINALAMOUNT] else [APPLIEDAMOUNT] end
end as [TOTAL]
from [EVENTTOTAL_CTE]
)
select @TOTAL = SUM(ISNULL(TOTAL,0)) from [REGISTRANTRAISEDAMOUNT_CTE]
return
(
@TOTAL
)
end