diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py index 61e7ade4415..a15b45a381a 100644 --- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py +++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py @@ -14,13 +14,15 @@ class PricingRule(Document): self.validate_mandatory() self.validate_min_max_qty() self.cleanup_fields_value() + self.validate_price_or_discount() def validate_mandatory(self): - for field in ["apply_on", "applicable_for", "price_or_discount"]: + for field in ["apply_on", "applicable_for"]: tocheck = frappe.scrub(self.get(field) or "") if tocheck and not self.get(tocheck): throw(_("{0} is required").format(self.meta.get_label(tocheck)), frappe.MandatoryError) + def validate_min_max_qty(self): if self.min_qty and self.max_qty and flt(self.min_qty) > flt(self.max_qty): throw(_("Min Qty can not be greater than Max Qty")) @@ -37,3 +39,8 @@ class PricingRule(Document): f = frappe.scrub(f) if f!=fieldname: self.set(f, None) + + def validate_price_or_discount(self): + for field in ["Price", "Discount Percentage"]: + if flt(self.get(frappe.scrub(field))) < 0: + throw(_("{0} can not be negative").format(field)) diff --git a/erpnext/setup/doctype/currency/currency.py b/erpnext/setup/doctype/currency/currency.py index 9dc6e3b2290..5be618b80e4 100644 --- a/erpnext/setup/doctype/currency/currency.py +++ b/erpnext/setup/doctype/currency/currency.py @@ -8,7 +8,8 @@ from frappe import throw, _ from frappe.model.document import Document class Currency(Document): - pass + def validate(self): + frappe.clear_cache() def validate_conversion_rate(currency, conversion_rate, conversion_rate_label, company): """common validation for currency and price list currency""" @@ -20,4 +21,4 @@ def validate_conversion_rate(currency, conversion_rate, conversion_rate_label, c "conversion_rate_label": conversion_rate_label, "from_currency": currency, "to_currency": company_currency - }) \ No newline at end of file + })