Oracle® Retail POS Suite Implementation Guide, Volume 1 – Implementation Solutions Release 14.1 E54475-02 |
|
![]() Previous |
![]() Next |
This chapter describes how to change currencies as well as configure new currencies.
Point-of-Service is configured to support 50 alternate currency tenders. If more currencies need to be supported, make the following updates:
Update the maxAlternateCurrencies property in the application.properties file.
Add the buttons for the additional currencies in the foreigncurrency.xml file. The number of defined buttons must equal the total number of supported currencies.
To switch to another base and alternate currency, perform the following steps:
Set the base currency flag in the primary currency of the currency table. For example, if EUR is the base currency:
update co_cny set FL_CNY_BASE='1' where DE_CNY='EUR'
Remove the base currency flag from any other currencies in that table, for example:
update co_cny set FL_CNY_BASE = '0' where DE_CNY <> 'EUR'
Enforce ordering so that the primary currency is first and the alternate currency is second for the AI_CNY_PRI column in the currency table. Other rows should be ordered, but the specific order is not important. For example, if EUR is base currency and GBP is the alternate:
update co_cny set AI_CNY_PRI=0 where DE_CNY='EUR' update co_cny set AI_CNY_PRI=1 where DE_CNY='GBP' update co_cny set AI_CNY_PRI=2 where DE_CNY='USD' update co_cny set AI_CNY_PRI=3 where DE_CNY='CAD' update co_cny set AI_CNY_PRI=4 where DE_CNY='MXN' update co_cny set AI_CNY_PRI=5 where DE_CNY='JPY'
Add the store safe tenders supported for the new base and alternate currencies. For example, if EUR is the new base currency, add money order tender support for EUR:
insert into le_tnd_str_sf (ID_RPSTY_TND, TY_TND, TY_SB_TND, LU_CNY_ISSG_CY, TS_CRT_RCRD, TS_MDF_RCRD, ID_CNY_ICD ) VALUES ('1','MNYO', ' ', 'EU', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 5);
Remove the store safe tenders that are no longer supported for the old base/alternate currency. For example, if USD if the old base currency, remove money order tender support for USD:
delete from le_tnd_str_sf where LU_CNY_ISSG_CY = 'US' and TY_TND = 'MNYO';
Add exchange rate records for alternate and base currencies into the CO_RT_EXC table based on the new base currency. Delete all exchange rate records based on any previous base currency.
There are some application parameters that must be changed as well:
Tender Group:
CashAccepted
: For example, if EUR is base and GBP is alternate, make sure that the CashAccepted
parameter is changed so that EUR and GBP are selected.
TravelersChecksAccepted
: For EUR as base and GBP as alternate, the values for the TravelersChecksAccepted
parameter should be EURCHK and GBPCHK.
ChecksAccepted
: For EUR as base and GBP as alternate, the values for the ChecksAccepted
parameter should be EURCHK and GBPCHK.
GiftCertificateAccepted
: Change the values to reflect all the currencies accepted (base and alternate). For example the values may be EUR and GBP, or EUR, GBP and USD.
StoreCreditAccepted
: Change the values to reflect all the currencies accepted (base and alternate). For example the values may be EUR and GBP, or EUR, GBP and USD.
Reconciliation Group:
TendersToCountAtTillReconcile
: For EUR as base and GBP as alternate, the values for the TendersToCountAtTillReconcile
parameter should be:
Cash
Check
Credit
Debit
TravelCheck
GiftCert
Coupon
GiftCard
StoreCredit
MallCert
PurchaseOrder
MoneyOrder
GBPCash
GBPTravelCheck
GBPCheck
GBPGiftCert
GBPStoreCredit
Throughout this section, Krona is used as the example new base currency that is being configured. The Krona currency code is SEK, and the issuing country code is SE.
The following SQL configurations for currency are available.
A new record describing the new currency information such as its currency code, issuing country code and so on, must be inserted into this table.
In the base currency flag column FL_CNY_BASE, the new currency must be set to 1 indicating that it is the base. The flag for other currencies must be set to 0, indicating that they are alternate currencies.
Note: Point-of-Service supports base-plus-one alternate currency. The priority column AI_CNY_PRI must be set to 0 for the new base currency. It must be set to 1 for the supported alternate currency. For other alternate currencies, they must be ordered and greater than 1, but the specific order is not important. |
Example 8-1 Add Krona as Base to Currency Table CO_CNY
INSERT INTO CO_CNY (ID_CNY_ICD, LU_CNY_ISSG_CY, CD_CNY_ISO, DE_CNY, DE_CNY_ISSG_NAT, FL_CNY_BASE, QU_CNY_SCLE, AI_CNY_PRI) VALUES (7,'SE', 'SEK', 'SEK', 'Sweden', '1', 2, 0); UPDATE CO_CNY SET FL_CNY_BASE = '0' WHERE CD_CNY_ISO <> 'SEK'; UPDATE CO_CNY SET AI_CNY_PRI = AI_CNY_PRI + 1 WHERE CD_CNY_ISO <> 'SEK';
Denominations for the new base currency must be added to the CO_CNY_DNM and CO_CNY_DNM_I8 tables. For example:
Example 8-2 Add Krona Denominations to Denomination Table CO_CNY_DNM
INSERT INTO CO_CNY_DNM (ID_CNY_ICD, ID_CNY_DNM, NM_DNM, VL_DNM, CD_DNM_DPLY_PRI) VALUES (7, 1, 'SE_50Ores', '0.50', 1); INSERT INTO CO_CNY_DNM (ID_CNY_ICD, ID_CNY_DNM, NM_DNM, VL_DNM, CD_DNM_DPLY_PRI) VALUES (7, 2, 'SE_1Kronas', '1.00', 2); INSERT INTO CO_CNY_DNM (ID_CNY_ICD, ID_CNY_DNM, NM_DNM, VL_DNM, CD_DNM_DPLY_PRI) VALUES (7, 3, 'SE_5Kronas', '5.00', 3); INSERT INTO CO_CNY_DNM (ID_CNY_ICD, ID_CNY_DNM, NM_DNM, VL_DNM, CD_DNM_DPLY_PRI) VALUES (7, 4, 'SE_10Kronas', '10.00', 4); INSERT INTO CO_CNY_DNM (ID_CNY_ICD, ID_CNY_DNM, NM_DNM, VL_DNM, CD_DNM_DPLY_PRI) VALUES (7, 5, 'SE_20Kronas', '20.00', 5); INSERT INTO CO_CNY_DNM (ID_CNY_ICD, ID_CNY_DNM, NM_DNM, VL_DNM, CD_DNM_DPLY_PRI) VALUES (7, 6, 'SE_50Kronas', '50.00', 6); INSERT INTO CO_CNY_DNM (ID_CNY_ICD, ID_CNY_DNM, NM_DNM, VL_DNM, CD_DNM_DPLY_PRI) VALUES (7, 7, 'SE_100Kronas', '100.00', 7); INSERT INTO CO_CNY_DNM (ID_CNY_ICD, ID_CNY_DNM, NM_DNM, VL_DNM, CD_DNM_DPLY_PRI) VALUES (7, 8, 'SE_1000Kronas', '1000.00', 8);
Example 8-3 Add Krona Denominations to I8 Table CO_CNY_DNM_I8
INSERT INTO CO_CNY_DNM_I8 (ID_CNY_ICD, ID_CNY_DNM, LCL, NM_DNM) VALUES (7, 2,'en','1 Kronas'); INSERT INTO CO_CNY_DNM_I8 (ID_CNY_ICD, ID_CNY_DNM, LCL, NM_DNM) VALUES (7, 2,'fr','1 couronne');
Note: For each denomination record in the CON_CNY_DNM table, there are I8 records in the CO_CNY_DNM_I8 table, one for each supported language. |
Add exchange rate records for alternate and base currencies into the CO_RT_EXC table based on the new base currency. Delete all exchange rate records based on any previous base currency. For example:
Example 8-4 Add Alternate Currency Exchange Rates to Krona
-- Delete all the existing records Delete from CO_RT_EXC; INSERT INTO CO_RT_EXC (LL_CNY_EXC, DC_RT_EXC_EF, DC_RT_EXC_EP, ID_CNY_ICD, MO_RT_TO_BUY, MO_RT_TO_SL, MO_FE_SV_EXC) VALUES(0.00, TO_DATE('1990-01-01', 'YYYY-MM-DD'), TO_DATE('2099-12-31', 'YYYY-MM-DD'), 1, 6.3337, 6.3362, 0.00); INSERT INTO CO_RT_EXC (LL_CNY_EXC, DC_RT_EXC_EF, DC_RT_EXC_EP, ID_CNY_ICD, MO_RT_TO_BUY, MO_RT_TO_SL, MO_FE_SV_EXC) VALUES(0.00, TO_DATE('1990-01-01', 'YYYY-MM-DD'), TO_DATE('2099-12-31', 'YYYY-MM-DD'), 2, 6.2849, 6.2898, 0.00); INSERT INTO CO_RT_EXC (LL_CNY_EXC, DC_RT_EXC_EF, DC_RT_EXC_EP, ID_CNY_ICD, MO_RT_TO_BUY, MO_RT_TO_SL, MO_FE_SV_EXC) VALUES(0.00, TO_DATE('1990-01-01', 'YYYY-MM-DD'), TO_DATE('2099-12-31', 'YYYY-MM-DD'), 3, 0.5799, 0.5816, 0.00); INSERT INTO CO_RT_EXC (LL_CNY_EXC, DC_RT_EXC_EF, DC_RT_EXC_EP, ID_CNY_ICD, MO_RT_TO_BUY, MO_RT_TO_SL, MO_FE_SV_EXC) VALUES(0.00, TO_DATE('1990-01-01', 'YYYY-MM-DD'), TO_DATE('2099-12-31', 'YYYY-MM-DD'), 4, 12.434, 12.441, 0.00); INSERT INTO CO_RT_EXC (LL_CNY_EXC, DC_RT_EXC_EF, DC_RT_EXC_EP, ID_CNY_ICD, MO_RT_TO_BUY, MO_RT_TO_SL, MO_FE_SV_EXC) VALUES(0.00, TO_DATE('1990-01-01', 'YYYY-MM-DD'), TO_DATE('2099-12-31', 'YYYY-MM-DD'), 5, 9.3739, 9.3796, 0.00); INSERT INTO CO_RT_EXC (LL_CNY_EXC, DC_RT_EXC_EF, DC_RT_EXC_EP, ID_CNY_ICD, MO_RT_TO_BUY, MO_RT_TO_SL, MO_FE_SV_EXC) VALUES(0.00, TO_DATE('1990-01-01', 'YYYY-MM-DD'), TO_DATE('2099-12-31', 'YYYY-MM-DD'), 6, 0.05782, 0.05786, 0.00); INSERT INTO CO_RT_EXC (LL_CNY_EXC, DC_RT_EXC_EF, DC_RT_EXC_EP, ID_CNY_ICD, MO_RT_TO_BUY, MO_RT_TO_SL, MO_FE_SV_EXC) VALUES(0.00, TO_DATE('1990-01-01', 'YYYY-MM-DD'), TO_DATE('2099-12-31', 'YYYY-MM-DD'), 7, 1.0, 1.0, 0.00);
Add the store safe tenders supported for the new base currency. For example:
Example 8-5 Add Store Safe Tenders for Krona
INSERT INTO LE_TND_STR_SF ( ID_RPSTY_TND, TY_TND, TY_SB_TND, LU_CNY_ISSG_CY, TS_CRT_RCRD, TS_MDF_RCRD, ID_CNY_ICD ) VALUES('1','CASH', ' ', 'SE', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 7); INSERT INTO LE_TND_STR_SF ( ID_RPSTY_TND, TY_TND, TY_SB_TND, LU_CNY_ISSG_CY, TS_CRT_RCRD, TS_MDF_RCRD, ID_CNY_ICD ) VALUES('1','CHCK', ' ', 'SE', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 7); INSERT INTO LE_TND_STR_SF ( ID_RPSTY_TND, TY_TND, TY_SB_TND, LU_CNY_ISSG_CY, TS_CRT_RCRD, TS_MDF_RCRD, ID_CNY_ICD ) VALUES('1','TRAV', ' ', 'SE', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 7); -- MoneyOrderSafeTender INSERT INTO LE_TND_STR_SF (ID_RPSTY_TND, TY_TND, TY_SB_TND, LU_CNY_ISSG_CY, TS_CRT_RCRD, TS_MDF_RCRD, ID_CNY_ICD ) VALUES ('1','MNYO', ' ', 'SE', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 7);
Money Order Tenders are only accepted for base currency, therefore before inserting records for the new base currency, delete any money order tenders for the other currencies:
DELETE * from LE_TND_STR_SF where ty_tnd='MNYO'
The following tender parameters must be updated to include the new base currency:
StoreCreditsAccepted
ChecksAccepted
CashAccepted
GiftCertificatesAccepted
TravelersChecksAccepted
The reconciliation parameter TendersToCountAtTillReconcile parameter must include all the tenders to count for both base and alternate currencies during till reconciliation. For example:
Example 8-6 Parameters to Support Krona as the Base and USD as the Alternate Currency
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE SOURCE PUBLIC "SOURCE" "classpath://com/extendyourstore/foundation/tour/dtd/paramsourcescript.dtd"> <SOURCE name="register"> <GROUP hidden="N" name="Tender"> <PARAMETER final="N" hidden="N" name="StoreCreditsAccepted" type="LIST"> <VALIDATOR class="EnumeratedListValidator" package="oracle.retail.stores.foundation.manager.parameter"> <PROPERTY propname="member" propvalue="None"/> <PROPERTY propname="member" propvalue="USD"/> <PROPERTY PROPNAME="MEMBER" PROPVALUE="SEK"/> <PROPERTY PROPNAME="MEMBER" PROPVALUE="EUR"/> </VALIDATOR> <VALUE value="SEK"/> <VALUE value="USD"/> <VALUE value="EUR"/> </PARAMETER> <PARAMETER final="N" hidden="N" name="ChecksAccepted" type="LIST"> <VALIDATOR class="EnumeratedListValidator" package="oracle.retail.stores.foundation.manager.parameter"> <PROPERTY propname="member" propvalue="None"/> <PROPERTY propname="member" propvalue="USDCHK"/> <PROPERTY propname="member" propvalue="SEKCHK"/> <PROPERTY propname="member" propvalue="EURCHK"/> </VALIDATOR> <VALUE value="SEKCHK"/> <VALUE value="USDCHK"/> </PARAMETER> <PARAMETER final="N" hidden="N" name="CashAccepted" type="LIST"> <VALIDATOR class="EnumeratedListValidator" package="oracle.retail.stores.foundation.manager.parameter"> <PROPERTY propname="member" propvalue="None"/> <PROPERTY propname="member" propvalue="USD"/> <PROPERTY propname="member" propvalue="SEK"/> <PROPERTY propname="member" propvalue="EUR"/> </VALIDATOR> <VALUE value="SEK"/> <VALUE value="USD"/> </PARAMETER> <PARAMETER final="N" hidden="N" name="GiftCertificatesAccepted" type="LIST"> <VALIDATOR class="EnumeratedListValidator" package="oracle.retail.stores.foundation.manager.parameter"> <PROPERTY propname="member" propvalue="None"/> <PROPERTY propname="member" propvalue="USD"/> <PROPERTY propname="member" propvalue="SEK"/> <PROPERTY propname="member" propvalue="EUR"/> </VALIDATOR> <VALUE value="SEK"/> </PARAMETER> <PARAMETER final="N" hidden="N" name="TravelersChecksAccepted" type="LIST"> <VALIDATOR class="EnumeratedListValidator" package="oracle.retail.stores.foundation.manager.parameter"> <PROPERTY propname="member" propvalue="None"/> <PROPERTY propname="member" propvalue="USDCHK"/> <PROPERTY propname="member" propvalue="SEKCHK"/> <PROPERTY propname="member" propvalue="EURCHK"/> </VALIDATOR> <VALUE value="SEKCHK"/> <VALUE value="USDCHK"/> Configuring a New Base Currency Appendix: Changing and Configuring a New Base Currency D-7 </PARAMETER> </GROUP> <GROUP hidden="N" name="Reconciliation"> <PARAMETER final="N" hidden="N" name="TendersToCountAtTillReconcile" type="LIST"> <VALIDATOR class="EnumeratedListValidator" package="oracle.retail.stores.foundation.manager.parameter"> <PROPERTY propname="member" propvalue="Cash"/> <PROPERTY propname="member" propvalue="Check"/> <PROPERTY propname="member" propvalue="ECheck"/> <PROPERTY propname="member" propvalue="Credit"/> <PROPERTY propname="member" propvalue="Debit"/> <PROPERTY propname="member" propvalue="TravelCheck"/> <PROPERTY propname="member" propvalue="GiftCert"/> <PROPERTY propname="member" propvalue="Coupon"/> <PROPERTY propname="member" propvalue="GiftCard"/> <PROPERTY propname="member" propvalue="StoreCredit"/> <PROPERTY propname="member" propvalue="MallCert"/> <PROPERTY propname="member" propvalue="PurchaseOrder"/> <PROPERTY propname="member" propvalue="MoneyOrder"/> <PROPERTY propname="member" propvalue="USDCash"/> <PROPERTY propname="member" propvalue="USDTravelCheck"/> <PROPERTY propname="member" propvalue="USDCheck"/> <PROPERTY propname="member" propvalue="USDGiftCert"/> <PROPERTY propname="member" propvalue="USDStoreCredit"/> </VALIDATOR> <VALUE value="Cash"/> <VALUE value="Check"/> <VALUE value="ECheck"/> <VALUE value="Credit"/> <VALUE value="Debit"/> <VALUE value="TravelCheck"/> <VALUE value="GiftCert"/> <VALUE value="Coupon"/> <VALUE value="GiftCard"/> <VALUE value="StoreCredit"/> <VALUE value="MallCert"/> <VALUE value="PurchaseOrder"/> <VALUE value="MoneyOrder"/> <VALUE value="USDCash"/> <VALUE value="USDTravelCheck"/> <VALUE value="USDCheck"/> <VALUE value="USDGiftCert"/> <VALUE value="USDStoreCredit"/> </PARAMETER> </GROUP> </SOURCE>
New resource bundle keys that describe the new currency, including its issuing country, must be added to the following Point-of-Service resource bundles:
commonText
ejournalText
tillText
dailyOperationsText
parameterText
Example 8-7 New commonText Resource Bundle Keys
# # Supported Nationalities Common.SE_Nationality=Swedish # # Supported Currencies Common.SEK=Swedish Krona # # Supported Checks Common.SEKCHK=Swedish Krona # # Tender Types # Common.SEKCash=SEK Cash Common.SEKCheck=SEK Check Common.SEKTravCheck=SEK Trav. Check
Example 8-9 tillText Resource Bundle Keys
SelectTenderSpec.SelectSEK=SEK Add example for dailyOperations Resource Bundle Keys: FinancialTotalsSummaryEntrySpec.CURRCODE_SE=SEK Add example for parameterText Resource Bundle Keys: Common.SEKCash=SEK Cash Common.SEK TravelCheck=SEK Traveler's Check Common.SEK Check=SEK Check Common.SEK GiftCert=SEK Gift Certificate Common.SEK StoreCredit=SEK Store Credit Common.SEKGiftCard=SEK Gift Card