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