USP_SMARTFIELD_GETDONAORRAISEDNEW

Parameters

Parameter Parameter Type Mode Description
@ASOF datetime IN

Definition

Copy


CREATE procedure dbo.USP_SMARTFIELD_GETDONAORRAISEDNEW
(
    @ASOF datetime =null
)
as
;with [EVENTTOTAL_CTE]
as    
(
    select    EX.EVENTID AS ID, 
            sum(isnull([ORIGINAL amount],0)) as [ORIGINALAMOUNT]
            ,sum(isnull([APPLIED AMOUNT] ,0)) as [APPLIEDAMOUNT]
            ,TRANSACTIONTYPE                  as [REVENUETYPE]
    from    dbo.EVENTEXTENSION EX    
    outer apply [dbo].[UFN_REVENUE_EVENTREVENUEDETAILS](EX.EVENTID) R
    left join CONSTITUENT C on R.CONSTITUENTID = C.ID 
    left join (
        select FT1.CONSTITUENTID, E1.ID, E1.NAME  from dbo.FINANCIALTRANSACTION FT1 (nolock)
        join dbo.REVENUE_EXT RE1 (nolock) on FT1.ID = RE1.ID 
        join dbo.EVENT E1 (nolock) on E1.APPEALID = RE1.APPEALID 
        join dbo.EVENTEXTENSION EX1 (nolock) on EX1.EVENTID = E1.ID 
    ) P on P.CONSTITUENTID = R.CONSTITUENTID and P.ID = EX.PRIORYEAREVENTID        
    where P.CONSTITUENTID is null and TRANSACTIONTYPE is NOT null
    group by EX.EVENTID,transactiontype 
),
[TotalRaisedByNewDonors] as
(
    select ECTE.ID, [REVENUETYPE],
        case 
            when [REVENUETYPE] = 'Donation' THEN  [ORIGINALAMOUNT]
            when [REVENUETYPE] = 'Offline Donation' THEN 
                case when C.UNCONFIRMEDPARTICIPANTGIFTENTRY=1 then [ORIGINALAMOUNT] ELSE [APPLIEDAMOUNT] END
            when [REVENUETYPE] = 'Event registration'    then 
                case when C.ISREGISTRATIONREVENUE = 1 then [ORIGINALAMOUNT] else 0 end
            when [REVENUETYPE] = 'Pledge'                then 
                case when C.ISUNPAIDPLEDGES=1 then [ORIGINALAMOUNT] else [APPLIEDAMOUNT] end
            when [REVENUETYPE] = 'Event sponsorship'    then 
                case when C.ISSPONSORSHIPREVENUE = 0  then 0 else 
                    case when C.ISUNPAIDSPONSORSHIPREVENUE=1 then  [ORIGINALAMOUNT] else [APPLIEDAMOUNT] end
                end
            when [REVENUETYPE] = 'Matching gift'    then
                case when C.ISPENDINGMATCHINGGIFTS=1 then [ORIGINALAMOUNT] else [APPLIEDAMOUNT] end
            when [REVENUETYPE] = 'Recurring gift'    then 
                case when C.ISUNPAIDRECURRINGGIFTS=1 then [ORIGINALAMOUNT] else [APPLIEDAMOUNT] end
        end as [TOTAL]
            from [EVENTTOTAL_CTE] ECTE
            join FAFEVENTDONATIONOPTIONSCONFIG C on C.EVENTID = ECTE.ID
)
select    TR.ID, 
        SUM(isnull(TR.[TOTAL],0)) as VALUE
from    [TotalRaisedByNewDonors] TR
join EVENT E on E.ID = TR.ID 
where TR.REVENUETYPE not in ('Event registration', 'Event sponsorship')
group by TR.ID