UFN_REVENUE_REGISTRANTEVENTTOTAL_BYREVENUERULES

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN

Definition

Copy


create function dbo.UFN_REVENUE_REGISTRANTEVENTTOTAL_BYREVENUERULES
(
    @EVENTID uniqueidentifier
)
returns money
as
begin
      declare 
            @ISUNPAIDPLEDGES                    bit = 0
          , @ISUNPAIDRECURRINGGIFTS                bit = 0
          , @ISREGISTRATIONREVENUE                bit = 0
          , @ISPENDINGMATCHINGGIFTS                bit = 0
          , @UNCONFIRMEDPARTICIPANTGIFTENTRY    bit = 0
      , @TOTAL money = null;

    -- Get configuration settings for the event

    select 
        @ISUNPAIDPLEDGES                 = C.ISUNPAIDPLEDGES
      , @ISUNPAIDRECURRINGGIFTS             = C.ISUNPAIDRECURRINGGIFTS
      , @ISREGISTRATIONREVENUE             = C.ISREGISTRATIONREVENUE
      , @ISPENDINGMATCHINGGIFTS             = C.ISPENDINGMATCHINGGIFTS
      , @UNCONFIRMEDPARTICIPANTGIFTENTRY = C.UNCONFIRMEDPARTICIPANTGIFTENTRY
    from    dbo.FAFEVENTDONATIONOPTIONSCONFIG C
    where    EVENTID = @EVENTID

    SELECT @TOTAL= (
      SUM(RECEIVEDAMOUNT)
      + CASE WHEN @ISUNPAIDPLEDGES=1 THEN ISNULL(SUM(UNPAIDPLEDGEAMOUNT), 0) ELSE 0 END
      + CASE WHEN @ISUNPAIDRECURRINGGIFTS=1 THEN ISNULL(SUM(UNPAIDRECURRINGAMOUNT), 0) ELSE 0 END
      + CASE WHEN @ISREGISTRATIONREVENUE=1 THEN ISNULL(SUM(REGAMOUNT), 0) ELSE 0 END
      + CASE WHEN @ISPENDINGMATCHINGGIFTS=1 THEN ISNULL(SUM(MATCHINGGIFTCLAIMAMOUNT), 0) ELSE 0 END
      + CASE WHEN @UNCONFIRMEDPARTICIPANTGIFTENTRY=1 THEN ISNULL(SUM(UNCONFIRMEDOFFLINEAMOUNT), 0) ELSE 0 END)
    FROM FAFRAISEDTOTAL FR
    --filter out revenue received by groups (general group donations)

    INNER JOIN REGISTRANT R on FR.CONSTITUENTID=R.CONSTITUENTID AND FR.EVENTID=R.EVENTID
    WHERE FR.EVENTID=@EVENTID

    return @TOTAL

end