fix(manufacturing): prevent KeyError in BOM Creator when sub-assembly reused

Ensure missing (fg_item, fg_reference_id) keys are initialized in
production_item_wise_rm before appending items. This avoids crashes
when the same sub-assembly is referenced under multiple parents.
This commit is contained in:
KerollesFathy
2025-09-27 12:54:10 +00:00
parent 0dc2545fb9
commit 4f8b2e520a

View File

@@ -255,6 +255,13 @@ class BOMCreator(Document):
if not row.fg_reference_id and production_item_wise_rm.get((row.fg_item, row.fg_reference_id)):
frappe.throw(_("Please set Parent Row No for item {0}").format(row.fg_item))
key = (row.fg_item, row.fg_reference_id)
if key not in production_item_wise_rm:
production_item_wise_rm.setdefault(
key,
frappe._dict({"items": [], "bom_no": "", "fg_item_data": row}),
)
production_item_wise_rm[(row.fg_item, row.fg_reference_id)]["items"].append(row)
reverse_tree = OrderedDict(reversed(list(production_item_wise_rm.items())))