UFN_INSTALLMENT_GETINSTALLMENTBALANCEASOF

Returns the unpaid balance for an installment as of the given date.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@INSTALLMENTID uniqueidentifier IN
@ASOFDATE datetime IN

Definition

Copy


            CREATE function dbo.UFN_INSTALLMENT_GETINSTALLMENTBALANCEASOF
            (
                @INSTALLMENTID uniqueidentifier,
                @ASOFDATE datetime
            )
            returns money
            with execute as caller
            as begin
                declare @BALANCE money;

                select 
                    @BALANCE = INSTALLMENT.TRANSACTIONAMOUNT -
                                    (coalesce((
                                            select sum(INSTALLMENTPAYMENT.AMOUNT)
                                            from dbo.INSTALLMENTPAYMENT
                                                inner join dbo.REVENUESPLIT as PAYMENTSPLIT on INSTALLMENTPAYMENT.PAYMENTID = PAYMENTSPLIT.ID
                                                inner join dbo.REVENUE PAYMENT on PAYMENT.ID = PAYMENTSPLIT.REVENUEID
                                            where INSTALLMENTPAYMENT.INSTALLMENTID = @INSTALLMENTID
                                            and PAYMENT.DATE <= @ASOFDATE), 0)
                                    + coalesce((
                                            select sum(INSTALLMENTWRITEOFF.TRANSACTIONAMOUNT)
                                            from dbo.INSTALLMENTWRITEOFF
                                                inner join dbo.WRITEOFF on INSTALLMENTWRITEOFF.WRITEOFFID = WRITEOFF.ID
                                            where INSTALLMENTWRITEOFF.INSTALLMENTID = @INSTALLMENTID
                                            and WRITEOFF.DATE <= @ASOFDATE), 0))
                from 
                    dbo.INSTALLMENT 
                where 
                    INSTALLMENT.ID = @INSTALLMENTID;

                return @BALANCE;
            end