UFN_RECURRINGGIFT_GETPASTDUEAMOUNTIGNOREPAYMENT_2

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN
@PAYMENTID uniqueidentifier IN
@ASOFDATE date IN
@IGNORESTATUS bit IN

Definition

Copy


CREATE function dbo.UFN_RECURRINGGIFT_GETPASTDUEAMOUNTIGNOREPAYMENT_2(
    @REVENUEID uniqueidentifier,
    @PAYMENTID uniqueidentifier,
    @ASOFDATE date = null,
    @IGNORESTATUS bit = 0
)
returns money
with execute as caller
as begin
    declare @PASTDUE money;

    declare @RGSTATUS tinyint;

    select @RGSTATUS = STATUSCODE
    from dbo.REVENUESCHEDULE
    where ID = @REVENUEID;

    if @RGSTATUS in(0,1,5)
    begin
        if @ASOFDATE is null
            set @ASOFDATE = getdate();

        declare @INSTALLMENTS table (BALANCE money);

        insert into @INSTALLMENTS
        select dbo.UFN_RECURRINGGIFTINSTALLMENT_GETINSTALLMENTBALANCEIGNOREPAYMENT(ID, @PAYMENTID)
        from dbo.RECURRINGGIFTINSTALLMENT
        where REVENUEID = @REVENUEID
        and DATE <= @ASOFDATE and (@IGNORESTATUS = 1 or STATUSCODE = 1)
        and dbo.UFN_RECURRINGGIFTINSTALLMENT_GETINSTALLMENTBALANCEIGNOREPAYMENT(ID, @PAYMENTID) > 0;

        insert into @INSTALLMENTS
        select R.TRANSACTIONAMOUNT
        from REVENUE R
        cross apply dbo.UFN_RECURRINGGIFT_GETMISSINGINSTALLMENTS(R.ID) I
        where R.ID = @REVENUEID
        and I.DATE <= @ASOFDATE
        and @IGNORESTATUS = 1;

        select @PASTDUE = isnull(sum(BALANCE),0)
        from @INSTALLMENTS;
    end
    else
        set @PASTDUE = 0;


    return @PASTDUE;
end