mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-27 22:05:19 +00:00
test: transferred qty sums item and its alternate
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user