From cfbdfcf5156c323a4bc2f4f0d465893340869474 Mon Sep 17 00:00:00 2001 From: Sudharsanan11 Date: Mon, 23 Feb 2026 02:32:40 +0530 Subject: [PATCH] test(manufacturing): add test to validate the planned qty --- .../doctype/work_order/test_work_order.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/erpnext/manufacturing/doctype/work_order/test_work_order.py b/erpnext/manufacturing/doctype/work_order/test_work_order.py index 571e43a3d30..08f5e2eaf56 100644 --- a/erpnext/manufacturing/doctype/work_order/test_work_order.py +++ b/erpnext/manufacturing/doctype/work_order/test_work_order.py @@ -598,6 +598,33 @@ class TestWorkOrder(IntegrationTestCase): 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")