details: /erp/devel/pi/rev/13dce580f8f1
changeset: 12262:13dce580f8f1
user: Martin Taal <martin.taal <at> openbravo.com>
date: Thu May 19 12:45:15 2011 -0700
summary: Fixes issue 17264: When exporting a dataset in OB3, date fields are
not correct.
diffstat:
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateTimeUIDefinition.java
| 21 ++++++++++
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java
| 17 ++++++-
src/org/openbravo/base/model/domaintype/DateDomainType.java
| 2 +-
3 files changed, 35 insertions(+), 5 deletions(-)
diffs (108 lines):
diff -r b0e385d74031 -r 13dce580f8f1
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
Thu May 19 12:44:18 2011 -0700
+++
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateTimeUIDefinition.java
Thu May 19 12:45:15 2011 -0700
@@ -18,6 +18,11 @@
*/
package org.openbravo.client.kernel.reference;
+import java.util.Date;
+
+import org.openbravo.base.exception.OBException;
+import org.openbravo.base.model.domaintype.PrimitiveDomainType;
+
/**
* Implementation of the date time ui definition.
*
@@ -35,4 +40,20 @@
return "OBDateTimeItem";
}
+ @Override
+ public synchronized Object createFromClassicString(String value) {
+ try {
+ if (value == null || value.length() == 0 || value.equals("null")) {
+ return null;
+ }
+ if (value.contains("T")) {
+ return value;
+ }
+ final Date date = getClassicFormat().parse(value);
+ return ((PrimitiveDomainType) getDomainType()).convertToString(date);
+ } catch (Exception e) {
+ throw new OBException(e);
+ }
+ }
+
}
diff -r b0e385d74031 -r 13dce580f8f1
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java
---
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java
Thu May 19 12:44:18 2011 -0700
+++
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java
Thu May 19 12:45:15 2011 -0700
@@ -23,7 +23,6 @@
import org.codehaus.jettison.json.JSONObject;
import org.openbravo.base.exception.OBException;
-import org.openbravo.base.model.domaintype.PrimitiveDomainType;
import org.openbravo.client.kernel.RequestContext;
import org.openbravo.model.ad.ui.Field;
@@ -34,10 +33,12 @@
*/
public class DateUIDefinition extends UIDefinition {
private static final String PATTERN = "yyyy-MM-dd'T'HH:mm:ss";
+ private static final String UIPATTERN = "yyyy-MM-dd";
private SimpleDateFormat format = null;
private String lastUsedPattern = null;
private SimpleDateFormat dateFormat = null;
+ private SimpleDateFormat uiDateFormat = null;
public SimpleDateFormat getFormat() {
if (format == null) {
@@ -79,7 +80,7 @@
}
}
- private SimpleDateFormat getClassicFormat() {
+ protected SimpleDateFormat getClassicFormat() {
String pattern =
RequestContext.get().getSessionAttribute("#AD_JAVADATEFORMAT").toString();
if (dateFormat == null || !pattern.equals(lastUsedPattern)) {
dateFormat = new SimpleDateFormat(pattern);
@@ -89,8 +90,16 @@
return dateFormat;
}
+ private SimpleDateFormat getUIFormat() {
+ if (uiDateFormat == null) {
+ uiDateFormat = new SimpleDateFormat(UIPATTERN);
+ uiDateFormat.setLenient(true);
+ }
+ return uiDateFormat;
+ }
+
@Override
- public String convertToClassicString(Object value) {
+ public synchronized String convertToClassicString(Object value) {
if (value == null) {
return "";
}
@@ -107,7 +116,7 @@
return value;
}
final Date date = getClassicFormat().parse(value);
- return ((PrimitiveDomainType) getDomainType()).convertToString(date);
+ return getUIFormat().format(date);
} catch (Exception e) {
throw new OBException(e);
}
diff -r b0e385d74031 -r 13dce580f8f1
src/org/openbravo/base/model/domaintype/DateDomainType.java
--- a/src/org/openbravo/base/model/domaintype/DateDomainType.java Thu May
19 12:44:18 2011 -0700
+++ b/src/org/openbravo/base/model/domaintype/DateDomainType.java Thu May
19 12:45:15 2011 -0700
@@ -31,7 +31,7 @@
public class DateDomainType extends BasePrimitiveDomainType {
- private final SimpleDateFormat xmlDateFormat = new
SimpleDateFormat("yyyy-MM-dd");
+ private final SimpleDateFormat xmlDateFormat = new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S'Z'");
public DateDomainType() {
xmlDateFormat.setLenient(true);
------------------------------------------------------------------------------
What Every C/C++ and Fortran developer Should Know!
Read this article and learn how Intel has extended the reach of its
next-generation tools to help Windows* and Linux* C/C++ and Fortran
developers boost performance applications - including clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits