Merge pull request #13445 from shreyashah115/typo-in-payroll

Typo in Payroll Entry
diff --git a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.js b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.js
index 95c78e6..049a822 100644
--- a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.js
+++ b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.js
@@ -12,6 +12,10 @@
 			"fieldtype": "Link",
 			"options": "Warehouse",
 			"reqd": 1
+		}, {
+			"fieldname": "show_exploded_view",
+			"label": __("Show exploded view"),
+			"fieldtype": "Check"
 		}
 	]
 }
diff --git a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py
index ab9f83d..3236839 100644
--- a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py
+++ b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py
@@ -6,52 +6,61 @@
 from frappe import _
 
 def execute(filters=None):
-    if not filters: filters = {}
-    columns = get_columns()
-    data = get_bom_stock(filters)
-    return columns, data
+	if not filters: filters = {}
+	columns = get_columns()
+
+	data = get_bom_stock(filters)
+
+	return columns, data
 
 def get_columns():
-    """return columns"""
-    columns = [
-        _("Item") + ":Link/Item:150",
-        _("Description") + "::500",
-        _("Required Qty") + ":Float:100",
-        _("In Stock Qty") + ":Float:100",
-        _("Enough Parts to Build") + ":Float:200",
-    ]
+	"""return columns"""
+	columns = [
+		_("Item") + ":Link/Item:150",
+		_("Description") + "::500",
+		_("Required Qty") + ":Float:100",
+		_("In Stock Qty") + ":Float:100",
+		_("Enough Parts to Build") + ":Float:200",
+	]
 
-    return columns
+	return columns
 
 def get_bom_stock(filters):
-    conditions = ""
-    bom = filters.get("bom")
+	conditions = ""
+	bom = filters.get("bom")
 
-    if filters.get("warehouse"):
-        warehouse_details = frappe.db.get_value("Warehouse", filters.get("warehouse"), ["lft", "rgt"], as_dict=1)
-        if warehouse_details:
-            conditions += " and exists (select name from `tabWarehouse` wh \
-        	    where wh.lft >= %s and wh.rgt <= %s and ledger.warehouse = wh.name)" % (warehouse_details.lft,
-                warehouse_details.rgt)
-        else:
-            conditions += " and ledger.warehouse = '%s'" % frappe.db.escape(filters.get("warehouse"))
+	table = "`tabBOM Item`"
+	qty_field = "qty"
 
-    else:
-        conditions += ""
+	if filters.get("show_exploded_view"):
+		table = "`tabBOM Explosion Item`"
+		qty_field = "stock_qty"
 
-    return frappe.db.sql("""
-    		SELECT
-    	        bom_item.item_code ,
-    	        bom_item.description ,
-    	        bom_item.qty,
-    	        sum(ledger.actual_qty) as actual_qty,
-    	        sum(FLOOR(ledger.actual_qty /bom_item.qty))as to_build
-            FROM
-    	        `tabBOM Item` AS bom_item
-    	        LEFT JOIN `tabBin` AS ledger
-    		    ON bom_item.item_code = ledger.item_code
-    		    %s
-            WHERE
-    	        bom_item.parent = '%s' and bom_item.parenttype='BOM'
+	if filters.get("warehouse"):
+		warehouse_details = frappe.db.get_value("Warehouse", filters.get("warehouse"), ["lft", "rgt"], as_dict=1)
+		if warehouse_details:
+			conditions += " and exists (select name from `tabWarehouse` wh \
+				where wh.lft >= %s and wh.rgt <= %s and ledger.warehouse = wh.name)" % (warehouse_details.lft,
+				warehouse_details.rgt)
+		else:
+			conditions += " and ledger.warehouse = '%s'" % frappe.db.escape(filters.get("warehouse"))
 
-            GROUP BY bom_item.item_code""" % (conditions, bom))
+	else:
+		conditions += ""
+
+	return frappe.db.sql("""
+			SELECT
+				bom_item.item_code ,
+				bom_item.description ,
+				bom_item.{qty_field},
+				sum(ledger.actual_qty) as actual_qty,
+				sum(FLOOR(ledger.actual_qty / bom_item.{qty_field}))as to_build
+			FROM
+				{table} AS bom_item
+				LEFT JOIN `tabBin` AS ledger
+				ON bom_item.item_code = ledger.item_code
+				{conditions}
+			WHERE
+				bom_item.parent = '{bom}' and bom_item.parenttype='BOM'
+
+			GROUP BY bom_item.item_code""".format(qty_field=qty_field, table=table, conditions=conditions, bom=bom))