diff --git a/addons/mrp/models/mrp_workorder.py b/addons/mrp/models/mrp_workorder.py index 1bf27b1a884..56b1c6d9e76 100644 --- a/addons/mrp/models/mrp_workorder.py +++ b/addons/mrp/models/mrp_workorder.py @@ -238,30 +238,24 @@ class MrpWorkorder(models.Model): workorder.date_finished = workorder.leave_id.date_to def _set_dates(self): - if not self[0].date_start or not self[0].date_finished: - if not self.leave_id: - return - raise UserError(_("It is not possible to unplan one single Work Order. " - "You should unplan the Manufacturing Order instead in order to unplan all the linked operations.")) - date_from = self[0].date_start - date_to = self[0].date_finished - to_write = self.env['mrp.workorder'] for wo in self.sudo(): if wo.leave_id: - to_write |= wo - else: + if (not wo.date_start or not wo.date_finished): + raise UserError(_("It is not possible to unplan one single Work Order. " + "You should unplan the Manufacturing Order instead in order to unplan all the linked operations.")) + wo.leave_id.write({ + 'date_from': wo.date_start, + 'date_to': wo.date_finished, + }) + elif wo.date_start and wo.date_finished: wo.leave_id = wo.env['resource.calendar.leaves'].create({ 'name': wo.display_name, 'calendar_id': wo.workcenter_id.resource_calendar_id.id, - 'date_from': date_from, - 'date_to': date_to, + 'date_from': wo.date_start, + 'date_to': wo.date_finished, 'resource_id': wo.workcenter_id.resource_id.id, 'time_type': 'other', }) - to_write.leave_id.write({ - 'date_from': date_from, - 'date_to': date_to, - }) @api.constrains('blocked_by_workorder_ids') def _check_no_cyclic_dependencies(self):