# HG changeset patch
# User Ranjith S R <ranjith@qualiantech.com>
# Date 1538373549 -19800
#      Mon Oct 01 11:29:09 2018 +0530
# Node ID 3a686b37ed8499af9381e2101232f690467798ec
# Parent  cfb6a93c38e8961d10cd7364d1337287a255a182
Related to issue 39352 : JSON data should not be updated while savng record in OrderLoader

* In OrderLoader, JSON Orderlines should not be updated with deletedLines
*

diff -r cfb6a93c38e8 -r 3a686b37ed84 src/org/openbravo/retail/posterminal/OrderLoader.java
--- a/src/org/openbravo/retail/posterminal/OrderLoader.java	Fri Sep 28 14:09:03 2018 +0200
+++ b/src/org/openbravo/retail/posterminal/OrderLoader.java	Mon Oct 01 11:29:09 2018 +0530
@@ -255,7 +255,7 @@
       boolean wasPaidOnCredit = false;
       boolean moveShipmentLinesInCanelAndReplace = false;
       ArrayList<OrderLine> lineReferences = new ArrayList<OrderLine>();
-      JSONArray orderlines = jsonorder.getJSONArray("lines");
+      JSONArray orderlines = new JSONArray(jsonorder.getJSONArray("lines").toString());
 
       if (jsonorder.getLong("orderType") != 2 && !jsonorder.getBoolean("isLayaway") && !isQuotation
           && validateOrder(jsonorder)
@@ -290,7 +290,7 @@
       }
 
       if (jsonorder.has("deletedLines")) {
-        mergeDeletedLines(jsonorder);
+        mergeDeletedLines(jsonorder, orderlines);
       }
 
       t0 = System.currentTimeMillis();
@@ -462,7 +462,7 @@
               .getCreateNettingGoodsShipmentPreferenceValue(canceledOrder)
               && CancelAndReplaceUtils
                   .getAssociateGoodsShipmentToNewSalesOrderPreferenceValue(canceledOrder);
-          canceledOrder.setObposAppCashup(jsoncashup.getString("id"));
+          canceledOrder.setObposAppCashup(jsonorder.getString("obposAppCashup"));
           if (canceledOrder.isObposIslayaway()) {
             canceledOrder.setObposIslayaway(false);
           }
@@ -647,14 +647,12 @@
     }
   }
 
-  private void mergeDeletedLines(JSONObject jsonorder) {
+  private void mergeDeletedLines(JSONObject jsonorder, JSONArray orderlines) {
     try {
       JSONArray deletedLines = jsonorder.getJSONArray("deletedLines");
-      JSONArray lines = jsonorder.getJSONArray("lines");
       for (int i = 0; i < deletedLines.length(); i++) {
-        lines.put(deletedLines.get(i));
+        orderlines.put(deletedLines.get(i));
       }
-      jsonorder.put("lines", lines);
     } catch (JSONException e) {
       log.error("JSON information couldn't be read when merging deleted lines", e);
       return;
