UFN_CURRENCY_GETCURRENCYVALUES_2
Returns a single-row table with base and organization currency values given a transaction amount, date, base currency, and base exchange rate.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@AMOUNT | money | IN | |
@DATE | datetime | IN | |
@BASECURRENCYID | uniqueidentifier | IN | |
@BASEEXCHANGERATEID | uniqueidentifier | IN | |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN | |
@BASEAMOUNT | money | IN | |
@ORGANIZATIONCURRENCYID | uniqueidentifier | IN | |
@ORGANIZATIONAMOUNT | money | IN | |
@ORGANIZATIONEXCHANGERATEID | uniqueidentifier | IN | |
@LOOKUPORGANIZATIONEXCHANGERATE | bit | IN |
Definition
Copy
CREATE function dbo.UFN_CURRENCY_GETCURRENCYVALUES_2
(
@AMOUNT money,
@DATE datetime,
@BASECURRENCYID uniqueidentifier,
@BASEEXCHANGERATEID uniqueidentifier,
@TRANSACTIONCURRENCYID uniqueidentifier,
@BASEAMOUNT money = null,
@ORGANIZATIONCURRENCYID uniqueidentifier = null,
@ORGANIZATIONAMOUNT money = null,
@ORGANIZATIONEXCHANGERATEID uniqueidentifier = null,
@LOOKUPORGANIZATIONEXCHANGERATE bit = 0
)
returns @VALUES table (
[BASEAMOUNT] money,
[ORGANIZATIONAMOUNT] money,
[BASEEXCHANGERATEID] uniqueidentifier,
[ORGANIZATIONEXCHANGERATEID] uniqueidentifier,
[TRANSACTIONCURRENCYID] uniqueidentifier,
[ORGANIZATIONCURRENCYID] uniqueidentifier,
[BASETOORGANIZATIONEXCHANGERATEID] uniqueidentifier
)
as begin
declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier = null;
--Set the organization currency
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
if @LOOKUPORGANIZATIONEXCHANGERATE is null
set @LOOKUPORGANIZATIONEXCHANGERATE = 0;
if @TRANSACTIONCURRENCYID is null
set @TRANSACTIONCURRENCYID = @BASECURRENCYID;
if @TRANSACTIONCURRENCYID = @BASECURRENCYID
set @BASEAMOUNT = @AMOUNT;
else if @BASEEXCHANGERATEID is null
begin
set @BASEAMOUNT = 0;
end
else
set @BASEAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @BASEEXCHANGERATEID);
declare @ORGANIZATIONAMOUNTORIGINCODE tinyint = 0;
select top 1
@ORGANIZATIONAMOUNTORIGINCODE = ORGANIZATIONAMOUNTORIGINCODE
from
dbo.MULTICURRENCYCONFIGURATION;
if (@BASECURRENCYID = @ORGANIZATIONCURRENCYID) and (@ORGANIZATIONAMOUNTORIGINCODE = 0)
begin
set @ORGANIZATIONAMOUNT = @BASEAMOUNT;
set @ORGANIZATIONEXCHANGERATEID = null;
end
else if (@TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID) and (@ORGANIZATIONAMOUNTORIGINCODE = 1)
begin
set @ORGANIZATIONAMOUNT = @AMOUNT;
set @ORGANIZATIONEXCHANGERATEID = null;
end
else
begin
if (@LOOKUPORGANIZATIONEXCHANGERATE = 1) or (@ORGANIZATIONEXCHANGERATEID is null)
set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTORGANIZATIONRATE(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATE, null, @TRANSACTIONCURRENCYID);
set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@BASEAMOUNT, @ORGANIZATIONEXCHANGERATEID, @AMOUNT);
end
if (@ORGANIZATIONAMOUNTORIGINCODE = 0)
set @BASETOORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID;
else
set @BASETOORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATE, 0, null);
insert into @VALUES
select
@BASEAMOUNT,
@ORGANIZATIONAMOUNT,
@BASEEXCHANGERATEID,
@ORGANIZATIONEXCHANGERATEID,
@TRANSACTIONCURRENCYID,
@ORGANIZATIONCURRENCYID,
@BASETOORGANIZATIONEXCHANGERATEID;
return;
end