diff --git a/org.adempiere.base.process/src/org/compiere/process/InOutGenerate.java b/org.adempiere.base.process/src/org/compiere/process/InOutGenerate.java index 6b0bc97153..c3dba63b85 100644 --- a/org.adempiere.base.process/src/org/compiere/process/InOutGenerate.java +++ b/org.adempiere.base.process/src/org/compiere/process/InOutGenerate.java @@ -257,11 +257,14 @@ public class InOutGenerate extends SvrProcess BigDecimal onHand = Env.ZERO; BigDecimal toDeliver = line.getQtyOrdered() .subtract(line.getQtyDelivered()); - // Nothing to Deliver - if (toDeliver.signum() == 0) - continue; - MProduct product = line.getProduct(); + // Nothing to Deliver + if (product != null && toDeliver.signum() == 0) + continue; + + // or it's a charge - Bug#: 1603966 + if (line.getC_Charge_ID()!=0 && toDeliver.signum() == 0) + continue; // Check / adjust for confirmations BigDecimal unconfirmedShippedQty = Env.ZERO; @@ -295,11 +298,6 @@ public class InOutGenerate extends SvrProcess createLine (order, line, toDeliver, null, false); continue; } - if (product == null) - { - // code must never arrive here - but for safety against NPE - continue; - } // Stored Product String MMPolicy = product.getMMPolicy();