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

Reply via email to