UFN_INSTALLMENT_GETINSTALLMENTBALANCEIGNOREPAYMENT

Returns the unpaid balance for an installment, ignoring the given payment.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@INSTALLMENTID uniqueidentifier IN
@PAYMENTID uniqueidentifier IN

Definition

Copy


            create function dbo.UFN_INSTALLMENT_GETINSTALLMENTBALANCEIGNOREPAYMENT
            (
                @INSTALLMENTID uniqueidentifier,
                @PAYMENTID uniqueidentifier
            )
            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 on REVENUESPLIT.ID = INSTALLMENTPAYMENT.PAYMENTID
                                    where INSTALLMENTPAYMENT.INSTALLMENTID = @INSTALLMENTID
                                        and REVENUESPLIT.REVENUEID <> @PAYMENTID
                                )
                            , 0
                            + coalesce(
                                (
                                    select 
                                        sum(INSTALLMENTWRITEOFF.TRANSACTIONAMOUNT) 
                                    from dbo.INSTALLMENTWRITEOFF
                                    where INSTALLMENTWRITEOFF.INSTALLMENTID = @INSTALLMENTID
                                )
                            , 0)
                        )
                from 
                    dbo.INSTALLMENT 
                where 
                    INSTALLMENT.ID = @INSTALLMENTID;

                return @BALANCE;
            end