details:   https://code.openbravo.com/erp/devel/pi/rev/1cadd83c2d38
changeset: 34753:1cadd83c2d38
user:      Asier Martirena <asier.martirena <at> openbravo.com>
date:      Mon Aug 27 13:19:45 2018 +0200
summary:   Related to issue 39067: The delivered property is not being 
correctly set for C&R

If the canceled order was delivered and the associateShipmentToNewReceipt 
preference is set, the new order will also be delivered. Instead of doing a 
query, the delivered status is checked to know the previous status.
A netting shipment doesn't count as delivered.

diffstat:

 src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java |  30 
++-------
 1 files changed, 7 insertions(+), 23 deletions(-)

diffs (57 lines):

diff -r c516c88b947d -r 1cadd83c2d38 
src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java
--- a/src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java    
Mon Aug 20 10:48:39 2018 +0530
+++ b/src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java    
Mon Aug 27 13:19:45 2018 +0200
@@ -351,20 +351,6 @@
             oldOrder.getDocumentNo()));
       }
 
-      // Check if there's any shipment associated to the old order
-      final StringBuffer hql = new StringBuffer();
-      hql.append("SELECT 1 ");
-      hql.append("FROM OrderLine AS ol ");
-      hql.append("WHERE EXISTS (SELECT 1 ");
-      hql.append("FROM MaterialMgmtShipmentInOutLine AS sl ");
-      hql.append("WHERE sl.salesOrderLine = ol) ");
-      hql.append("AND ol.salesOrder.id = :orderId");
-      final Query<Integer> query = OBDal.getInstance().getSession()
-          .createQuery(hql.toString(), Integer.class);
-      query.setParameter("orderId", oldOrderId);
-      query.setMaxResults(1);
-      final boolean hasShipment = query.uniqueResult() != null;
-
       // Close old reservations
       closeOldReservations(oldOrder);
 
@@ -565,25 +551,23 @@
       }
       // Create or update the needed services relations
       updateServicesRelations(jsonorder, oldOrder, inverseOrder, newOrder, 
replaceOrder);
-      // The netting shipment is flaged as processed.
+      // The netting shipment is flagged as processed.
       if (nettingGoodsShipment != null) {
         processShipmentHeader(nettingGoodsShipment);
       }
+      // Adjust the taxes
       if (!triggersDisabled) {
         callCOrderTaxAdjustment(inverseOrder);
       }
 
       // Set the delivered status for the old and inverse orders
-      if (createNettingGoodsShipment) {
-        inverseOrder.setDelivered(true);
-        oldOrder.setDelivered(true);
-      } else if (associateShipmentToNewReceipt && replaceOrder) {
-        inverseOrder.setDelivered(false);
+      if (replaceOrder && associateShipmentToNewReceipt && 
oldOrder.isDelivered()) {
+        if (!newOrder.isDelivered()) {
+          newOrder.setDelivered(true);
+        }
         oldOrder.setDelivered(false);
-      } else {
-        inverseOrder.setDelivered(false);
-        oldOrder.setDelivered(hasShipment ? true : false);
       }
+      inverseOrder.setDelivered(false);
 
       // Close inverse order
       inverseOrder.setDocumentStatus("CL");

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to