diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index 011df3258ee..bc1076d1340 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -309,6 +309,9 @@ class JobCard(Document): 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 @@ class JobCard(Document): 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 @@ class JobCard(Document): 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)