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&#174; 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

Reply via email to