Pricing Rule: price / discount percentage can not be negative
diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
index 61e7ade..a15b45a 100644
--- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
@@ -14,13 +14,15 @@
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 @@
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 9dc6e3b..5be618b 100644
--- a/erpnext/setup/doctype/currency/currency.py
+++ b/erpnext/setup/doctype/currency/currency.py
@@ -8,7 +8,8 @@
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 @@
"conversion_rate_label": conversion_rate_label,
"from_currency": currency,
"to_currency": company_currency
- })
\ No newline at end of file
+ })