[optimize] tree conditions for pricing rule
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 5c61035..198940c 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -103,7 +103,7 @@
def set_valuation_rate(out, args):
- if frappe.db.exists("Product Bundle", args.item_code):
+ if frappe.db.exists("Product Bundle", args.item_code, cache=True):
valuation_rate = 0.0
bundled_items = frappe.get_doc("Product Bundle", args.item_code)
@@ -330,10 +330,17 @@
return None
def get_default_cost_center(args, item, item_group):
- return (frappe.db.get_value("Project", args.get("project"), "cost_center", cache=True)
- or (item.get("selling_cost_center") if args.get("customer") else item.get("buying_cost_center"))
- or (item_group.get("selling_cost_center") if args.get("customer") else item_group.get("buying_cost_center"))
- or args.get("cost_center"))
+ cost_center = None
+ if args.get('project'):
+ cost_center = frappe.db.get_value("Project", args.get("project"), "cost_center", cache=True)
+
+ if not cost_center:
+ if args.get('customer'):
+ cost_center = item.get('selling_cost_center') or item_group.get('selling_cost_center')
+ else:
+ cost_center = item.get('buying_cost_center') or item_group.get('buying_cost_center')
+
+ return cost_center or args.get("cost_center")
def get_default_supplier(args, item, item_group):
return (item.get("default_supplier")