diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 49196dfe22e7..e7a8ad0f7231 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -2449,11 +2449,21 @@ def get_new_child_item(item_row): parent_doctype, parent_doctype_name, child_doctype, child_docname, item_row ) - def validate_quantity(child_item, d): - if parent_doctype == "Sales Order" and flt(d.get("qty")) < flt(child_item.delivered_qty): + def validate_quantity(child_item, new_data): + if not flt(new_data.get("qty")): + frappe.throw( + _("Row # {0}: Quantity for Item {1} cannot be zero").format( + new_data.get("idx"), frappe.bold(new_data.get("item_code")) + ), + title=_("Invalid Qty"), + ) + + if parent_doctype == "Sales Order" and flt(new_data.get("qty")) < flt(child_item.delivered_qty): frappe.throw(_("Cannot set quantity less than delivered quantity")) - if parent_doctype == "Purchase Order" and flt(d.get("qty")) < flt(child_item.received_qty): + if parent_doctype == "Purchase Order" and flt(new_data.get("qty")) < flt( + child_item.received_qty + ): frappe.throw(_("Cannot set quantity less than received quantity")) data = json.loads(trans_items)