From 77b225e02184546cd8f517bf141fc373755f12ca Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 14 Sep 2017 13:22:45 +0530 Subject: [PATCH] Fetch BOM items in Production Order in the same order as BOM --- erpnext/manufacturing/doctype/bom/bom.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index e86f1bb1e6..b308e097ea 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -512,7 +512,6 @@ def get_bom_items_as_dict(bom, company, qty=1, fetch_exploded=1, fetch_scrap_ite # Did not use qty_consumed_per_unit in the query, as it leads to rounding loss query = """select - (Select idx from `tabBOM Item` where item_code = bom_item.item_code and parent = %(parent)s ) as idx, bom_item.item_code, item.item_name, sum(bom_item.stock_qty/ifnull(bom.quantity, 1)) * %(qty)s as qty, @@ -538,15 +537,15 @@ def get_bom_items_as_dict(bom, company, qty=1, fetch_exploded=1, fetch_scrap_ite if fetch_exploded: query = query.format(table="BOM Explosion Item", where_conditions="""and item.is_sub_contracted_item = 0""", - select_columns = ", bom_item.source_warehouse") + select_columns = ", bom_item.source_warehouse, (Select idx from `tabBOM Item` where item_code = bom_item.item_code and parent = %(parent)s ) as idx") items = frappe.db.sql(query, { "parent": bom, "qty": qty, "bom": bom }, as_dict=True) elif fetch_scrap_items: - query = query.format(table="BOM Scrap Item", where_conditions="", select_columns="") - items = frappe.db.sql(query, { "parent": bom, "qty": qty, "bom": bom }, as_dict=True) + query = query.format(table="BOM Scrap Item", where_conditions="", select_columns=", bom_item.idx") + items = frappe.db.sql(query, { "qty": qty, "bom": bom }, as_dict=True) else: query = query.format(table="BOM Item", where_conditions="", - select_columns = ", bom_item.source_warehouse") - items = frappe.db.sql(query, { "parent": bom, "qty": qty, "bom": bom }, as_dict=True) + select_columns = ", bom_item.source_warehouse, bom_item.idx") + items = frappe.db.sql(query, { "qty": qty, "bom": bom }, as_dict=True) for item in items: if item_dict.has_key(item.item_code):