Merge pull request #52862 from frappe/mergify/bp/version-15-hotfix/pr-52803

fix(manufacturing): update closed status for current work order before calculating planned qty (backport #52803)
This commit is contained in:
Mihir Kandoi
2026-02-23 07:46:07 +05:30
committed by GitHub
2 changed files with 28 additions and 1 deletions

View File

@@ -595,6 +595,33 @@ class TestWorkOrder(FrappeTestCase):
work_order1.cancel()
work_order.cancel()
def test_planned_qty_updates_after_closing_work_order(self):
item_code = "_Test FG Item"
fg_warehouse = "_Test Warehouse 1 - _TC"
planned_before = (
frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": fg_warehouse}, "planned_qty")
or 0
)
wo = make_wo_order_test_record(item=item_code, fg_warehouse=fg_warehouse, qty=10)
planned_after_submit = (
frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": fg_warehouse}, "planned_qty")
or 0
)
self.assertEqual(planned_after_submit, planned_before + 10)
close_work_order(wo.name, "Closed")
self.assertEqual(frappe.db.get_value("Work Order", wo.name, "status"), "Closed")
planned_after_close = (
frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": fg_warehouse}, "planned_qty")
or 0
)
self.assertEqual(planned_after_close, planned_before)
def test_work_order_with_non_transfer_item(self):
frappe.db.set_single_value("Manufacturing Settings", "backflush_raw_materials_based_on", "BOM")

View File

@@ -1607,8 +1607,8 @@ def close_work_order(work_order, status):
)
)
work_order.on_close_or_cancel()
work_order.update_status(status)
work_order.on_close_or_cancel()
frappe.msgprint(_("Work Order has been {0}").format(status))
work_order.notify_update()
return work_order.status