diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py index 7d4d1bb10bf..3cd927c938d 100644 --- a/erpnext/crm/doctype/opportunity/opportunity.py +++ b/erpnext/crm/doctype/opportunity/opportunity.py @@ -132,6 +132,7 @@ class Opportunity(TransactionBase, CRMNote): self.validate_uom_is_integer("uom", "qty") self.validate_cust_name() self.map_fields() + self.validate_qty() self.set_exchange_rate() if not self.title: @@ -142,6 +143,15 @@ class Opportunity(TransactionBase, CRMNote): def on_update(self): self.update_prospect() + def validate_qty(self): + for item in self.items: + if item.qty <= 0: + frappe.throw( + _("Row #{0}: Quantity must be greater than 0 for Item {1}").format( + item.idx, item.item_code + ) + ) + def map_fields(self): for field in self.meta.get_valid_columns(): if not self.get(field) and frappe.db.field_exists(self.opportunity_from, field):