Skip to content

Commit

Permalink
fix: incorrect material request quantity in production plan (#37785)
Browse files Browse the repository at this point in the history
  • Loading branch information
rohitwaghchaure committed Oct 31, 2023
1 parent 9b66a06 commit 25718d9
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -1734,7 +1734,10 @@ def get_raw_materials_of_sub_assembly_items(
if not item.conversion_factor and item.purchase_uom:
item.conversion_factor = get_uom_conversion_factor(item.item_code, item.purchase_uom)

item_details.setdefault(item.get("item_code"), item)
if details := item_details.get(item.get("item_code")):
details.qty += item.get("qty")
else:
item_details.setdefault(item.get("item_code"), item)

return item_details

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1321,6 +1321,33 @@ def test_transfer_and_purchase_mrp_for_purchase_uom(self):
self.assertTrue(row.warehouse == mrp_warhouse)
self.assertEqual(row.quantity, 12)

def test_mr_qty_for_same_rm_with_different_sub_assemblies(self):
from erpnext.manufacturing.doctype.bom.test_bom import create_nested_bom

bom_tree = {
"Fininshed Goods2 For SUB Test": {
"SubAssembly2 For SUB Test": {"ChildPart2 For SUB Test": {}},
"SubAssembly3 For SUB Test": {"ChildPart2 For SUB Test": {}},
}
}

parent_bom = create_nested_bom(bom_tree, prefix="")
plan = create_production_plan(
item_code=parent_bom.item,
planned_qty=1,
ignore_existing_ordered_qty=1,
do_not_submit=1,
skip_available_sub_assembly_item=1,
warehouse="_Test Warehouse - _TC",
)

plan.get_sub_assembly_items()
plan.make_material_request()

for row in plan.mr_items:
if row.item_code == "ChildPart2 For SUB Test":
self.assertEqual(row.quantity, 2)


def create_production_plan(**args):
"""
Expand Down

0 comments on commit 25718d9

Please sign in to comment.