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
+		})