From 0c9154389bf6eede7f218add824a644964fc5257 Mon Sep 17 00:00:00 2001 From: marination Date: Tue, 10 May 2022 18:04:02 +0530 Subject: [PATCH] fix: Block 0 Qty via Update Items to be consistent with form validation --- erpnext/controllers/accounts_controller.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 78645e0d4f..46013bb367 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -2451,11 +2451,21 @@ def update_child_qty_rate(parent_doctype, trans_items, parent_doctype_name, chil 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)