UFN_REVENUESOLICITOR_GETSUM

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

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN

Definition

Copy


CREATE function dbo.UFN_REVENUESOLICITOR_GETSUM
(
    @CONSTITUENTID uniqueidentifier,
    @STARTDATE datetime,
    @ENDDATE datetime
)
returns money
with execute as caller
as begin
    -- do work here and return a value

    declare @sum money

    select 
        @sum = SUM(sol.AMOUNT)
    from
        dbo.REVENUESOLICITOR sol 
        join dbo.REVENUESPLIT split on sol.REVENUESPLITID = split.ID 
        join dbo.REVENUE on split.REVENUEID = REVENUE.ID
    where
        (sol.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 split.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