details: https://code.openbravo.com/erp/devel/pi/rev/8bf896a22664 changeset: 34266:8bf896a22664 user: Asier Martirena <asier.martirena <at> openbravo.com> date: Tue Dec 12 18:23:16 2017 +0100 summary: Related to issue 37460: Check delivered status in C&R.
The delivered status must be different for an order after the cancel and replace process depending in the associated shipments diffstat: src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java | 26 ++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diffs (43 lines): diff -r 85da1c363b49 -r 8bf896a22664 src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java --- a/src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java Thu Jul 05 08:47:26 2018 +0200 +++ b/src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java Tue Dec 12 18:23:16 2017 +0100 @@ -349,6 +349,20 @@ throw new OBException(String.format(OBMessageUtils.messageBD("IsCancelled"), 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 query = OBDal.getInstance().getSession().createQuery(hql.toString()); + query.setParameter("orderId", oldOrderId); + query.setMaxResults(1); + final boolean hasShipment = query.uniqueResult() != null; + // Close old reservations closeOldReservations(oldOrder); @@ -557,6 +571,18 @@ 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); + oldOrder.setDelivered(false); + } else { + inverseOrder.setDelivered(false); + oldOrder.setDelivered(hasShipment ? true : false); + } + // Close inverse order inverseOrder.setDocumentStatus("CL"); inverseOrder.setDocumentAction("--"); ------------------------------------------------------------------------------ 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