UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_INCURRENCY

Returns the tax claim amount from the REVENUESPLITGIFTAID record with the given ID.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@ACTUALONLY bit IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


create function dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_INCURRENCY
(
    @ID uniqueidentifier,
    @ACTUALONLY bit,
    @CURRENCYID uniqueidentifier
)
returns money
with execute as caller
as 
begin
    declare @TAXCLAIMAMOUNT money = 0;

    if (@CURRENCYID is null) or (@CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY())
    begin
        select @TAXCLAIMAMOUNT = TAXCLAIMAMOUNT
        from dbo.UFN_REVENUESPLITGIFTAID_GETELIGIBLE_2(@ACTUALONLY,2)
        where ID = @ID;
    end
    else
    begin
        declare @RECORDBASECURRENCYID uniqueidentifier;
        declare @RECORDDATE datetime;

        select
            @RECORDBASECURRENCYID = REVENUESPLIT.BASECURRENCYID,
            @RECORDDATE = REVENUE.DATE
        from dbo.REVENUESPLIT
            inner join dbo.REVENUE on REVENUE.ID = REVENUESPLIT.REVENUEID
        where
            REVENUESPLIT.ID = @ID;

        if @CURRENCYID = @RECORDBASECURRENCYID
        begin
            select @TAXCLAIMAMOUNT = TAXCLAIMAMOUNT
            from dbo.UFN_REVENUESPLITGIFTAID_GETELIGIBLE_2(@ACTUALONLY,0)
            where ID = @ID;
        end
        else
        begin
            declare @CURRENCYEXCHANGERATEID uniqueidentifier;

            set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @CURRENCYID, @RECORDDATE, 1, null);
            if (@CURRENCYEXCHANGERATEID is not null)
            begin
                select
                    @TAXCLAIMAMOUNT = dbo.UFN_CURRENCY_CONVERT(TAXCLAIMAMOUNT, @CURRENCYEXCHANGERATEID)
                from dbo.UFN_REVENUESPLITGIFTAID_GETELIGIBLE_2(@ACTUALONLY,2)
                where ID = @ID;
            end
            else
            begin
                set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);

                select
                    @TAXCLAIMAMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(TAXCLAIMAMOUNT, @CURRENCYEXCHANGERATEID)
                from dbo.UFN_REVENUESPLITGIFTAID_GETELIGIBLE_2(@ACTUALONLY,2)
                where ID = @ID;
            end
        end
    end    

    if @TAXCLAIMAMOUNT is null
    return 0;

    return @TAXCLAIMAMOUNT;
end