UFN_GIFTAIDREVENUESPLIT_CALCULATENEXTCLAIMAMOUNT
Calculates the next claim amount for a gift, which could potentially have a different tax rate than the current/last gift.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATENEXTCLAIMAMOUNT
(
@ID uniqueidentifier
)
returns money
with execute as caller
as
begin
declare @TAXCLAIMAMOUNT money;
declare @TAXRATE numeric(30,6);
declare @SPLITAMOUNT money;
declare @DATE datetime;
select @DATE = case when REVENUESCHEDULE.NEXTTRANSACTIONDATE > REVENUESCHEDULE.ENDDATE then REVENUESCHEDULE.ENDDATE else REVENUESCHEDULE.NEXTTRANSACTIONDATE end,
@SPLITAMOUNT = REVENUESPLIT.BASEAMOUNT
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
left join dbo.REVENUESCHEDULE on REVENUESCHEDULE.ID = REVENUE.ID
where REVENUESPLIT.ID = @ID
and REVENUE.TYPECODE in (0,1,2,3,4,5,6,7,8,9,15) and REVENUESPLIT.DELETEDON is null and REVENUESPLIT.TYPECODE != 1;
set @TAXRATE = dbo.UFN_GETGIFTAIDBASETAXRATE(@DATE) + dbo.UFN_GETGIFTAIDTRANSITIONALTAXRATE(@DATE);
set @TAXCLAIMAMOUNT = @SPLITAMOUNT * (@TAXRATE/(100 - @TAXRATE));
return @TAXCLAIMAMOUNT;
end