UFN_COMMUNICATIONS_GETCONSTITUENTTOTALREVENUE

This function returns total revenue per constituent within the given range of the given date.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@PERIODTYPECODE tinyint IN
@NUMPERIODS int IN
@STARTDATE datetime IN

Definition

Copy


CREATE function dbo.UFN_COMMUNICATIONS_GETCONSTITUENTTOTALREVENUE
(
    @PERIODTYPECODE tinyint,
    @NUMPERIODS integer,
    @STARTDATE as datetime
)
returns @RESULTS table ([CONSTITUENTID] uniqueidentifier, [TOTALREVENUEAMOUNT] money)
as
begin
    -- @PERIODTYPECODE

    --        0 - week

    --        1 - month

    --        2 - quarter

    --        3 - year


    -- Valid Revenue Types are now taken from the Donor Lifecycle functionality    


    insert into @RESULTS
        select 
            REVENUE.CONSTITUENTID,
            SUM(REVENUESPLIT.AMOUNT) as TOTALREVENUEAMOUNT
        from dbo.REVENUE
        inner join dbo.REVENUESPLIT
            on REVENUE.ID = REVENUESPLIT.REVENUEID
        inner join dbo.UFN_REVENUELIFECYCLE_GETVALIDREVENUE() as VALIDREVENUE
            on REVENUESPLIT.ID = VALIDREVENUE.REVENUESPLITID
        where
            (
                (@PERIODTYPECODE = 0 and REVENUE.[DATE] between DATEADD(ww, @NUMPERIODS * -1, @STARTDATE) and @STARTDATE)
                or (@PERIODTYPECODE = 1 and REVENUE.[DATE] between DATEADD(mm, @NUMPERIODS * -1, @STARTDATE) and @STARTDATE)
                or (@PERIODTYPECODE = 2 and REVENUE.[DATE] between DATEADD(qq, @NUMPERIODS * -1, @STARTDATE) and @STARTDATE)
                or (@PERIODTYPECODE = 3 and REVENUE.[DATE] between DATEADD(yy, @NUMPERIODS * -1, @STARTDATE) and @STARTDATE)
            )                         
        group by REVENUE.CONSTITUENTID;

    return;
end