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