UFN_FAFEVENT_REVENUEDETAILS

For reports, provide revenue details per constituent in a given FAF event

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@ISRETAINEDMODE tinyint IN

Definition

Copy


CREATE function dbo.UFN_FAFEVENT_REVENUEDETAILS
(
    @EVENTID uniqueidentifier = null,
    @STARTDATE datetime = null,
    @ENDDATE datetime = null,
    @ISRETAINEDMODE tinyint = 0 
)
returns @EventRevenueConstituent table 
(
CONSTITUENTID uniqueidentifier
,TRANSACTIONTYPE nvarchar(50)
,[ORIGINAL AMOUNT] money
,[APPLIED AMOUNT] money
,EVENTID uniqueidentifier
,PRIORYEAREVENTID uniqueidentifier
)
as 
begin
    If @ISRETAINEDMODE = 1  --Retained mode: Pull revenue retained

        begin 
            insert @EventRevenueConstituent 
            (
                CONSTITUENTID        
                ,TRANSACTIONTYPE    
                ,[ORIGINAL AMOUNT]  
                ,[APPLIED AMOUNT]    
                ,EVENTID            
                ,PRIORYEAREVENTID    
            )
            select  
                     FG.CONSTITUENTID
                    ,FG.TRANSACTIONTYPE
                    ,sum(case WHEN AA.CONSTITUENTID is not null then [ORIGINAL AMOUNT] else 0 end) as [ORIGINAL AMOUNT]
                    ,sum(case WHEN AA.CONSTITUENTID is not null then [APPLIED AMOUNT] else 0 end) as [APPLIED AMOUNT]                
                    ,FG.ID AS EVENTID,    FG.PRIORYEAREVENTID    
            from    [dbo].[UFN_FAFEVENT_GETREVENUECONSTITUENTS](@EVENTID,@STARTDATE,@ENDDATE,1) FG

            inner join (
                   SELECT ET2.EVENTID AS EVENTID
                  ,C2.ID as CONSTITUENTID
                  FROM CONSTITUENT C2  
                  inner join dbo.REGISTRANT RG2 ON C2.ID=RG2.CONSTITUENTID 
                  inner join dbo.EVENTEXTENSION ET2 ON ET2.EVENTID = RG2.EVENTID  
              ) AA ON AA.CONSTITUENTID=FG.CONSTITUENTID AND FG.PRIORYEAREVENTID=AA.EVENTID

            group by FG.CONSTITUENTID,FG.TRANSACTIONTYPE,FG.ID,FG.PRIORYEAREVENTID
        end
    Else    --Default mode: Pull total revenue

        begin
            insert @EventRevenueConstituent 
            (
                CONSTITUENTID        
                ,TRANSACTIONTYPE    
                ,[ORIGINAL AMOUNT]  
                ,[APPLIED AMOUNT]    
                ,EVENTID            
                ,PRIORYEAREVENTID    
            )
            select  
                     CONSTITUENTID
                    ,TRANSACTIONTYPE
                    ,sum([ORIGINAL AMOUNT]) as [ORIGINAL AMOUNT]
                    ,sum([APPLIED AMOUNT])  as [APPLIED AMOUNT]
                    ,ID AS EVENTID,    PRIORYEAREVENTID    
            from    [dbo].[UFN_FAFEVENT_GETREVENUECONSTITUENTS](@EVENTID,@STARTDATE,@ENDDATE,1)
            group    by CONSTITUENTID,TRANSACTIONTYPE,ID,PRIORYEAREVENTID
        end

    return
end