UFN_PLEDGE_GETBALANCEASOF_2
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PLEDGEID | uniqueidentifier | IN | |
@ASOFDATE | datetime | IN |
Definition
Copy
CREATE function dbo.UFN_PLEDGE_GETBALANCEASOF_2
(
@PLEDGEID uniqueidentifier,
@ASOFDATE datetime
)
returns money
with execute as caller
as
begin
declare @RESULT money;
select
@RESULT = FINANCIALTRANSACTION.TRANSACTIONAMOUNT -
(coalesce((select
sum(INSTALLMENTSPLITPAYMENT.AMOUNT)
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = @PLEDGEID
--The "GETEARLIESTTIME" date function has been inlined here for performance (the part with "cast(@DATE as date)")...
and cast(FINANCIALTRANSACTION.DATE as date) <= @ASOFDATE
and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1
and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null), 0) +
coalesce((select
sum(INSTALLMENTSPLITWRITEOFF.TRANSACTIONAMOUNT)
from dbo.INSTALLMENTSPLITWRITEOFF
inner join dbo.INSTALLMENTSPLIT on INSTALLMENTSPLITWRITEOFF.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
inner join dbo.WRITEOFF on INSTALLMENTSPLITWRITEOFF.WRITEOFFID = WRITEOFF.ID
where INSTALLMENTSPLIT.PLEDGEID = @PLEDGEID
and WRITEOFF.DATE <= @ASOFDATE), 0))
from dbo.FINANCIALTRANSACTION
where FINANCIALTRANSACTION.ID = @PLEDGEID
and FINANCIALTRANSACTION.DELETEDON is null;
return @RESULT;
end