UFN_PLEDGE_GETBALANCEIGNOREPAYMENT
Returns the unpaid balance for a given pledge, ignoring the given payment.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PLEDGEID | uniqueidentifier | IN | |
@PAYMENTID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_PLEDGE_GETBALANCEIGNOREPAYMENT
(
@PLEDGEID uniqueidentifier,
@PAYMENTID uniqueidentifier
)
returns money
with execute as caller
as begin
declare @RESULT money;
select
@RESULT =
case when REVENUE.TRANSACTIONTYPECODE = 7 then --Auction donations do not have installments
REVENUE.TRANSACTIONAMOUNT -
coalesce(( select
sum(WRITEOFFSPLIT.TRANSACTIONAMOUNT)
from dbo.WRITEOFFSPLIT
inner join dbo.WRITEOFF on WRITEOFF.ID = WRITEOFFSPLIT.WRITEOFFID
where WRITEOFF.REVENUEID = REVENUE.ID
), 0)
else
REVENUE.TRANSACTIONAMOUNT -
(coalesce((select
sum(INSTALLMENTSPLITPAYMENT.AMOUNT)
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.REVENUESPLIT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUE.ID
and REVENUESPLIT.REVENUEID <> @PAYMENTID), 0) +
coalesce((select
sum(INSTALLMENTSPLITWRITEOFF.TRANSACTIONAMOUNT)
from dbo.INSTALLMENTSPLITWRITEOFF
inner join dbo.INSTALLMENTSPLIT on INSTALLMENTSPLITWRITEOFF.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
where INSTALLMENTSPLIT.PLEDGEID = @PLEDGEID), 0))
end
from
dbo.REVENUE
where
REVENUE.ID = @PLEDGEID;
return @RESULT;
end