details: /erp/devel/pi/rev/dc6bca4b59c4
changeset: 6723:dc6bca4b59c4
user: Martin Taal <martin.taal <at> openbravo.com>
date: Tue Mar 16 07:14:21 2010 +0100
summary: fixes issue 12575: It is neccessary to create a testcase for
Transient Condition
details: /erp/devel/pi/rev/d0560422ea80
changeset: 6724:d0560422ea80
user: Martin Taal <martin.taal <at> openbravo.com>
date: Tue Mar 16 07:15:09 2010 +0100
summary: fixes issue 12106: record identifier returned from dal uses ' ' as
separator of columns, but normal pl-version uses ' - '
diffstat:
src-test/org/openbravo/test/expression/EvaluationTest.java | 36 +++++++++++++-
src/org/openbravo/base/structure/IdentifierProvider.java | 30 +++++++++++-
2 files changed, 64 insertions(+), 2 deletions(-)
diffs (126 lines):
diff -r 0edb9a09c255 -r d0560422ea80
src-test/org/openbravo/test/expression/EvaluationTest.java
--- a/src-test/org/openbravo/test/expression/EvaluationTest.java Tue Mar
16 07:13:11 2010 +0100
+++ b/src-test/org/openbravo/test/expression/EvaluationTest.java Tue Mar
16 07:15:09 2010 +0100
@@ -11,7 +11,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2008 Openbravo SLU
+ * All portions are Copyright (C) 2008-2010 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -29,6 +29,8 @@
import org.openbravo.dal.service.OBDal;
import org.openbravo.model.ad.datamodel.Table;
import org.openbravo.model.ad.system.Client;
+import org.openbravo.model.common.order.Order;
+import org.openbravo.model.common.order.OrderLine;
import org.openbravo.test.base.BaseTest;
/**
@@ -67,4 +69,36 @@
}
assertTrue(found);
}
+
+ /**
+ * Tests https://issues.openbravo.com/view.php?id=12575 It is neccessary to
create a testcase for
+ * Transient Condition
+ */
+ public void testOrderEvaluation() {
+ setBigBazaarUserContext();
+ addReadWriteAccess(Order.class);
+ addReadWriteAccess(OrderLine.class);
+
+ final String script = "var orderLines = orderLineList.toArray();"
+ + "function compute() {for (var i = 0; i < orderLines.length; i++)
{return orderLines[i].getLineNo() > 0;}; return false;};"
+ + "compute();";
+
+ final List<Order> orders =
OBDal.getInstance().createCriteria(Order.class).list();
+ int cnt = 0;
+ for (final Order o : orders) {
+ if ((cnt % 2) == 0) {
+ o.getOrderLineList().clear();
+ }
+ final Boolean result = Evaluator.getInstance().evaluateBoolean(o,
script);
+ Boolean check = false;
+ for (OrderLine ol : o.getOrderLineList()) {
+ check |= ol.getLineNo() > 0;
+ }
+ assertEquals(result, check);
+ cnt++;
+ }
+ assertTrue(cnt > 0);
+ // prevent orders really to be updated
+ OBDal.getInstance().rollbackAndClose();
+ }
}
\ No newline at end of file
diff -r 0edb9a09c255 -r d0560422ea80
src/org/openbravo/base/structure/IdentifierProvider.java
--- a/src/org/openbravo/base/structure/IdentifierProvider.java Tue Mar 16
07:13:11 2010 +0100
+++ b/src/org/openbravo/base/structure/IdentifierProvider.java Tue Mar 16
07:15:09 2010 +0100
@@ -19,6 +19,8 @@
package org.openbravo.base.structure;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
import org.openbravo.base.model.Entity;
@@ -26,6 +28,7 @@
import org.openbravo.base.model.Property;
import org.openbravo.base.provider.OBProvider;
import org.openbravo.base.provider.OBSingleton;
+import org.openbravo.base.session.OBPropertiesProvider;
/**
* Provides the identifier/title of an object using the {...@link
Entity#getIdentifierProperties()
@@ -53,6 +56,9 @@
IdentifierProvider.instance = instance;
}
+ private SimpleDateFormat dateFormat = null;
+ private SimpleDateFormat dateTimeFormat = null;
+
/**
* Returns the identifier of the object. The identifier is computed using
the identifier
* properties of the Entity of the object.
@@ -79,7 +85,13 @@
if (sb.length() > 0) {
sb.append(SEPARATOR);
}
- final Object value = dob.get(identifier.getName());
+ final Property property = ((BaseOBObject)
dob).getEntity().getProperty(identifier.getName());
+ Object value = dob.get(identifier.getName());
+
+ // TODO: add number formatting...
+ if (property.isDate() || property.isDatetime()) {
+ value = formatDate(property, (Date) value);
+ }
if (value instanceof Identifiable && identifyDeep) {
sb.append(getIdentifier(value, false));
@@ -96,4 +108,20 @@
protected String getSeparator() {
return SEPARATOR;
}
+
+ private synchronized String formatDate(Property property, Date date) {
+ if (dateFormat == null) {
+ final String dateFormatString =
OBPropertiesProvider.getInstance().getOpenbravoProperties()
+ .getProperty("dateFormat.java");
+ final String dateTimeFormatString = OBPropertiesProvider.getInstance()
+ .getOpenbravoProperties().getProperty("dateTimeFormat.java");
+ dateFormat = new SimpleDateFormat(dateFormatString);
+ dateTimeFormat = new SimpleDateFormat(dateTimeFormatString);
+ }
+ if (property.isDatetime()) {
+ return dateTimeFormat.format(date);
+ } else {
+ return dateFormat.format(date);
+ }
+ }
}
\ No newline at end of file
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits