[hotfix] check minimum actual start time and actual end time before updating PO Operations (#11041)
* [hotfix] check minimum actual start time and actual end time before updating PO Operations
* Update production_order.py
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py
index f04fddf..f4d3776 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/production_order.py
@@ -370,8 +370,13 @@
self.actual_start_date = None
self.actual_end_date = None
if self.get("operations"):
- self.actual_start_date = min([d.actual_start_time for d in self.get("operations") if d.actual_start_time])
- self.actual_end_date = max([d.actual_end_time for d in self.get("operations") if d.actual_end_time])
+ actual_start_dates = [d.actual_start_time for d in self.get("operations") if d.actual_start_time]
+ if actual_start_dates:
+ self.actual_start_date = min(actual_start_dates)
+
+ actual_end_dates = [d.actual_end_time for d in self.get("operations") if d.actual_end_time]
+ if actual_end_dates:
+ self.actual_end_date = max(actual_end_dates)
def delete_timesheet(self):
for timesheet in frappe.get_all("Timesheet", ["name"], {"production_order": self.name}):
@@ -621,4 +626,4 @@
frappe.msgprint(_("Production Order has been {0}").format(status))
pro_order.notify_update()
- return pro_order.status
\ No newline at end of file
+ return pro_order.status