Update selling_controller.py
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 2a43b39..68e9155 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -164,15 +164,14 @@
frappe.throw(_("Maxiumm discount for Item {0} is {1}%").format(d.item_code, discount))
def validate_selling_price(self):
- selling_settings = frappe.get_single("Selling Settings")
- if not selling_settings.validate_selling_price:
+ if not frappe.db.get_single_value("Selling Settings", "validate_selling_price"):
return
for it in self.get("items"):
- last_purchase_rate = frappe.db.get_value("Item", it.name, "last_purchase_rate")
+ last_purchase_rate, is_stock_item = frappe.db.get_value("Item", it.name, ["last_purchase_rate", "is_stock_item"])
if flt(it.base_rate) < flt(last_purchase_rate):
- throw(it.name, last_purchase_rate)
+ throw(it.name, last_purchase_rate, "last purchase rate")
last_valuation_rate = frappe.db.sql("""
SELECT valuation_rate FROM `tabStock Ledger Entry` WHERE item_code = %s
@@ -180,14 +179,12 @@
ORDER BY posting_date DESC, posting_time DESC, name DESC LIMIT 1
""", (it.item_code, it.warehouse))
- is_stock_item = frappe.db.get_value("Item", it.name, "is_stock_item")
-
if is_stock_item and flt(it.base_rate) < flt(last_valuation_rate):
- throw(it.name, last_valuation_rate)
+ throw_message(it.name, last_valuation_rate, "valuation rate")
- def throw(item_name, rate):
- frappe.throw(_("""Selling price for item {0} is lower than its Purchase rate or Valuation rate.
- Selling price should be atleast {1}""").format(item_name, rate))
+ def throw_message(item_name, rate, ref_rate_field):
+ frappe.throw(_("""Selling price for item {0} is lower than its {1}. Selling price should be atleast {2}""")
+ .format(item_name, ref_rate_field, rate))
def get_item_list(self):
il = []