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