// Nothing to Deliver if (product != null && toDeliver.signum() == 0) continue;
Here ConfirmedQty is set to quantity pending to be delivered! ConfirmedQty usually should be used denote/represent quantity already delivered and confirmed by the receiver?