UFN_COMMUNICATIONS_GETCONSTITUENTSWITHRECENTREVENUE

This function returns the constituents with any of given revenue types within the given time period from the given start 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_GETCONSTITUENTSWITHRECENTREVENUE
(
    @PERIODTYPECODE tinyint,
    @NUMPERIODS integer,
    @STARTDATE as datetime
)
returns @CONSTITUENTS table ([CONSTITUENTID] uniqueidentifier)
as
begin
    declare @BEGINDATE date =
        case @PERIODTYPECODE
            when 0 then  -- week

                dateadd(week, -@NUMPERIODS, @STARTDATE)
            when 1 then  -- month

                dateadd(month, -@NUMPERIODS, @STARTDATE)
            when 2 then  -- quarter

                dateadd(quarter, -@NUMPERIODS, @STARTDATE)
            when 3 then  -- year

                dateadd(year, -@NUMPERIODS, @STARTDATE)
        end;

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


    insert into @CONSTITUENTS
        select distinct
            FINANCIALTRANSACTION.CONSTITUENTID
        from
            dbo.FINANCIALTRANSACTION
        inner join
            dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
        inner join
            dbo.UFN_REVENUELIFECYCLE_GETVALIDREVENUE() as VALIDREVENUE on VALIDREVENUE.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
        where
            FINANCIALTRANSACTION.DELETEDON is null
            and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1  -- Reversal

            and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
            and FINANCIALTRANSACTION.CONSTITUENTID is not null
            and FINANCIALTRANSACTION.CALCULATEDDATE between @BEGINDATE and @STARTDATE;

    return;
end