📄 c_currency_convert0.sql
字号:
CREATE OR REPLACE FUNCTION C_Currency_Convert0
(
p_Amount IN NUMBER,
p_CurFrom IN VARCHAR2,
p_CurTo IN VARCHAR2,
p_ConvDate IN DATE,
p_RateType IN CHAR, -- DEFAULT 'S' -- Spot
p_Client_ID IN NUMBER,
p_Org_ID IN NUMBER
)
RETURN NUMBER
AS
/*************************************************************************
* The contents of this file are subject to the Compiere License. You may
* obtain a copy of the License at http://www.compiere.org/license.html
* Software is on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the License for details. Code: Compiere ERP+CPM
* Copyright (C) 1999-2001 Jorg Janke, ComPiere, Inc. All Rights Reserved.
*************************************************************************
* $Id: C_Currency_Convert0.sql,v 1.4 2003/03/17 20:32:24 jjanke Exp $
***
* Title: Convert Amount (using currency codes)
* Description:
* from CurrencyFrom_ID to CurrencyTo_ID
* standard precision
* Returns NULL, if conversion not found
* Test:
* SELECT C_Currency_Convert0(100,'CND','USD',null,null) FROM DUAL => 64.72
************************************************************************/
v_CurFrom_ID NUMBER(10) := NULL;
v_CurTo_ID NUMBER(10) := NULL;
BEGIN
-- Nothing to do
IF (p_CurFrom = p_CurTo
OR p_Amount = 0 OR p_Amount IS NULL) THEN
RETURN p_Amount;
END IF;
-- Get Currency_ID
SELECT MAX(C_Currency_ID)
INTO v_CurFrom_ID
FROM C_Currency
WHERE ISO_Code = p_CurFrom;
SELECT MAX(C_Currency_ID)
INTO v_CurTo_ID
FROM C_Currency
WHERE ISO_Code = p_CurTo;
-- Currency not found
IF (v_CurFrom_ID IS NULL OR v_CurTo_ID IS NULL) THEN
RETURN NULL;
END IF;
-- Convert it
RETURN C_Currency_Convert (p_amount, v_CurFrom_ID, v_CurTo_ID, p_ConvDate, p_RateType,
p_Client_ID, p_Org_ID);
END C_Currency_Convert0;
/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -