From b3e6b304e46b20fc9112a18db1c6a183dcfb5ce1 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Tue, 17 Feb 2026 10:36:25 +0530 Subject: [PATCH] fix: production plan status --- .../production_plan/production_plan.py | 26 +++++++------------ 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.py b/erpnext/manufacturing/doctype/production_plan/production_plan.py index eeed10e5083..41bafe1faf3 100644 --- a/erpnext/manufacturing/doctype/production_plan/production_plan.py +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.py @@ -693,8 +693,8 @@ class ProductionPlan(Document): self.status = "Completed" if self.status != "Completed": - self.update_ordered_status() self.update_requested_status() + self.update_ordered_status() if close is not None: self.db_set("status", self.status) @@ -703,25 +703,17 @@ class ProductionPlan(Document): self.update_bin_qty() def update_ordered_status(self): - update_status = False - for d in self.po_items: - if d.planned_qty == d.ordered_qty: - update_status = True - - if update_status and self.status != "Completed": - self.status = "In Process" + for child_table in ["po_items", "sub_assembly_items"]: + for item in self.get(child_table): + if item.ordered_qty: + self.status = "In Process" + return def update_requested_status(self): - if not self.mr_items: - return - - update_status = True for d in self.mr_items: - if d.quantity != d.requested_qty: - update_status = False - - if update_status: - self.status = "Material Requested" + if d.requested_qty: + self.status = "Material Requested" + break def get_production_items(self): item_dict = {}