From 0be378af6ac951ff07b0b1288ec7b10ad17759d8 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 30 May 2014 15:52:52 +0530 Subject: [PATCH] Purchase ordered qty can not be less than minimum order qty. fixes #1529 --- erpnext/buying/doctype/purchase_order/purchase_order.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index 8d6ba46040..91cc865b7b 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -45,6 +45,7 @@ class PurchaseOrder(BuyingController): self.validate_with_previous_doc() self.validate_for_subcontracting() + self.validate_minimum_order_qty() self.create_raw_materials_supplied("po_raw_material_details") def validate_with_previous_doc(self): @@ -61,6 +62,13 @@ class PurchaseOrder(BuyingController): } }) + def validate_minimum_order_qty(self): + itemwise_min_order_qty = frappe._dict(frappe.db.sql("select name, min_order_qty from tabItem")) + + for d in self.get("po_details"): + if flt(d.qty) < flt(itemwise_min_order_qty.get(d.item_code)): + frappe.throw(_("Row #{0}: Ordered qty can not less than item's minimum order qty (defined in item master).").format(d.idx)) + def get_schedule_dates(self): for d in self.get('po_details'): if d.prevdoc_detail_docname and not d.schedule_date: