USP_DATALIST_CONVERTISOCURRENCY

Converts an amount from one ISO currency to another if the necessary exchange rates exist

Parameters

Parameter Parameter Type Mode Description
@SOURCEISO nvarchar(3) IN Source ISO
@TARGETISO nvarchar(3) IN Target ISO
@AMOUNT money IN Amount
@DATE datetime IN Date

Definition

Copy


CREATE procedure dbo.USP_DATALIST_CONVERTISOCURRENCY
(
@SOURCEISO nvarchar(3),
@TARGETISO nvarchar(3),
@AMOUNT money,
@DATE datetime = null
)
as
    set nocount on;

  declare @SOURCECURRENCYID uniqueidentifier
  declare @TARGETCURRENCYID uniqueidentifier
  declare @EXCHANGERATES table ([ID] int identity, [EXCHANGERATEID] uniqueidentifier, [RATE] decimal(20,8), [FROMDECIMALDIGITS] tinyint, [FROMROUNDINGCODE] tinyint, [TODECIMALDIGITS] tinyint, [TOROUNDINGCODE] tinyint, [DESC] nvarchar(200))

  select @SOURCECURRENCYID = ID from dbo.CURRENCY C where C.ISO4217 = @SOURCEISO
  select @TARGETCURRENCYID = ID from dbo.CURRENCY C where C.ISO4217 = @TARGETISO

  insert into @EXCHANGERATES
  exec USP_CURRENCYEXCHANGERATELOOKUP_DATALIST @SOURCECURRENCYID, @TARGETCURRENCYID, 1, @DATE

  declare @EXCHANGERATEID uniqueidentifier
  select top 1 @EXCHANGERATEID = [EXCHANGERATEID] from @EXCHANGERATES order by ID asc

  if @EXCHANGERATEID is not null
    select dbo.UFN_CURRENCY_CONVERT(@AMOUNT,@EXCHANGERATEID)