UFN_GIFTAID_GETTAXCLAIMAMOUNTINCURRENCY

Returns the tax claim amount in the given currency.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@REVENUESPLITID uniqueidentifier IN
@TRANSACTIONTYPECODE tinyint IN
@APPLICATIONCODE tinyint IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


      CREATE function dbo.UFN_GIFTAID_GETTAXCLAIMAMOUNTINCURRENCY (
        @REVENUESPLITID uniqueidentifier,
        @TRANSACTIONTYPECODE tinyint,
        @APPLICATIONCODE tinyint,
        @CURRENCYID uniqueidentifier
      )
      returns money
      as
      begin
          declare @AMOUNT money = 0;

          if (@CURRENCYID is null) or (@CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY())
          set @AMOUNT = dbo.UFN_REVENUESPLIT_GETTAXCLAIMAMOUNT_2(@REVENUESPLITID, @TRANSACTIONTYPECODE, @APPLICATIONCODE, 2)
        else
        begin
              declare @RECORDBASECURRENCYID uniqueidentifier;
              declare @RECORDDATE datetime;

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

              if @CURRENCYID = @RECORDBASECURRENCYID
            set @AMOUNT = dbo.UFN_REVENUESPLIT_GETTAXCLAIMAMOUNT_2(@REVENUESPLITID, @TRANSACTIONTYPECODE, @APPLICATIONCODE, 0)
              else
              begin            
                  declare @CURRENCYEXCHANGERATEID uniqueidentifier;

                  set @AMOUNT = dbo.UFN_REVENUESPLIT_GETTAXCLAIMAMOUNT_2(@REVENUESPLITID, @TRANSACTIONTYPECODE, @APPLICATIONCODE, 2)

                  set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @CURRENCYID, @RECORDDATE, 1, null);
                  if (@CURRENCYEXCHANGERATEID is not null)
                          set @AMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @CURRENCYEXCHANGERATEID)
                  else
                  begin
                      set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);             
                        set @AMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(@AMOUNT, @CURRENCYEXCHANGERATEID)
                  end
          end
        end

        return @AMOUNT;
      end