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