Merge pull request #57793 from aerele/fix/blanket-order-zero-qty-validation

fix: validate Blanket Order item quantity is greater than zero
This commit is contained in:
Mihir Kandoi
2026-08-05 12:11:48 +05:30
committed by GitHub
2 changed files with 22 additions and 2 deletions

View File

@@ -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()

View File

@@ -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)