x
1
DECLARE
2
v_PayAmt NUMERIC;
3
v_ConversionType_ID NUMERIC;
4
v_Client_ID NUMERIC;
5
v_Org_ID NUMERIC;
6
v_Currency_ID NUMERIC;
7
v_CurrencyRate NUMERIC;
8
v_ConvertedAmt NUMERIC;
9
v_DateAcct timestamp with time zone;
10
v_BaseCurrency_ID NUMERIC;
11
v_IsOverrideCurrencyRate character(1);
12
BEGIN
13
SELECT AD_Client_ID, AD_Org_ID, DateAcct, C_Currency_ID, C_ConversionType_ID, CurrencyRate, ConvertedAmt, PayAmt, IsOverrideCurrencyRate
14
INTO v_Client_ID, v_Org_ID, v_DateAcct, v_Currency_ID, v_ConversionType_ID, v_CurrencyRate, v_ConvertedAmt, v_PayAmt, v_IsOverrideCurrencyRate
15
FROM C_Payment_V
16
WHERE C_Payment_ID=p_C_Payment_ID;
17
18
SELECT sc.C_Currency_ID
19
INTO v_BaseCurrency_ID
20
FROM AD_ClientInfo ci
21
JOIN C_AcctSchema sc ON ci.C_AcctSchema1_ID=sc.C_AcctSchema_ID
22
WHERE ci.AD_Client_ID=v_Client_ID;
23
24
IF v_BaseCurrency_ID=p_Currency_To_id AND Coalesce(v_CurrencyRate,0) > 0 AND Coalesce(v_ConvertedAmt,0) != 0 AND v_Currency_ID != p_Currency_To_id AND v_IsOverrideCurrencyRate='Y' THEN
25
IF p_Amt IS NULL THEN
26
RETURN v_ConvertedAmt;
27
ELSE
28
RETURN currencyRound(p_Amt*v_CurrencyRate, p_Currency_To_id, null);
29
END IF;
30
END IF;
31
32
RETURN currencyConvert(Coalesce(p_Amt,v_PayAmt), v_Currency_ID, p_Currency_To_id, Coalesce(p_conversionDate,v_DateAcct), v_ConversionType_ID, v_Client_ID, v_Org_ID);
33
END;