# HG changeset patch
# User Ranjith S R <ranjith@qualiantech.com>
# Date 1484312025 -19800
#      Fri Jan 13 18:23:45 2017 +0530
# Node ID 7d39dac1097bce779a5d82fc100a1ac185b4bb20
# Parent  925b7c1fb652cd73facb2d2389e56c233dc27d21
Related to issue 34466: Validate outdated layaway with UTC dates instead of server date

diff -r 925b7c1fb652 -r 7d39dac1097b src/org/openbravo/retail/posterminal/OrderLoader.java
--- a/src/org/openbravo/retail/posterminal/OrderLoader.java	Wed Jan 11 14:09:58 2017 -0600
+++ b/src/org/openbravo/retail/posterminal/OrderLoader.java	Fri Jan 13 18:23:45 2017 +0530
@@ -12,6 +12,8 @@
 import java.math.RoundingMode;
 import java.sql.CallableStatement;
 import java.sql.Timestamp;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -134,6 +136,7 @@
   private boolean isDeleted = false;
   private boolean doCancelAndReplace = false;
   private boolean paidReceipt = false;
+  private DateFormat dateFormatUTC = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
 
   @Inject
   @Any
@@ -233,9 +236,9 @@
       if (jsonorder.getBoolean("isLayaway")) {
         order = OBDal.getInstance().get(Order.class, jsonorder.getString("id"));
 
-        final Date loaded = OBMOBCUtils.calculateClientDatetime(jsonorder.getString("loaded"),
-            Long.parseLong(jsonorder.getString("timezoneOffset")));
-        if (!(loaded.compareTo(order.getUpdated()) >= 0)) {
+        final Date loaded = dateFormatUTC.parse(jsonorder.getString("loaded")), updated = OBMOBCUtils
+            .convertToUTC(order.getUpdated());
+        if (!(loaded.compareTo(updated) >= 0)) {
           throw new OutDatedDataChangeException(Utility.messageBD(new DalConnectionProvider(false),
               "OBPOS_outdatedLayaway", OBContext.getOBContext().getLanguage().getLanguage()));
         }
