diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index efcbc5fa9b9..58fce82c208 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -1558,13 +1558,14 @@ def add_non_stock_items_cost(stock_entry, work_order, expense_account, job_card= if work_order and not job_card: table = "exploded_items" if work_order.get("use_multi_level_bom") else "items" - items = {} + items = frappe._dict() for d in bom.get(table): # Phantom item is exploded, so its cost is considered via its components if d.get("is_phantom_item"): continue - items.setdefault(d.item_code, d.amount) + items.setdefault(d.item_code, 0) + items[d.item_code] += flt(d.amount) non_stock_items = frappe.get_all( "Item",