UFN_GIFTAID_GETTRANSITIONALTAXCLAIMAMOUNTINCURRENCY

Returns the transitional tax claim amount in the given currency.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@REVENUESPLITID uniqueidentifier IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


         CREATE function dbo.UFN_GIFTAID_GETTRANSITIONALTAXCLAIMAMOUNTINCURRENCY(
                @REVENUESPLITID uniqueidentifier,
                @CURRENCYID uniqueidentifier
        )
        returns money
        as
        begin

            declare @AMOUNT money = 0;

            if (@CURRENCYID is null) or (@CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY())
            begin
                select
                    @AMOUNT = ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT
                from
                    dbo.REVENUESPLITGIFTAID
                where
                    REVENUESPLITGIFTAID.ID = @REVENUESPLITID
            end
            else
            begin
                declare @RECORDBASECURRENCYID uniqueidentifier;
                declare @RECORDDATE datetime;

                select
                    @RECORDBASECURRENCYID = REVENUESPLITGIFTAID.BASECURRENCYID,
                    @RECORDDATE = REVENUESPLITGIFTAID.DATEADDED
                from
                    dbo.REVENUESPLITGIFTAID
                where
                    REVENUESPLITGIFTAID.ID = @REVENUESPLITID;

                if @CURRENCYID = @RECORDBASECURRENCYID
                begin
                    select
                        @AMOUNT = TRANSITIONALTAXCLAIMAMOUNT
                    from
                        dbo.REVENUESPLITGIFTAID
                    where
                        REVENUESPLITGIFTAID.ID = @REVENUESPLITID
                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
                            @AMOUNT = dbo.UFN_CURRENCY_CONVERT(REVENUESPLITGIFTAID.ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT, @CURRENCYEXCHANGERATEID)
                        from
                            dbo.REVENUESPLITGIFTAID
                        where
                            REVENUESPLITGIFTAID.ID = @REVENUESPLITID;
                    end
                    else
                    begin
                        set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);

                        select
                            @AMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(REVENUESPLITGIFTAID.ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT, @CURRENCYEXCHANGERATEID)
                        from
                            dbo.REVENUESPLITGIFTAID
                        where
                            REVENUESPLITGIFTAID.ID = @REVENUESPLITID;
                    end
                end
            end    
            return @AMOUNT;
        end