UFN_PLEDGE_GETDESIGNATIONBALANCE
Returns the unpaid balance for a given pledge and designation.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PLEDGEID | uniqueidentifier | IN | |
@DESIGNATIONID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_PLEDGE_GETDESIGNATIONBALANCE
(
@PLEDGEID uniqueidentifier,
@DESIGNATIONID uniqueidentifier
)
returns money
with execute as caller
as begin
declare @RESULT money = 0
select
@RESULT = sum(CALCULATED.AMOUNT)
from
(
select
sum(FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT)
- coalesce(
(
select
sum(INSTALLMENTSPLITPAYMENT.AMOUNT)
from
dbo.INSTALLMENTSPLITPAYMENT
inner join INSTALLMENTSPLIT on INSTALLMENTSPLITPAYMENT.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
where
INSTALLMENTSPLITPAYMENT.PLEDGEID = @PLEDGEID and
INSTALLMENTSPLIT.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID and
(INSTALLMENTSPLIT.DESIGNATIONID = @DESIGNATIONID or @DESIGNATIONID is null)
) ,0)
- coalesce(
(
select
sum(INSTALLMENTSPLITWRITEOFF.TRANSACTIONAMOUNT)
from
dbo.WRITEOFF
inner join dbo.INSTALLMENTSPLITWRITEOFF on WRITEOFF.ID = INSTALLMENTSPLITWRITEOFF.WRITEOFFID
inner join INSTALLMENTSPLIT on INSTALLMENTSPLITWRITEOFF.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
where
WRITEOFF.REVENUEID = @PLEDGEID and
INSTALLMENTSPLIT.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID and
(INSTALLMENTSPLIT.DESIGNATIONID = @DESIGNATIONID or @DESIGNATIONID is null)
) ,0) as AMOUNT
from dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = FINANCIALTRANSACTIONLINEITEM.ID
where
FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @PLEDGEID and
FINANCIALTRANSACTIONLINEITEM.DELETEDON is null and
FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1 and
(REVENUESPLIT_EXT.DESIGNATIONID = @DESIGNATIONID or @DESIGNATIONID is null)
group by FINANCIALTRANSACTIONLINEITEM.ID) CALCULATED
return @RESULT
end