# HG changeset patch
# User Miguel de Juana <miguel.dejuana@openbravo.com>
# Date 1337763308 -7200
# Node ID 9f36a036ef50fe3ab0c5ea5d72b879cb1e882d1c
# Parent  a7e2258c52d7f60e18c04f2c02c7bbec613a3752
Fixed issue 20496: Process Monitor in Form view, startTime for all timezones
In Process Monitor window, When we open Form view, the StartTime field was wrong in some timezones. Now it works well.

diff --git a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
@@ -909,7 +909,7 @@
     var typeInstance;
     var assignValue;
     var assignClassicValue;
-    var isDate, i, valueMap = {},
+    var isDate, isDateTime, i, valueMap = {},
         oldValue, field = this.getFieldFromColumnName(columnName),
         entries = columnValue.entries;
     // not a field on the form, probably a datasource field
@@ -962,9 +962,12 @@
       // note: do not use clearvalue as this removes the value from the form
       this.setValue(field.name, null);
     } else if (columnValue.value || columnValue.value === 0 || columnValue.value === false) {
-      isDate = field.type && (isc.SimpleType.getType(field.type).inheritsFrom === 'date' || isc.SimpleType.getType(field.type).inheritsFrom === 'datetime' || isc.SimpleType.getType(field.type).inheritsFrom === 'time');
+      isDate = field.type && (isc.SimpleType.getType(field.type).inheritsFrom === 'date' || isc.SimpleType.getType(field.type).inheritsFrom === 'time');
+      isDateTime = field.type && isc.SimpleType.getType(field.type).inheritsFrom === 'datetime';
       if (isDate) {
         this.setItemValue(field.name, isc.Date.parseSchemaDate(columnValue.value));
+      } else if (isDateTime) {
+        this.setItemValue(field.name, isc.Date.parseStandardDate(columnValue.value));
       } else if (columnValue.hasDateDefault) {
         this.setItemValue(field.name, columnValue.classicValue);
       } else {
diff --git a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateTimeUIDefinition.java b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateTimeUIDefinition.java
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateTimeUIDefinition.java
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateTimeUIDefinition.java
@@ -11,17 +11,19 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2010-2011 Openbravo SLU 
+ * All portions are Copyright (C) 2010-2012 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
  */
 package org.openbravo.client.kernel.reference;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.model.domaintype.PrimitiveDomainType;
+import org.openbravo.client.kernel.RequestContext;
 
 /**
  * Implementation of the date time ui definition.
@@ -29,6 +31,8 @@
  * @author mtaal
  */
 public class DateTimeUIDefinition extends DateUIDefinition {
+  private String lastUsedPattern = null;
+  private SimpleDateFormat dateFormat = null;
 
   @Override
   public String getParentType() {
@@ -45,6 +49,17 @@
   }
 
   @Override
+  protected SimpleDateFormat getClassicFormat() {
+    String pattern = RequestContext.get().getSessionAttribute("#AD_JavaDateTimeFormat").toString();
+    if (dateFormat == null || !pattern.equals(lastUsedPattern)) {
+      dateFormat = new SimpleDateFormat(pattern);
+      lastUsedPattern = pattern;
+      dateFormat.setLenient(true);
+    }
+    return dateFormat;
+  }
+
+  @Override
   public synchronized Object createFromClassicString(String value) {
     try {
       if (value == null || value.length() == 0 || value.equals("null")) {
