test: transferred qty sums item and its alternate

This commit is contained in:
Shllokkk
2026-08-27 18:07:57 +05:30
parent 1411835507
commit 7464f6c76e

View File

@@ -3492,6 +3492,42 @@ class TestWorkOrder(ERPNextTestSuite):
frappe.db.set_single_value("Manufacturing Settings", "validate_components_quantities_per_bom", 0)
def test_transferred_qty_sums_item_and_its_alternate(self):
# Base item + its alternate transfers must sum onto the required row, not overwrite.
fg_item = "Test FG Item For Alternate Transferred Qty"
source_warehouse = "Stores - _TC"
raw_material = "Test RM For Alternate Transferred Qty"
alternate_item = "Alternate Test RM For Alternate Transferred Qty"
make_item(fg_item, {"is_stock_item": 1})
for item in [raw_material, alternate_item]:
make_item(item, {"is_stock_item": 1, "allow_alternative_item": 1})
test_stock_entry.make_stock_entry(item_code=item, target=source_warehouse, qty=10, basic_rate=100)
frappe.get_doc(
{
"doctype": "Item Alternative",
"item_code": raw_material,
"alternative_item_code": alternate_item,
"two_way": 1,
}
).insert()
make_bom(item=fg_item, source_warehouse=source_warehouse, raw_materials=[raw_material])
wo = make_wo_order_test_record(item=fg_item, qty=10, source_warehouse=source_warehouse)
# 6 as the base item
frappe.get_doc(make_stock_entry(wo.name, "Material Transfer for Manufacture", 6)).submit()
# 4 as the alternate item, linked back to the base
alt_transfer = frappe.get_doc(make_stock_entry(wo.name, "Material Transfer for Manufacture", 4))
alt_transfer.items[0].item_code = alternate_item
alt_transfer.items[0].original_item = raw_material
alt_transfer.submit()
wo.reload()
self.assertEqual(wo.required_items[0].transferred_qty, 10)
self.assertEqual(wo.material_transferred_for_manufacturing, 10)
def test_components_qty_for_bom_based_manufacture_entry(self):
frappe.db.set_single_value("Manufacturing Settings", "backflush_raw_materials_based_on", "BOM")
frappe.db.set_single_value("Manufacturing Settings", "validate_components_quantities_per_bom", 1)