From 6cde9645ab4ad68e74cc1f5de29440696a7e93d9 Mon Sep 17 00:00:00 2001 From: Kirti Choudhary Date: Fri, 18 May 2018 05:17:20 +0000 Subject: [PATCH 1/2] [IMP] mrp: Display status of the WO on the kanban cards The purpose is to help the operator to select easily an order that is ready without using filter. Related to task 1838642 Closes #25103 --- addons/mrp/models/mrp_workorder.py | 2 +- addons/mrp/views/mrp_workorder_views.xml | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/mrp/models/mrp_workorder.py b/addons/mrp/models/mrp_workorder.py index 294a17c4d6c..6807bb8bb29 100644 --- a/addons/mrp/models/mrp_workorder.py +++ b/addons/mrp/models/mrp_workorder.py @@ -64,7 +64,7 @@ class MrpWorkorder(models.Model): compute='_compute_is_produced') state = fields.Selection([ - ('pending', 'Pending'), + ('pending', 'Waiting for another WO'), ('ready', 'Ready'), ('progress', 'In Progress'), ('done', 'Finished'), diff --git a/addons/mrp/views/mrp_workorder_views.xml b/addons/mrp/views/mrp_workorder_views.xml index c3b330748c3..57097297765 100644 --- a/addons/mrp/views/mrp_workorder_views.xml +++ b/addons/mrp/views/mrp_workorder_views.xml @@ -358,10 +358,13 @@
-
- +
+ - + + +
From efb56976f42423b6eebe443d021254819c9f2836 Mon Sep 17 00:00:00 2001 From: Kirti Choudhary Date: Fri, 18 May 2018 05:44:50 +0000 Subject: [PATCH 2/2] [IMP] mrp: WO do not allow end date < start date It does not make sense to finish something before starting it. Do not allow to write on a done WO except for time log. Related to task 1838642 Closes #25103 --- addons/mrp/models/mrp_workorder.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/mrp/models/mrp_workorder.py b/addons/mrp/models/mrp_workorder.py index 6807bb8bb29..8abf14a2d75 100644 --- a/addons/mrp/models/mrp_workorder.py +++ b/addons/mrp/models/mrp_workorder.py @@ -230,8 +230,14 @@ class MrpWorkorder(models.Model): @api.multi def write(self, values): - if ('date_planned_start' in values or 'date_planned_finished' in values) and any(workorder.state == 'done' for workorder in self): + if list(values.keys()) != ['time_ids'] and any(workorder.state == 'done' for workorder in self): raise UserError(_('You can not change the finished work order.')) + if 'date_planned_start' in values or 'date_planned_finished' in values: + for workorder in self: + start_date = fields.Datetime.to_datetime(values.get('date_planned_start')) or workorder.date_planned_start + end_date = fields.Datetime.to_datetime(values.get('date_planned_finished')) or workorder.date_planned_finished + if start_date and end_date and start_date > end_date: + raise UserError(_('The planned end date of the work order cannot be prior to the planned start date, please correct this to save the work order.')) return super(MrpWorkorder, self).write(values) def _generate_lot_ids(self):