From 175fe9279c13168c08df8b6d7f5fda44368a1bb0 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 4 Feb 2026 16:55:36 +0530 Subject: [PATCH] fix: not able to complete job card --- .../doctype/job_card/job_card.py | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index c9010ff54cc..ba2a36e2ad3 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -1251,10 +1251,26 @@ class JobCard(Document): frappe.db.set_value("Workstation", self.workstation, "status", status) def add_time_logs(self, **kwargs): - row = None kwargs = frappe._dict(kwargs) + if not kwargs.employees and kwargs.to_time: + for row in self.time_logs: + if not row.to_time and row.from_time: + row.to_time = kwargs.to_time + row.time_in_mins = time_diff_in_minutes(row.to_time, row.from_time) + if kwargs.completed_qty: + row.completed_qty = kwargs.completed_qty + row.db_update() + else: + self.add_time_logs_for_employess(kwargs) + + self.validate_time_logs(save=True) + self.save() + + def add_time_logs_for_employess(self, kwargs): + row = None update_status = False + for employee in kwargs.employees: kwargs.employee = employee.get("employee") if kwargs.from_time and not kwargs.to_time: @@ -1290,9 +1306,6 @@ class JobCard(Document): self.set_status(update_status=update_status) - self.validate_time_logs(save=True) - self.save() - def update_workstation_status(self): status_map = { "Open": "Off",