UFN_CURRENCY_CONVERTINVERSE
Converts an amount from one currency to another using the inverse of a given exchange rate ID.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@AMOUNT | money | IN | |
@CURRENCYEXCHANGERATEID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_CURRENCY_CONVERTINVERSE
(
@AMOUNT money,
@CURRENCYEXCHANGERATEID uniqueidentifier = 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;
select
@DECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@ROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE,
@RATE = cast((1 / CURRENCYEXCHANGERATE.RATE) as decimal(20,8))
from
dbo.CURRENCYEXCHANGERATE
--This is an inverse conversion so the resulting value is in the exchange rate's "from currency"
inner join dbo.CURRENCY on CURRENCY.ID = CURRENCYEXCHANGERATE.FROMCURRENCYID
where
CURRENCYEXCHANGERATE.ID = @CURRENCYEXCHANGERATEID;
set @UNROUNDED = dbo.UFN_CURRENCY_APPLYRATE(@AMOUNT, @RATE);
return dbo.UFN_CURRENCY_ROUND(@UNROUNDED, @DECIMALDIGITS, @ROUNDINGTYPECODE);
end