UFN_PAYMENT_AMOUNTS
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FINANCIALTRANSACTIONID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_PAYMENT_AMOUNTS(@FINANCIALTRANSACTIONID uniqueidentifier)
returns table
as return (
with REFUNDS_CTE as (
select isnull(sum(AMOUNT), 0) as REFUNDED
from dbo.CREDITPAYMENT
where REVENUEID = @FINANCIALTRANSACTIONID
),
APPLIED_CTE as (
select
isnull(
sum(
case REVENUESPLIT_EXT.TYPECODE
when 20 then 0 -- Overage
else LI.BASEAMOUNT
end
), 0) as APPLIED,
isnull(
sum(
case REVENUESPLIT_EXT.TYPECODE
when 20 then LI.BASEAMOUNT -- Overage
else 0
end
), 0) as OVERAGEKEPT
from
dbo.FINANCIALTRANSACTIONLINEITEM as LI
inner join
dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = LI.ID
where
LI.FINANCIALTRANSACTIONID = @FINANCIALTRANSACTIONID
and LI.DELETEDON is null
and LI.TYPECODE = 0 -- Standard
and REVENUESPLIT_EXT.TYPECODE <> 19 -- Unearned revenue
)
select
isnull(FT.BASEAMOUNT, 0) as AMOUNT,
REFUNDS_CTE.REFUNDED as REFUNDED,
APPLIED_CTE.APPLIED as APPLIED,
APPLIED_CTE.OVERAGEKEPT as OVERAGEKEPT,
isnull((FT.BASEAMOUNT - REFUNDS_CTE.REFUNDED - APPLIED_CTE.APPLIED - APPLIED_CTE.OVERAGEKEPT), 0) as OVERAGE
from
dbo.FINANCIALTRANSACTION as FT
outer apply
REFUNDS_CTE
outer apply
APPLIED_CTE
where
FT.ID = @FINANCIALTRANSACTIONID
)