Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Stock Request

Entity: stock.request.abstract

Compute Method: _compute_route_ids

Inputs Method Outputs
route_obj = self.env["stock.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.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
            # ruff: noqa: B023
            record.route_ids = routes.filtered(
                lambda r: any(p.location_dest_id.id in parents for p in r.rule_ids)
            )

Back to entity