diff --git a/stock_request_mrp/models/stock_request.py b/stock_request_mrp/models/stock_request.py index 0bd3794ee..29a13eaa7 100644 --- a/stock_request_mrp/models/stock_request.py +++ b/stock_request_mrp/models/stock_request.py @@ -43,6 +43,11 @@ class StockRequest(models.Model): ) ) + def action_cancel(self): + res = super().action_cancel() + self.mapped("production_ids").action_cancel() + return res + def action_view_mrp_production(self): action = self.env["ir.actions.act_window"]._for_xml_id( "mrp.mrp_production_action" diff --git a/stock_request_mrp/tests/test_stock_request_mrp.py b/stock_request_mrp/tests/test_stock_request_mrp.py index 927d60fe2..cd02d7942 100644 --- a/stock_request_mrp/tests/test_stock_request_mrp.py +++ b/stock_request_mrp/tests/test_stock_request_mrp.py @@ -87,6 +87,14 @@ class TestStockRequestMrp(TestStockRequest): self.assertEqual(order.stock_request_ids.qty_in_progress, 0.0) self.assertEqual(order.stock_request_ids.qty_done, 5.0) + def test_stock_request_order_action_cancel(self): + order = self._create_stock_request(self.stock_request_user, [(self.product, 5)]) + order.action_confirm() + production = fields.first(order.stock_request_ids.production_ids) + self.assertEqual(production.state, "confirmed") + order.with_context(bypass_confirm_wizard=True).action_cancel() + self.assertEqual(production.state, "cancel") + def test_view_actions(self): order = self._create_stock_request(self.stock_request_user, [(self.product, 5)]) order.action_confirm()