UFN_REVENUESPLITGIFTAID_TRANSITIONALREFLIEFEXPIRED
Returns whether the transitional relief for a revenue split record has expired.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUESPLITID | uniqueidentifier | IN | |
@INCLUDETRANSITIONALAMOUNTCODE | tinyint | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUESPLITGIFTAID_TRANSITIONALREFLIEFEXPIRED
(
@REVENUESPLITID uniqueidentifier,
@INCLUDETRANSITIONALAMOUNTCODE tinyint
)
returns bit
as
begin
declare @EXPIRES bit
if @INCLUDETRANSITIONALAMOUNTCODE = 0 -- Calculate
begin
-- Verify that it hasn't been more than 2 years since the end of the accounting period when
-- the gift was submitted
declare @REVENUEDATE datetime
select @REVENUEDATE = cast(REVENUE.DATE as datetime)
from dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT
inner join dbo.FINANCIALTRANSACTION REVENUE on REVENUESPLIT.FINANCIALTRANSACTIONID = REVENUE.ID
where REVENUESPLIT.ID = @REVENUESPLITID
and REVENUE.DELETEDON is null
and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.TYPECODE <> 1
declare @CLASSIFICATIONCODE tinyint
set @CLASSIFICATIONCODE = dbo.UFN_REVENUESPLITGIFTAID_GETCHARITYCLASSIFICATION(@REVENUESPLITID)
-- Transitional relief is only received if the claim is submitted within two years
declare @CUTOFFDATE datetime
if @CLASSIFICATIONCODE = 0 -- Charitable trusts
begin
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
-- Determine if we've passed the current year's tax year end date
declare @ENDOFTAXYEAR datetime
set @ENDOFTAXYEAR = cast(datepart(yyyy, @CURRENTDATE) as nvarchar(4)) + '-04-05'
if dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE) <= @ENDOFTAXYEAR
set @CUTOFFDATE = cast((datepart(yyyy, @CURRENTDATE) - 3) as nvarchar(4)) + '-04-06'
else
set @CUTOFFDATE = cast((datepart(yyyy, @CURRENTDATE) - 2) as nvarchar(4)) + '-04-06'
end
else -- Other charities
begin
set @CUTOFFDATE = dateadd(year, -2, dbo.UFN_DATE_THISFISCALYEAR_FIRSTDAY(getdate(), 0))
end
if @REVENUEDATE >= @CUTOFFDATE
set @EXPIRES = 0
else
set @EXPIRES = 1
end
else if @INCLUDETRANSITIONALAMOUNTCODE = 1 -- Include
set @EXPIRES = 0
else if @INCLUDETRANSITIONALAMOUNTCODE = 2 -- Exclude
set @EXPIRES = 1
return @EXPIRES
end