UFN_FAFEVENT_TRANSACTIONS

Return all transactions per event

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN

Definition

Copy


CREATE function [dbo].[UFN_FAFEVENT_TRANSACTIONS]  
(  
  @EVENTID  as uniqueidentifier  -- FAF event id

)  
returns table  
as  
return      
      with [FAF_EVENT_TRANSACTIONS_CTE]        
      as
      (
            -- Raised by participant

            select      
                   REVENUERECOGNITION.CONSTITUENTID
                  ,REVENUEEVENT.TRANSACTIONTYPE
                  ,REVENUEEVENT.[RTRANSACTIONTYPE]
                  ,REVENUEEVENT.[ORIGINAL AMOUNT]
                  -- Link back pledge payment to participant as recognition

                  ,isnull(case 
                       when REVENUEEVENT.TRANSACTIONTYPE='Pledge' then 
                                (select SUM(amount) from dbo.INSTALLMENTSPLITPAYMENT (nolock) where PLEDGEID=REVENUESPLIT.REVENUEID )
                        else REVENUEEVENT.[APPLIED AMOUNT] 
                      end ,0
                  ) as [APPLIED AMOUNT]
                  ,REVENUEEVENT.CONSTITUENTID               as [DONORID]
                  ,REVENUESPLIT.DATEADDED                   as [DATE]
            from  [dbo].[UFN_REVENUE_EVENT](@EVENTID) as REVENUEEVENT
            inner join REVENUERECOGNITION (nolock)
            on          REVENUERECOGNITION.CONSTITUENTID    <> REVENUEEVENT.CONSTITUENTID
            and         REVENUERECOGNITION.REVENUESPLITID   =  REVENUEEVENT.REVENUESPLITID
            inner join REVENUESPLIT (nolock)
            on          REVENUESPLIT.ID = REVENUEEVENT.REVENUESPLITID

            union all   

            -- Raised by participant to self

            select      
                  RC.CONSTITUENTID
                   -- REVENUEEVENT.CONSTITUENTID

                  ,REVENUEEVENT.TRANSACTIONTYPE
                  ,REVENUEEVENT.[RTRANSACTIONTYPE]
                  ,REVENUEEVENT.[ORIGINAL AMOUNT]
                  ,REVENUEEVENT.[APPLIED AMOUNT]
                  ,REVENUEEVENT.CONSTITUENTID               as [DONORID]
                  ,REVENUESPLIT.DATEADDED                   as [DATE]
            from  [dbo].[UFN_REVENUE_EVENT](@EVENTID) as REVENUEEVENT   
            inner join  REVENUESPLIT (nolock)
            on          REVENUESPLIT.ID = REVENUEEVENT.REVENUESPLITID   
            inner join dbo.REVENUERECOGNITION RC on RC.REVENUESPLITID = REVENUESPLIT.ID 
                       and  RC.CONSTITUENTID  =REVENUEEVENT.CONSTITUENTID
      )
      -- Transactions totals aggregates grouped by transaction type

      select      
            [DONORID]
            ,[CONSTITUENTID]        as [RECEIVERID]
            ,sum([ORIGINAL AMOUNT]) as [ORIGINALAMOUNT]
            ,sum([APPLIED AMOUNT])  as [APPLIEDAMOUNT]
            ,[TRANSACTIONTYPE]            as [APPLICATIONTYPE]          
            ,max([DATE])                  as [DATE]         
      from  [FAF_EVENT_TRANSACTIONS_CTE]
      group by 
             [DONORID]
            ,[CONSTITUENTID]
            ,[TRANSACTIONTYPE]                        
            ,[DATE];