From d6614f284869eb87f30dfa5afd50ccdcbed64bd5 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 9 Jan 2025 13:10:00 +0530 Subject: [PATCH] fix: timeout error for work order (cherry picked from commit b4ceda6f2c88b0bd08e5cdf3f5a3f125442ac76d) (cherry picked from commit 122b966a7b78f78e1cd1a645824f33c0d5d797ff) --- .../manufacturing/doctype/job_card/job_card.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index 011df3258eed..bc1076d1340c 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -309,6 +309,9 @@ def has_overlap(self, production_capacity, time_logs): return overlap def get_time_logs(self, args, doctype, open_job_cards=None): + if get_datetime(args.from_time) >= get_datetime(args.to_time): + args.to_time = add_to_date(args.from_time, minutes=args.remaining_time_in_mins) + jc = frappe.qb.DocType("Job Card") jctl = frappe.qb.DocType(doctype) @@ -354,8 +357,10 @@ def get_time_logs(self, args, doctype, open_job_cards=None): else: query = query.where(jc.name.isin(open_job_cards)) - if doctype != "Job Card Time Log": - query = query.where(jc.total_time_in_mins == 0) + if doctype == "Job Card Time Log": + query = query.where(jc.docstatus < 2) + else: + query = query.where((jc.docstatus == 0) & (jc.total_time_in_mins == 0)) time_logs = query.run(as_dict=True) @@ -412,7 +417,13 @@ def time_slot_wise_busy_workstations(existing_time_logs) -> dict: def schedule_time_logs(self, row): row.remaining_time_in_mins = row.time_in_mins while row.remaining_time_in_mins > 0: - args = frappe._dict({"from_time": row.planned_start_time, "to_time": row.planned_end_time}) + args = frappe._dict( + { + "from_time": row.planned_start_time, + "to_time": row.planned_end_time, + "remaining_time_in_mins": row.remaining_time_in_mins, + } + ) self.validate_overlap_for_workstation(args, row) self.check_workstation_time(row)