From b08aebfab8425ea0301da8c5d8c7959f7b241491 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Fri, 4 Jul 2014 18:55:17 +0800 Subject: [PATCH] IDEMPIERE-2042 Don't reserved stock if c_orderline.qtyordered is -ve. --- org.adempiere.base/src/org/compiere/model/MInOut.java | 4 ++-- org.adempiere.base/src/org/compiere/model/MOrder.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/MInOut.java b/org.adempiere.base/src/org/compiere/model/MInOut.java index aa7b8e1c3d..c1eba072b0 100644 --- a/org.adempiere.base/src/org/compiere/model/MInOut.java +++ b/org.adempiere.base/src/org/compiere/model/MInOut.java @@ -1407,7 +1407,7 @@ public class MInOut extends X_M_InOut implements DocAction m_processMsg = "Cannot correct Inventory OnHand (MA) [" + product.getValue() + "] - " + lastError; return DocAction.STATUS_Invalid; } - if (reservedDiff.signum() != 0) { + if (reservedDiff.signum() != 0 && oLine.getQtyOrdered().signum() > 0) { if (!MStorageReservation.add(getCtx(), reservationWarehouse_ID, sLine.getM_Product_ID(), ma.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID, @@ -1460,7 +1460,7 @@ public class MInOut extends X_M_InOut implements DocAction m_processMsg = "Cannot correct Inventory OnHand [" + product.getValue() + "] - " + lastError; return DocAction.STATUS_Invalid; } - if (reservedDiff.signum() != 0) { + if (reservedDiff.signum() != 0 && oLine.getQtyOrdered().signum() > 0) { if (!MStorageReservation.add(getCtx(), reservationWarehouse_ID, sLine.getM_Product_ID(), sLine.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID, diff --git a/org.adempiere.base/src/org/compiere/model/MOrder.java b/org.adempiere.base/src/org/compiere/model/MOrder.java index 2d89d4454f..d72e3eb1f7 100644 --- a/org.adempiere.base/src/org/compiere/model/MOrder.java +++ b/org.adempiere.base/src/org/compiere/model/MOrder.java @@ -1722,7 +1722,7 @@ public class MOrder extends X_C_Order implements DocAction BigDecimal difference = target .subtract(line.getQtyReserved()) .subtract(line.getQtyDelivered()); - if (difference.signum() == 0) + if (difference.signum() <= 0) { MProduct product = line.getProduct(); if (product != null)