diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py index 4ca19d3b9d3..d1b8abe06d9 100644 --- a/addons/mrp/models/mrp_production.py +++ b/addons/mrp/models/mrp_production.py @@ -2199,6 +2199,16 @@ class MrpProduction(models.Model): 'res_id': production.id, } + def action_plan_with_components_availability(self): + for production in self.filtered(lambda p: p.state in ('draft', 'confirmed')): + if production.state == 'draft': + production.action_confirm() + expected_date = max(production.move_raw_ids.filtered('forecast_expected_date').mapped('forecast_expected_date'), default=False) + if expected_date: + production.date_start = expected_date + self.button_plan() + + def _has_workorders(self): return self.workorder_ids diff --git a/addons/mrp/views/mrp_production_views.xml b/addons/mrp/views/mrp_production_views.xml index 07742956a15..0786d6b588a 100644 --- a/addons/mrp/views/mrp_production_views.xml +++ b/addons/mrp/views/mrp_production_views.xml @@ -79,6 +79,16 @@ action = records.action_split() + + Plan based on Components Availability + + + + list,form + code + action = records.action_plan_with_components_availability() + + Merge