From 8b4cb1829ec6281074c038465279e03608fb06e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 21 Oct 2024 09:00:19 +0200 Subject: [PATCH] [FIX] stock_request: Remove route_ids fields from requests It is not correct to set the route_ids field with the product routes, you must be able to select any route (similar to what is shown in the product form view). TT50610 --- .../models/stock_request_abstract.py | 35 +------------------ stock_request/tests/test_stock_request.py | 1 - .../views/stock_request_order_views.xml | 1 - stock_request/views/stock_request_views.xml | 1 - stock_request_kanban/tests/test_kanban.py | 1 - .../views/stock_request_kanban_views.xml | 1 - 6 files changed, 1 insertion(+), 39 deletions(-) diff --git a/stock_request/models/stock_request_abstract.py b/stock_request/models/stock_request_abstract.py index 5c8f5f19fb2a..f9bfb17861e5 100644 --- a/stock_request/models/stock_request_abstract.py +++ b/stock_request/models/stock_request_abstract.py @@ -96,47 +96,14 @@ def _compute_product_qty(self): route_id = fields.Many2one( "stock.location.route", string="Route", - domain="[('id', 'in', route_ids)]", + domain=[("product_selectable", "=", True)], ondelete="restrict", ) - route_ids = fields.Many2many( - "stock.location.route", - string="Routes", - compute="_compute_route_ids", - readonly=True, - ) - _sql_constraints = [ ("name_uniq", "unique(name, company_id)", "Name must be unique") ] - @api.depends("product_id", "warehouse_id", "location_id") - def _compute_route_ids(self): - route_obj = self.env["stock.location.route"] - routes = route_obj.search( - [("warehouse_ids", "in", self.mapped("warehouse_id").ids)] - ) - routes_by_warehouse = {} - for route in routes: - for warehouse in route.warehouse_ids: - routes_by_warehouse.setdefault( - warehouse.id, self.env["stock.location.route"] - ) - routes_by_warehouse[warehouse.id] |= route - for record in self: - routes = route_obj - if record.product_id: - routes += record.product_id.mapped( - "route_ids" - ) | record.product_id.mapped("categ_id").mapped("total_route_ids") - if record.warehouse_id and routes_by_warehouse.get(record.warehouse_id.id): - routes |= routes_by_warehouse[record.warehouse_id.id] - parents = record.get_parents().ids - record.route_ids = routes.filtered( - lambda r: any(p.location_id.id in parents for p in r.rule_ids) - ) - def get_parents(self): location = self.location_id result = location diff --git a/stock_request/tests/test_stock_request.py b/stock_request/tests/test_stock_request.py index 90ba1fa92c8f..0241165b7bb6 100644 --- a/stock_request/tests/test_stock_request.py +++ b/stock_request/tests/test_stock_request.py @@ -254,7 +254,6 @@ def test_onchanges(self): vals = stock_request.default_get(["warehouse_id", "company_id"]) stock_request.update(vals) stock_request.onchange_product_id() - self.assertIn(self.route.id, stock_request.route_ids.ids) self.stock_request_user.company_id = self.company_2 stock_request.company_id = self.company_2 diff --git a/stock_request/views/stock_request_order_views.xml b/stock_request/views/stock_request_order_views.xml index c65142a5656c..0f33a4b5194a 100644 --- a/stock_request/views/stock_request_order_views.xml +++ b/stock_request/views/stock_request_order_views.xml @@ -132,7 +132,6 @@ options="{'no_create': True}" groups="stock.group_stock_multi_locations" /> - diff --git a/stock_request/views/stock_request_views.xml b/stock_request/views/stock_request_views.xml index af0eb1c6b01f..ae5f87ee3a46 100644 --- a/stock_request/views/stock_request_views.xml +++ b/stock_request/views/stock_request_views.xml @@ -182,7 +182,6 @@ options="{'no_create': True}" groups="stock.group_stock_multi_locations" /> - -