fix(manufacturing): Get raw materials rate from price list ignoring party
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 57a1cc25..2317634 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -189,7 +189,8 @@
 						"currency": self.currency,
 						"conversion_rate": self.conversion_rate or 1,
 						"conversion_factor": arg.get("conversion_factor") or 1,
-						"plc_conversion_rate": 1
+						"plc_conversion_rate": 1,
+						"ignore_party": True
 					})
 					item_doc = frappe.get_doc("Item", arg.get("item_code"))
 					out = frappe._dict()
@@ -213,7 +214,7 @@
 		existing_bom_cost = self.total_cost
 
 		for d in self.get("items"):
-			d.rate = self.get_rm_rate({
+			rate = self.get_rm_rate({
 				"item_code": d.item_code,
 				"bom_no": d.bom_no,
 				"qty": d.qty,
@@ -221,6 +222,8 @@
 				"stock_uom": d.stock_uom,
 				"conversion_factor": d.conversion_factor
 			})
+			if rate:
+				d.rate = rate
 			d.amount = flt(d.rate) * flt(d.qty)
 
 		if self.docstatus == 1:
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 9db04cd..e1607a9 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -424,7 +424,7 @@
 				frappe.msgprint(_("Item Price added for {0} in Price List {1}").format(args.item_code,
 					args.price_list), alert=True)
 
-def get_item_price(args, item_code):
+def get_item_price(args, item_code, ignore_party=False):
 	"""
 		Get name, price_list_rate from Item Price based on conditions
 			Check if the Derised qty is within the increment of the packing list.
@@ -434,17 +434,20 @@
 	"""
 
 	args['item_code'] = item_code
-	conditions = "where (customer is null or customer = '') and (supplier is null or supplier = '')"
-	if args.get("customer"):
-		conditions = "where customer=%(customer)s"
 
-	if args.get("supplier"):
-		conditions = "where supplier=%(supplier)s"
-
-	conditions += """ and item_code=%(item_code)s
+	conditions = """where item_code=%(item_code)s
 		and price_list=%(price_list)s
 		and ifnull(uom, '') in ('', %(uom)s)"""
 
+	if not ignore_party:
+		conditions += " and (customer is null or customer = '') and (supplier is null or supplier = '')"
+		if args.get("customer"):
+			conditions += " and customer=%(customer)s"
+
+		if args.get("supplier"):
+			conditions += " and supplier=%(supplier)s"
+
+
 	if args.get('min_qty'):
 		conditions += " and ifnull(min_qty, 0) <= %(min_qty)s"
 
@@ -490,10 +493,10 @@
 		for field in ["customer", "supplier", "min_qty"]:
 			del item_price_args[field]
 
-		general_price_list_rate = get_item_price(item_price_args, item_code)
+		general_price_list_rate = get_item_price(item_price_args, item_code, ignore_party=args.get("ignore_party"))
 		if not general_price_list_rate and args.get("uom") != args.get("stock_uom"):
 			item_price_args["args"] = args.get("stock_uom")
-			general_price_list_rate = get_item_price(item_price_args, item_code)
+			general_price_list_rate = get_item_price(item_price_args, item_code, ignore_party=args.get("ignore_party"))
 
 		if general_price_list_rate:
 			item_price_data = general_price_list_rate