UFN_GIFTAIDREVENUESPLIT_CALCULATERECURRINGGIFTTAXCLAIMAMOUNT_INLINE
Calculates tax claim amounts for recurring gifts.
Return
Return Type |
---|
table |
Definition
Copy
-- NOTE: Any changes here should also be made in UFN_GIFTAIDREVENUESPLIT_CALCULATENEXTCLAIMAMOUNT_2.
CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATERECURRINGGIFTTAXCLAIMAMOUNT_INLINE()
returns table
as
return
(
select
cast(AMOUNT * (TAXRATE / (100 - TAXRATE)) as money) as TAXCLAIMAMOUNT,
cast(TRANSACTIONAMOUNT * (TAXRATE / (100 - TAXRATE)) as money) as TRANSACTIONTAXCLAIMAMOUNT,
cast(ORGANIZATIONAMOUNT * (TAXRATE / (100 - TAXRATE)) as money) as ORGANIZATIONTAXCLAIMAMOUNT,
ID as REVENUESPLITID
from
(
select
(select top 1 coalesce(RATE,0) + coalesce(TRANSITIONALRATE, 0) from dbo.GIFTAIDTAXRATE where EFFECTIVEDATE <= SCHEDULEDATE order by EFFECTIVEDATE desc) as TAXRATE,
AMOUNT,
TRANSACTIONAMOUNT,
ORGANIZATIONAMOUNT,
ID
from
(
select
case REVENUESCHEDULE.STATUSCODE
when 0 then
case
when REVENUESCHEDULE.NEXTTRANSACTIONDATE > REVENUESCHEDULE.ENDDATE then REVENUESCHEDULE.ENDDATE
else REVENUESCHEDULE.NEXTTRANSACTIONDATE
end
else
coalesce((select DATE from dbo.UFN_RECURRINGGIFT_GETNEXTINSTALLMENTINFO(REVENUESPLIT.FINANCIALTRANSACTIONID, null)), getdate())
end as SCHEDULEDATE,
REVENUESPLIT.BASEAMOUNT as AMOUNT,
REVENUESPLIT.TRANSACTIONAMOUNT,
REVENUESPLIT.ORGAMOUNT as ORGANIZATIONAMOUNT,
REVENUESPLIT.ID
from dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT
inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT.ID = REVENUESPLIT_EXT.ID
inner join dbo.FINANCIALTRANSACTION REVENUE on REVENUESPLIT.FINANCIALTRANSACTIONID = REVENUE.ID
inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
inner join dbo.REVENUESCHEDULE on REVENUESCHEDULE.ID = REVENUE.ID
where
REVENUE.TYPECODE = 2
and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.TYPECODE <> 1
and REVENUE.DELETEDON is null
) as SCHEDULEDATE
) as SCHEDULEWITHTAXRATE
)