diff --git a/erpnext/manufacturing/doctype/blanket_order/blanket_order.py b/erpnext/manufacturing/doctype/blanket_order/blanket_order.py index 003df602aa1..d7ef3ce2acc 100644 --- a/erpnext/manufacturing/doctype/blanket_order/blanket_order.py +++ b/erpnext/manufacturing/doctype/blanket_order/blanket_order.py @@ -120,8 +120,8 @@ class BlanketOrder(Document): def validate_item_qty(self): for d in self.items: - if flt(d.qty) < 0: - frappe.throw(_("Row {0}: Quantity cannot be negative.").format(d.idx)) + if flt(d.qty) <= 0: + frappe.throw(_("Row {0}: Quantity must be greater than zero.").format(d.idx)) @frappe.whitelist() diff --git a/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py b/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py index a2babf8d845..284dffc91b7 100644 --- a/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py +++ b/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py @@ -162,6 +162,26 @@ class TestBlanketOrder(ERPNextTestSuite): bo = make_blanket_order(blanket_order_type="Purchasing", supplier=supplier, item_code=item_code) self.assertEqual(bo.items[0].party_item_code, "SUPP-PART-1") + def test_blanket_order_zero_quantity(self): + bo = frappe.new_doc("Blanket Order") + bo.blanket_order_type = "Selling" + bo.company = "_Test Company" + bo.customer = "_Test Customer" + bo.from_date = today() + bo.to_date = add_months(today(), 12) + + bo.append( + "items", + { + "item_code": "_Test Item", + "qty": 0, + "rate": 100, + }, + ) + + with self.assertRaises(frappe.ValidationError): + bo.insert() + def make_blanket_order(**args): args = frappe._dict(args)