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

Module: Inventory

Entity: stock.package

Compute Method: _compute_picking_ids

Inputs Method Outputs
  • id
children_by_dest_pack, all_pack_ids = self._get_all_children_package_dest_ids()
groups = self.env['stock.move.line']._read_group(
            domain=[('state', 'not in', ['done', 'cancel']), ('result_package_id', 'in', all_pack_ids), ('picking_id', '!=', False)],
            groupby=['result_package_id'], aggregates=['picking_id:array_agg'])
pickings_by_package = {package.id: picking_ids for package, picking_ids in groups}
for package in self:
            picking_ids = {picking_id for child_id in children_by_dest_pack[package] for picking_id in pickings_by_package.get(child_id, [])}
            picking_ids.update(pickings_by_package.get(package.id, []))
            package.picking_ids = [Command.set(list(picking_ids))]

Back to entity