details: https://code.openbravo.com/erp/stable/2.50/rev/70cf0f2524a8
changeset: 9746:70cf0f2524a8
user: Javier Etxarri <javier.echarri <at> openbravo.com>
date: Wed Nov 16 09:31:51 2011 +0100
summary: Fixes issue 18716:
The application use the currency of the Accounting schema's organization as
foreign currency
diffstat:
src-db/database/model/tables/AD_ORG.xml | 7 ++++
src-db/database/sourcedata/AD_COLUMN.xml | 33 ++++++++++++++++++
src-db/database/sourcedata/AD_FIELD.xml | 35 ++++++++++++++++---
src/org/openbravo/base/secureApp/Attribute_data.xsql | 17 +++++++++-
src/org/openbravo/base/secureApp/LoginUtils.java | 11 +++++-
5 files changed, 95 insertions(+), 8 deletions(-)
diffs (221 lines):
diff -r 9410fface38a -r 70cf0f2524a8 src-db/database/model/tables/AD_ORG.xml
--- a/src-db/database/model/tables/AD_ORG.xml Wed Nov 16 09:23:46 2011 +0100
+++ b/src-db/database/model/tables/AD_ORG.xml Wed Nov 16 09:31:51 2011 +0100
@@ -65,6 +65,10 @@
<default/>
<onCreateDefault/>
</column>
+ <column name="C_CURRENCY_ID" primaryKey="false" required="false"
type="VARCHAR" size="32" autoIncrement="false">
+ <default/>
+ <onCreateDefault/>
+ </column>
<foreign-key foreignTable="AD_CLIENT" name="AD_ORG_AD_CLIENT">
<reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
</foreign-key>
@@ -74,6 +78,9 @@
<foreign-key foreignTable="C_CALENDAR" name="AD_ORG_C_CALENDAR">
<reference local="C_CALENDAR_ID" foreign="C_CALENDAR_ID"/>
</foreign-key>
+ <foreign-key foreignTable="C_CURRENCY" name="AD_ORG_C_CURRENCY">
+ <reference local="C_CURRENCY_ID" foreign="C_CURRENCY_ID"/>
+ </foreign-key>
<unique name="AD_ORG_VALUE">
<unique-column name="AD_CLIENT_ID"/>
<unique-column name="VALUE"/>
diff -r 9410fface38a -r 70cf0f2524a8 src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml Wed Nov 16 09:23:46 2011 +0100
+++ b/src-db/database/sourcedata/AD_COLUMN.xml Wed Nov 16 09:31:51 2011 +0100
@@ -301042,6 +301042,39 @@
<!--8208AE0F929A4E3CA8FA6E09C2951D6C-->
<VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
<!--8208AE0F929A4E3CA8FA6E09C2951D6C--></AD_COLUMN>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--><AD_COLUMN>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<AD_COLUMN_ID><![CDATA[821C2ABBBEF440CBB97CA03DB83D9883]]></AD_COLUMN_ID>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <NAME><![CDATA[Currency]]></NAME>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <DESCRIPTION><![CDATA[An accepted
medium of monetary exchange that may vary across countries.]]></DESCRIPTION>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <HELP><![CDATA[Indicates the currency
to be used when processing this document.]]></HELP>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<COLUMNNAME><![CDATA[C_Currency_ID]]></COLUMNNAME>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<AD_TABLE_ID><![CDATA[155]]></AD_TABLE_ID>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <ISKEY><![CDATA[N]]></ISKEY>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <SEQNO><![CDATA[61]]></SEQNO>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<AD_ELEMENT_ID><![CDATA[193]]></AD_ELEMENT_ID>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <POSITION><![CDATA[17]]></POSITION>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--821C2ABBBEF440CBB97CA03DB83D9883-->
<VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--821C2ABBBEF440CBB97CA03DB83D9883--></AD_COLUMN>
+
<!--828EE0AE7FCD5FA1E040007F010067C7--><AD_COLUMN>
<!--828EE0AE7FCD5FA1E040007F010067C7-->
<AD_COLUMN_ID><![CDATA[828EE0AE7FCD5FA1E040007F010067C7]]></AD_COLUMN_ID>
<!--828EE0AE7FCD5FA1E040007F010067C7-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 9410fface38a -r 70cf0f2524a8 src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml Wed Nov 16 09:23:46 2011 +0100
+++ b/src-db/database/sourcedata/AD_FIELD.xml Wed Nov 16 09:31:51 2011 +0100
@@ -6174,7 +6174,7 @@
<!--442--> <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
<!--442--> <DISPLAYLENGTH><![CDATA[60]]></DISPLAYLENGTH>
<!--442--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
-<!--442--> <SEQNO><![CDATA[70]]></SEQNO>
+<!--442--> <SEQNO><![CDATA[80]]></SEQNO>
<!--442--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
<!--442--> <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
<!--442--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
@@ -10543,7 +10543,7 @@
<!--882--> <AD_TAB_ID><![CDATA[160]]></AD_TAB_ID>
<!--882--> <AD_COLUMN_ID><![CDATA[1791]]></AD_COLUMN_ID>
<!--882--> <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--882-->
<DISPLAYLOGIC><![CDATA[@$C_Currency_ID@!@C_Currency_ID@]]></DISPLAYLOGIC>
+<!--882-->
<DISPLAYLOGIC><![CDATA[@C_Currency_ID@!@$C_Currency_ID@]]></DISPLAYLOGIC>
<!--882--> <DISPLAYLENGTH><![CDATA[21]]></DISPLAYLENGTH>
<!--882--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
<!--882--> <SEQNO><![CDATA[160]]></SEQNO>
@@ -10567,7 +10567,7 @@
<!--883--> <AD_TAB_ID><![CDATA[160]]></AD_TAB_ID>
<!--883--> <AD_COLUMN_ID><![CDATA[1792]]></AD_COLUMN_ID>
<!--883--> <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--883-->
<DISPLAYLOGIC><![CDATA[@$C_Currency_ID@!@C_Currency_ID@]]></DISPLAYLOGIC>
+<!--883-->
<DISPLAYLOGIC><![CDATA[@C_Currency_ID@!@$C_Currency_ID@]]></DISPLAYLOGIC>
<!--883--> <DISPLAYLENGTH><![CDATA[10]]></DISPLAYLENGTH>
<!--883--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
<!--883--> <SEQNO><![CDATA[170]]></SEQNO>
@@ -182034,6 +182034,29 @@
<!--13D19F83EDA7483B9DF1A64423E5347B-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--13D19F83EDA7483B9DF1A64423E5347B--></AD_FIELD>
+<!--1418FA20C83B4B6A99BB2729D52997E3--><AD_FIELD>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<AD_FIELD_ID><![CDATA[1418FA20C83B4B6A99BB2729D52997E3]]></AD_FIELD_ID>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--1418FA20C83B4B6A99BB2729D52997E3--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--1418FA20C83B4B6A99BB2729D52997E3--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--1418FA20C83B4B6A99BB2729D52997E3--> <NAME><![CDATA[Currency]]></NAME>
+<!--1418FA20C83B4B6A99BB2729D52997E3--> <DESCRIPTION><![CDATA[An accepted
medium of monetary exchange that may vary across countries.]]></DESCRIPTION>
+<!--1418FA20C83B4B6A99BB2729D52997E3--> <HELP><![CDATA[Organization currency
will be loaded at login time and used to default its value in transactional
windows. It will not be used for cost calculation.]]></HELP>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<ISCENTRALLYMAINTAINED><![CDATA[N]]></ISCENTRALLYMAINTAINED>
+<!--1418FA20C83B4B6A99BB2729D52997E3--> <AD_TAB_ID><![CDATA[143]]></AD_TAB_ID>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<AD_COLUMN_ID><![CDATA[821C2ABBBEF440CBB97CA03DB83D9883]]></AD_COLUMN_ID>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
+<!--1418FA20C83B4B6A99BB2729D52997E3--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--1418FA20C83B4B6A99BB2729D52997E3--> <SEQNO><![CDATA[70]]></SEQNO>
+<!--1418FA20C83B4B6A99BB2729D52997E3--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--1418FA20C83B4B6A99BB2729D52997E3-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--1418FA20C83B4B6A99BB2729D52997E3--></AD_FIELD>
+
<!--14404337B6D640B7BD4842BE1B202DDF--><AD_FIELD>
<!--14404337B6D640B7BD4842BE1B202DDF-->
<AD_FIELD_ID><![CDATA[14404337B6D640B7BD4842BE1B202DDF]]></AD_FIELD_ID>
<!--14404337B6D640B7BD4842BE1B202DDF-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -190059,7 +190082,7 @@
<!--583187DBFDF051F5E040007F010101E2-->
<DISPLAYLOGIC><![CDATA[@ISPERIODCONTROLALLOWED_AUX@='Y' &
@ISPERIODCONTROLALLOWED@='Y']]></DISPLAYLOGIC>
<!--583187DBFDF051F5E040007F010101E2-->
<DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
<!--583187DBFDF051F5E040007F010101E2--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
-<!--583187DBFDF051F5E040007F010101E2--> <SEQNO><![CDATA[80]]></SEQNO>
+<!--583187DBFDF051F5E040007F010101E2--> <SEQNO><![CDATA[90]]></SEQNO>
<!--583187DBFDF051F5E040007F010101E2--> <ISSAMELINE><![CDATA[Y]]></ISSAMELINE>
<!--583187DBFDF051F5E040007F010101E2-->
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
<!--583187DBFDF051F5E040007F010101E2-->
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
@@ -190083,7 +190106,7 @@
<!--583187DBFDF151F5E040007F010101E2-->
<DISPLAYLOGIC><![CDATA[@ISPERIODCONTROLALLOWED_AUX@='Y']]></DISPLAYLOGIC>
<!--583187DBFDF151F5E040007F010101E2-->
<DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
<!--583187DBFDF151F5E040007F010101E2--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
-<!--583187DBFDF151F5E040007F010101E2--> <SEQNO><![CDATA[110]]></SEQNO>
+<!--583187DBFDF151F5E040007F010101E2--> <SEQNO><![CDATA[120]]></SEQNO>
<!--583187DBFDF151F5E040007F010101E2--> <ISSAMELINE><![CDATA[Y]]></ISSAMELINE>
<!--583187DBFDF151F5E040007F010101E2-->
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
<!--583187DBFDF151F5E040007F010101E2-->
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
@@ -193913,7 +193936,7 @@
<!--65C8733280D611DD9C3207FB58CC79D6-->
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
<!--65C8733280D611DD9C3207FB58CC79D6-->
<DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
<!--65C8733280D611DD9C3207FB58CC79D6--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
-<!--65C8733280D611DD9C3207FB58CC79D6--> <SEQNO><![CDATA[90]]></SEQNO>
+<!--65C8733280D611DD9C3207FB58CC79D6--> <SEQNO><![CDATA[110]]></SEQNO>
<!--65C8733280D611DD9C3207FB58CC79D6--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
<!--65C8733280D611DD9C3207FB58CC79D6-->
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
<!--65C8733280D611DD9C3207FB58CC79D6-->
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
diff -r 9410fface38a -r 70cf0f2524a8
src/org/openbravo/base/secureApp/Attribute_data.xsql
--- a/src/org/openbravo/base/secureApp/Attribute_data.xsql Wed Nov 16
09:23:46 2011 +0100
+++ b/src/org/openbravo/base/secureApp/Attribute_data.xsql Wed Nov 16
09:31:51 2011 +0100
@@ -19,7 +19,7 @@
<SqlMethodComment></SqlMethodComment>
<Sql><![CDATA[
SELECT distinct a.C_ACCTSCHEMA_ID as VALUE, a.C_CURRENCY_ID as
Attribute, a.HASALIAS,
- ae.ELEMENTTYPE, '' as AD_Window_ID
+ ae.ELEMENTTYPE, '' as AD_Window_ID, '' as C_CURRENCY_ID
FROM C_AcctSchema a, C_AcctSchema_Element ae
WHERE a.C_AcctSchema_ID=ae.C_ACCTSCHEMA_ID
AND ae.ISACTIVE = 'Y'
@@ -67,4 +67,19 @@
<Parameter name="clientlist" optional="true" type="replace" after="AND
AD_CLIENT_ID IN (" text="'1'"/>
<Parameter name="orglist" optional="true" type="replace" after="AND
AD_ORG_ID IN (" text="'1'"/>
</SqlMethod>
+ <SqlMethod name="selectOrgCurrency" type="preparedStatement"
return="multiple">
+ <SqlMethodComment></SqlMethodComment>
+ <Sql>
+ <![CDATA[
+ SELECT C_CURRENCY_ID
+ FROM AD_ORG
+ WHERE AD_ISORGINCLUDED(?,AD_ORG_ID,?) <> -1 AND C_CURRENCY_ID IS NOT
NULL
+ ORDER BY AD_ISORGINCLUDED(?,AD_ORG_ID,?)
+ ]]>
+ </Sql>
+ <Parameter name="organization"/>
+ <Parameter name="client"/>
+ <Parameter name="organization"/>
+ <Parameter name="client"/>
+ </SqlMethod>
</SqlClass>
diff -r 9410fface38a -r 70cf0f2524a8
src/org/openbravo/base/secureApp/LoginUtils.java
--- a/src/org/openbravo/base/secureApp/LoginUtils.java Wed Nov 16 09:23:46
2011 +0100
+++ b/src/org/openbravo/base/secureApp/LoginUtils.java Wed Nov 16 09:31:51
2011 +0100
@@ -173,6 +173,9 @@
String strUserAuth, String strLanguage, String strIsRTL, String strRol,
String strCliente,
String strOrg, String strAlmacen) throws ServletException {
+ // variable to save organization currency
+ AttributeData[] orgCurrency;
+
// Check session options
if (!validUserRole(conn, strUserAuth, strRol) || !validRoleClient(conn,
strRol, strCliente)
|| !validRoleOrg(conn, strRol, strOrg)) {
@@ -217,6 +220,9 @@
}
try {
+ // set organization currency
+ orgCurrency = AttributeData.selectOrgCurrency(conn, strOrg, strCliente);
+
SeguridadData[] data = SeguridadData.select(conn, strRol, strUserAuth);
if (data == null || data.length == 0) {
OBContext.setOBContext(currentContext);
@@ -239,7 +245,10 @@
"LoginHandler"));
if (attr != null && attr.length > 0) {
vars.setSessionValue("$C_AcctSchema_ID", attr[0].value);
- vars.setSessionValue("$C_Currency_ID", attr[0].attribute);
+ if (orgCurrency.length > 0) {
+ vars.setSessionValue("$C_Currency_ID", orgCurrency[0].cCurrencyId);
+ } else
+ vars.setSessionValue("$C_Currency_ID", attr[0].attribute);
vars.setSessionValue("#StdPrecision",
AttributeData.selectStdPrecision(conn,
attr[0].attribute, Utility.getContext(conn, vars, "#User_Client",
"LoginHandler"),
Utility.getContext(conn, vars, "#User_Org", "LoginHandler")));
------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits