fix: correctly group RMs of same phantom from different FG

This commit is contained in:
Smit Vora
2026-03-12 20:21:18 +05:30
parent d8a56e9943
commit e57de4311c

View File

@@ -2104,16 +2104,19 @@ def get_raw_materials_of_sub_assembly_items(
for item in query.run(as_dict=True):
key = (item.item_code, item.bom_no)
existing_key = (item.item_code, item.bom_no or item.main_bom)
if item.is_phantom_item:
sub_assembly_items.setdefault(key, 0)
sub_assembly_items[key] += item.get("qty")
if (item.bom_no and key not in sub_assembly_items) or (
(item.item_code, item.bom_no or item.main_bom) in existing_sub_assembly_items
):
if item.bom_no and not item.is_phantom_item and key not in sub_assembly_items:
continue
if not item.is_phantom_item and existing_key in existing_sub_assembly_items:
continue
if item.bom_no:
planned_qty = flt(sub_assembly_items[key])
planned_qty = flt(item.get("qty")) if item.is_phantom_item else flt(sub_assembly_items[key])
get_raw_materials_of_sub_assembly_items(
existing_sub_assembly_items,
item_details,
@@ -2123,7 +2126,8 @@ def get_raw_materials_of_sub_assembly_items(
sub_assembly_items,
planned_qty=planned_qty,
)
existing_sub_assembly_items.add((item.item_code, item.bom_no or item.main_bom))
if not item.is_phantom_item:
existing_sub_assembly_items.add(existing_key)
else:
if not item.conversion_factor and item.purchase_uom:
item.conversion_factor = get_uom_conversion_factor(item.item_code, item.purchase_uom)