From 590d401e5ff1065361dd54cd10821431ccae833a Mon Sep 17 00:00:00 2001 From: Saurabh Date: Mon, 18 Sep 2017 15:49:19 +0530 Subject: [PATCH] [fix] if bom specified on purchase order item then don't pull default bom in purchase receipt (#10793) * [fix] if bom specified on purchase order item then don't pull default bom in purchase receipt * Update bom.js * Update stock_entry.py --- erpnext/buying/doctype/purchase_order/purchase_order.py | 1 + erpnext/manufacturing/doctype/bom/bom.js | 2 +- erpnext/stock/doctype/stock_entry/stock_entry.py | 3 ++- erpnext/stock/get_item_details.py | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index 26c8c61167..56f3059f2e 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -295,6 +295,7 @@ def make_purchase_receipt(source_name, target_doc=None): "field_map": { "name": "purchase_order_item", "parent": "purchase_order", + "bom": "bom" }, "postprocess": update_item, "condition": lambda doc: abs(doc.received_qty) < abs(doc.qty) and doc.delivered_by_supplier!=1 diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js index c58c89cd5d..94a2113081 100644 --- a/erpnext/manufacturing/doctype/bom/bom.js +++ b/erpnext/manufacturing/doctype/bom/bom.js @@ -19,7 +19,7 @@ frappe.ui.form.on("BOM", { frm.set_query("source_warehouse", "items", function() { return { filters: { - 'company': frm.doc.company, + 'company': frm.doc.company } }; }); diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index fbadbc54de..fc45f13602 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -631,7 +631,8 @@ class StockEntry(StockController): fetch_exploded = self.use_multi_level_bom) for item in item_dict.values(): - item.from_warehouse = self.from_warehouse or item.default_warehouse + # if source warehouse presents in BOM set from_warehouse as bom source_warehouse + item.from_warehouse = self.from_warehouse or item.source_warehouse or item.default_warehouse return item_dict def get_bom_scrap_material(self, qty): diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 80ef70805a..2a22854677 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -90,7 +90,7 @@ def get_item_details(args): item.lead_time_days) if args.get("is_subcontracted") == "Yes": - out.bom = get_default_bom(args.item_code) + out.bom = args.get('bom') or get_default_bom(args.item_code) get_gross_profit(out)