UFN_REVENUESOLICITOR_GETSUM_INCURRENCY_BULK

Obtains sum of revenue solicitor credit for a given constituent/groupID within the specified date range in the currency specified.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@CURRENCYID uniqueidentifier IN
@ORGANIZATIONCURRENCYID uniqueidentifier IN
@DECIMALDIGITS tinyint IN
@ROUNDINGTYPECODE tinyint IN

Definition

Copy


create function dbo.UFN_REVENUESOLICITOR_GETSUM_INCURRENCY_BULK
(
    @CONSTITUENTID uniqueidentifier,
    @STARTDATE datetime,
    @ENDDATE datetime,
    @CURRENCYID uniqueidentifier,
    @ORGANIZATIONCURRENCYID uniqueidentifier,
    @DECIMALDIGITS tinyint,
    @ROUNDINGTYPECODE tinyint
)
returns money
with execute as caller
as begin
    declare @SUM money

    select 
        @SUM = SUM(REVENUESOLICITORBULK.AMOUNTINCURRENCY)
    from
        dbo.REVENUESOLICITOR 
        inner join dbo.UFN_REVENUESOLICITOR_GETAMOUNTINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) REVENUESOLICITORBULK on REVENUESOLICITORBULK.ID = REVENUESOLICITOR.ID
        join dbo.REVENUESPLIT REVENUESPLIT on REVENUESOLICITOR.REVENUESPLITID = REVENUESPLIT.ID 
        join dbo.REVENUE on REVENUESPLIT.REVENUEID = REVENUE.ID
    where
        (REVENUESOLICITOR.CONSTITUENTID = @CONSTITUENTID)
        and
        (
            --Count Pledges, MG Claims, Planned Gift

            REVENUE.TRANSACTIONTYPECODE in (1, 3, 4)
            or
            (
                --Payments to all except above

                REVENUE.TRANSACTIONTYPECODE = 0
                and REVENUESPLIT.APPLICATIONCODE not in 
                    (2, --Pledge payment

                     6, -- Planned Gift Payment

                     7 -- Matching Gift Payment

                    )
            )
        )
        and
        (
            (@STARTDATE is null and @ENDDATE is null)
            or
            (@STARTDATE is null and REVENUE.DATE <= dbo.UFN_DATE_GETLATESTTIME(@ENDDATE))
            or
            (REVENUE.DATE >= dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE) and @ENDDATE is null)
            or
            (REVENUE.DATE >= dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE) and REVENUE.DATE <= dbo.UFN_DATE_GETLATESTTIME(@ENDDATE))
        )


    if @SUM is null
        set @SUM = Cast (0 As money);
    Return @SUM
end