details:   https://code.openbravo.com/erp/devel/pi/rev/02757acc05d8
changeset: 18999:02757acc05d8
user:      David Miguelez <david.miguelez <at> openbravo.com>
date:      Mon Dec 10 19:39:40 2012 +0100
summary:   Fixes issue 22506. Adds possibility to create complex display
logic for accounting dimensions.

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/DynamicExpressionParser.java
 |  27 +++++----
 src-db/database/sourcedata/AD_FIELD.xml                                        
                            |   2 +-
 src/org/openbravo/erpCommon/utility/DimensionDisplayUtility.java               
                            |   2 +-
 3 files changed, 16 insertions(+), 15 deletions(-)

diffs (68 lines):

diff -r f49da111ff95 -r 02757acc05d8 
modules/org.openbravo.client.application/src/org/openbravo/client/application/DynamicExpressionParser.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/DynamicExpressionParser.java
        Mon Dec 10 17:59:27 2012 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/DynamicExpressionParser.java
        Mon Dec 10 19:39:40 2012 +0100
@@ -109,19 +109,6 @@
   public void parse() {
     jsCode = new StringBuffer();
 
-    // Handle accounting dimensions special display logic
-    if (DimensionDisplayUtility.DIM_DISPLAYLOGIC.equals(code)) {
-      List<String> sessionVariablesToLoad = DimensionDisplayUtility
-          .getRequiredSessionVariablesForTab(this.tab, this.field);
-      for (String sv : sessionVariablesToLoad) {
-        sessionAttributesInExpression.add(sv);
-      }
-      String parsedDisplay = 
DimensionDisplayUtility.computeAccountingDimensionDisplayLogic(
-          this.tab, this.field);
-      jsCode.append(parsedDisplay);
-      return;
-    }
-
     StringTokenizer st = new StringTokenizer(code, "|&", true);
     String token, token2;
     String strAux;
@@ -154,6 +141,20 @@
           leftPart.text.contains("currentValues"), leftPart.isBoolean);
       jsCode.append(rightPart.text);
     }
+    // Handle accounting dimensions special display logic
+    if (jsCode.toString().contains(DimensionDisplayUtility.DIM_DISPLAYLOGIC)) {
+      List<String> sessionVariablesToLoad = DimensionDisplayUtility
+          .getRequiredSessionVariablesForTab(this.tab, this.field);
+      for (String sv : sessionVariablesToLoad) {
+        sessionAttributesInExpression.add(sv);
+      }
+      String parsedDisplay = 
DimensionDisplayUtility.computeAccountingDimensionDisplayLogic(
+          this.tab, this.field);
+      parsedDisplay = "(" + parsedDisplay + ")";
+      jsCode = new 
StringBuffer(jsCode.toString().replace(DimensionDisplayUtility.DIM_DISPLAYLOGIC,
+          parsedDisplay));
+    }
+
   }
 
   /**
diff -r f49da111ff95 -r 02757acc05d8 src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml   Mon Dec 10 17:59:27 2012 +0100
+++ b/src-db/database/sourcedata/AD_FIELD.xml   Mon Dec 10 19:39:40 2012 +0100
@@ -228745,7 +228745,7 @@
 <!--A7F15315104B4244E040007F010064A6-->  
<IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--A7F15315104B4244E040007F010064A6-->  
<AD_FIELDGROUP_ID><![CDATA[800000]]></AD_FIELDGROUP_ID>
 <!--A7F15315104B4244E040007F010064A6-->  
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--A7F15315104B4244E040007F010064A6-->  
<DISPLAYLOGIC><![CDATA[@ACCT_DIMENSION_DISPLAY@]]></DISPLAYLOGIC>
+<!--A7F15315104B4244E040007F010064A6-->  
<DISPLAYLOGIC><![CDATA[@Open_Items@='Y' | 
@ACCT_DIMENSION_DISPLAY@]]></DISPLAYLOGIC>
 <!--A7F15315104B4244E040007F010064A6-->  
<DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
 <!--A7F15315104B4244E040007F010064A6-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--A7F15315104B4244E040007F010064A6-->  <SEQNO><![CDATA[2000]]></SEQNO>
diff -r f49da111ff95 -r 02757acc05d8 
src/org/openbravo/erpCommon/utility/DimensionDisplayUtility.java
--- a/src/org/openbravo/erpCommon/utility/DimensionDisplayUtility.java  Mon Dec 
10 17:59:27 2012 +0100
+++ b/src/org/openbravo/erpCommon/utility/DimensionDisplayUtility.java  Mon Dec 
10 19:39:40 2012 +0100
@@ -82,7 +82,7 @@
   /** Session variable **/
   public static final String IsAcctDimCentrally = "$IsAcctDimCentrally";
   /** Display logic for accounting dimensions **/
-  public static final String DIM_DISPLAYLOGIC = "@ACCT_DIMENSION_DISPLAY@";
+  public static final String DIM_DISPLAYLOGIC = 
"context.ACCT_DIMENSION_DISPLAY";
   /** Document Base Type auxiliary input **/
   public static final String DIM_AUXILIAR_INPUT = "DOCBASETYPE";
 

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to