diff --git a/base/src/org/compiere/model/MInOut.java b/base/src/org/compiere/model/MInOut.java index 264f74fa57..af1fb878eb 100644 --- a/base/src/org/compiere/model/MInOut.java +++ b/base/src/org/compiere/model/MInOut.java @@ -1695,10 +1695,11 @@ public class MInOut extends X_M_InOut implements DocAction String MMPolicy = product.getMMPolicy(); Timestamp minGuaranteeDate = getMovementDate(); MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(), - minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName()); + minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy), false, line.getM_Locator_ID(), get_TrxName()); BigDecimal qtyToDeliver = line.getMovementQty(); for (MStorage storage: storages) { + if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0) { MInOutLineMA ma = new MInOutLineMA (line, @@ -1709,6 +1710,7 @@ public class MInOut extends X_M_InOut implements DocAction throw new IllegalStateException("Error try create ASI Reservation"); } qtyToDeliver = Env.ZERO; + break; } else { diff --git a/base/src/org/compiere/model/MInventory.java b/base/src/org/compiere/model/MInventory.java index b2ec362981..d5ea7cb5d7 100644 --- a/base/src/org/compiere/model/MInventory.java +++ b/base/src/org/compiere/model/MInventory.java @@ -596,7 +596,7 @@ public class MInventory extends X_M_Inventory implements DocAction { String MMPolicy = product.getMMPolicy(); MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0, - null, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName()); + null, MClient.MMPOLICY_FiFo.equals(MMPolicy), false, line.getM_Locator_ID(), get_TrxName()); BigDecimal qtyToDeliver = qtyDiff.negate(); for (MStorage storage: storages) @@ -612,7 +612,7 @@ public class MInventory extends X_M_Inventory implements DocAction } qtyToDeliver = Env.ZERO; log.fine( ma + ", QtyToDeliver=" + qtyToDeliver); - //return; + break; } else { diff --git a/base/src/org/compiere/model/MMovement.java b/base/src/org/compiere/model/MMovement.java index 10acd74d4b..c51150eeb7 100644 --- a/base/src/org/compiere/model/MMovement.java +++ b/base/src/org/compiere/model/MMovement.java @@ -665,7 +665,7 @@ public class MMovement extends X_M_Movement implements DocAction MProduct product = MProduct.get(getCtx(), line.getM_Product_ID()); String MMPolicy = product.getMMPolicy(); MStorage[] storages = MStorage.getWarehouse(getCtx(), 0, line.getM_Product_ID(), 0, - null, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName()); + null, MClient.MMPOLICY_FiFo.equals(MMPolicy), false, line.getM_Locator_ID(), get_TrxName()); BigDecimal qtyToDeliver = line.getMovementQty(); @@ -682,7 +682,7 @@ public class MMovement extends X_M_Movement implements DocAction } qtyToDeliver = Env.ZERO; log.fine( ma + ", QtyToDeliver=" + qtyToDeliver); - //return; + break; } else { diff --git a/base/src/org/compiere/model/MStorage.java b/base/src/org/compiere/model/MStorage.java index 13e12bd254..193cd1fa01 100644 --- a/base/src/org/compiere/model/MStorage.java +++ b/base/src/org/compiere/model/MStorage.java @@ -332,7 +332,10 @@ public class MStorage extends X_M_Storage } rs = pstmt.executeQuery(); while (rs.next()) + { + if(rs.getBigDecimal(11).signum() != 0) list.add (new MStorage (ctx, rs, trxName)); + } } catch (Exception e) { diff --git a/base/src/org/compiere/process/InOutGenerate.java b/base/src/org/compiere/process/InOutGenerate.java index 0e932712c2..974588af2b 100644 --- a/base/src/org/compiere/process/InOutGenerate.java +++ b/base/src/org/compiere/process/InOutGenerate.java @@ -542,7 +542,7 @@ public class InOutGenerate extends SvrProcess { m_lastStorages = MStorage.getWarehouse(getCtx(), M_Warehouse_ID, M_Product_ID, M_AttributeSetInstance_ID, - minGuaranteeDate, FiFo, true, 0 , get_TrxName()); + minGuaranteeDate, FiFo, false, 0 , get_TrxName()); m_map.put(m_lastPP, m_lastStorages); } return m_lastStorages;