UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY

Converts an amount from one currency to another using the given exchange rate ID.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@BASEAMOUNT money IN
@CURRENCYEXCHANGERATEID uniqueidentifier IN
@TRANSACTIONAMOUNT money IN

Definition

Copy


            CREATE function dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY
            (
                @BASEAMOUNT money,
                @CURRENCYEXCHANGERATEID uniqueidentifier = null,
                @TRANSACTIONAMOUNT money = null
            )
            returns money
            as begin
                declare @DECIMALDIGITS tinyint;
                declare @ROUNDINGTYPECODE tinyint;
                declare @RATE decimal(20,8);
                declare @UNROUNDED decimal(38,9);

                if @CURRENCYEXCHANGERATEID is null
                    return 0;

                -- if the system organization amount source currency is transaction currency, use the @TRANSACTIONAMOUNT parameter in the conversion

                if (@TRANSACTIONAMOUNT is not null) and ((select top 1 ORGANIZATIONAMOUNTORIGINCODE from dbo.MULTICURRENCYCONFIGURATION) = 1)
                    set @BASEAMOUNT = @TRANSACTIONAMOUNT;

                select
                    @DECIMALDIGITS = CURRENCY.DECIMALDIGITS,
                    @ROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE,
                    @RATE = CURRENCYEXCHANGERATE.RATE
                from
                    dbo.CURRENCYEXCHANGERATE
                    inner join dbo.CURRENCY on CURRENCY.ID = CURRENCYEXCHANGERATE.TOCURRENCYID
                where
                    CURRENCYEXCHANGERATE.ID = @CURRENCYEXCHANGERATEID;

                set @UNROUNDED = dbo.UFN_CURRENCY_APPLYRATE(@BASEAMOUNT, @RATE);
                return dbo.UFN_CURRENCY_ROUND(@UNROUNDED, @DECIMALDIGITS, @ROUNDINGTYPECODE);
            end