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