diff --git a/mrp_warehouse_calendar/models/mrp_production.py b/mrp_warehouse_calendar/models/mrp_production.py index cb2c2573a..b02c8a580 100644 --- a/mrp_warehouse_calendar/models/mrp_production.py +++ b/mrp_warehouse_calendar/models/mrp_production.py @@ -8,14 +8,25 @@ class MrpProduction(models.Model): _inherit = "mrp.production" @api.onchange("date_planned_start", "product_id") - def onchange_date_planned(self): - dt_planned = self.date_planned_start - warehouse = self.picking_type_id.warehouse_id - if warehouse.calendar_id and self.product_id.produce_delay: - date_expected_finished = warehouse.calendar_id.plan_days( - +1 * self.product_id.produce_delay + 1, dt_planned - ) - self.date_planned_finished = date_expected_finished + def _onchange_date_planned_start(self): + res = super(MrpProduction, self)._onchange_date_planned_start() + if self.date_planned_start and not self.is_planned: + warehouse = self.picking_type_id.warehouse_id + if warehouse.calendar_id: + if self.product_id.produce_delay: + self.date_planned_finished = warehouse.calendar_id.plan_days( + +1 * self.product_id.produce_delay + 1, self.date_planned_start + ) + if self.company_id.manufacturing_lead: + self.date_planned_finished = warehouse.calendar_id.plan_days( + +1 * self.company_id.manufacturing_lead + 1, + self.date_planned_finished, + ) + self.move_finished_ids = [ + (1, m.id, {"date": self.date_planned_finished}) + for m in self.move_finished_ids + ] + return res @api.returns("self", lambda value: value.id) def copy(self, default=None): diff --git a/mrp_warehouse_calendar/tests/test_mrp_warehouse_calendar.py b/mrp_warehouse_calendar/tests/test_mrp_warehouse_calendar.py index fce86966c..49ca6c7c7 100644 --- a/mrp_warehouse_calendar/tests/test_mrp_warehouse_calendar.py +++ b/mrp_warehouse_calendar/tests/test_mrp_warehouse_calendar.py @@ -123,7 +123,7 @@ class TestMrpWarehouseCalendar(TransactionCase): } ) mo.date_planned_start = "2097-01-04 09:00:00" - mo.onchange_date_planned() + mo._onchange_date_planned_start() date_plan_finished = fields.Date.to_date(mo.date_planned_finished) monday = fields.Date.to_date("2097-01-07 09:00:00") self.assertEqual(date_plan_finished, monday)