UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETAXCLAIMAMOUNT
Returns the tax claim amount for a pledge split.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PLEDGESPLITID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETAXCLAIMAMOUNT
(
@PLEDGESPLITID uniqueidentifier
)
returns table
as
return
(
select
coalesce(sum(INSTALLMENTSPLITAMOUNT * (BASETAXRATE / (100 - BASETAXRATE))), 0) as BASETAXCLAIMAMOUNT,
coalesce(sum(INSTALLMENTSPLITAMOUNT * ((BASETAXRATE + TRANSITIONALTAXRATE) / (100 - (BASETAXRATE + TRANSITIONALTAXRATE)))), 0) - coalesce(sum(INSTALLMENTSPLITAMOUNT * (BASETAXRATE / (100 - BASETAXRATE))), 0) as TRANSITIONALTAXCLAIMAMOUNT
from
(
select
INSTALLMENTSPLITAMOUNT,
case
when ELIGIBILEANDVALIDDECLARATION = 1 then dbo.UFN_GETGIFTAIDBASETAXRATE(INSTALLMENTS.DATE)
else 0
end BASETAXRATE,
case
when ELIGIBILEANDVALIDDECLARATION = 1 then dbo.UFN_GETGIFTAIDTRANSITIONALTAXRATE(INSTALLMENTS.DATE)
else 0
end TRANSITIONALTAXRATE
from
(
select
INSTALLMENT.DATE,
INSTALLMENTSPLIT.AMOUNT - coalesce((select sum(AMOUNT) from dbo.INSTALLMENTSPLITWRITEOFF where INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID), 0) as INSTALLMENTSPLITAMOUNT,
case when (REVENUESPLITGIFTAID.RULES_STATUS & REVENUESPLITGIFTAID.ATTRIBUTES_STATUS) = 1 and (dbo.UFN_VALIDDECLARATION(INSTALLMENT.DATE, REVENUE.CONSTITUENTID, REVENUESPLIT.DESIGNATIONID, null, null) = 2 or ISCOVENANT = 1)
then 1
else 0
end ELIGIBILEANDVALIDDECLARATION
from dbo.REVENUESPLIT
inner join dbo.REVENUE on REVENUESPLIT.REVENUEID = REVENUE.ID
inner join dbo.INSTALLMENTSPLIT on REVENUESPLIT.REVENUEID = INSTALLMENTSPLIT.PLEDGEID and REVENUESPLIT.DESIGNATIONID = INSTALLMENTSPLIT.DESIGNATIONID
inner join dbo.INSTALLMENT on INSTALLMENTSPLIT.INSTALLMENTID = INSTALLMENT.ID
left join dbo.REVENUESPLITGIFTAID on REVENUESPLIT.ID = REVENUESPLITGIFTAID.ID
where
REVENUESPLIT.ID = @PLEDGESPLITID and
REVENUESPLITGIFTAID.DECLINESGIFTAID = 0
) as INSTALLMENTS
) as INSTALLMENTSWITHRATE
)