diff --git a/addons/stock/models/stock_picking.py b/addons/stock/models/stock_picking.py index 213c54a4c7a..71fd5cb3d69 100644 --- a/addons/stock/models/stock_picking.py +++ b/addons/stock/models/stock_picking.py @@ -405,10 +405,12 @@ class Picking(models.Model): """ for picking in self: packages = self.env['stock.quant.package'] - for ml in picking.move_line_ids: - if ml.package_id.id == ml.result_package_id.id: - if picking.state in ('done', 'cancel') or picking._check_move_lines_map_quant_package(ml.package_id): - packages |= ml.package_id + packages_to_check = picking.move_line_ids\ + .filtered(lambda ml: ml.result_package_id and ml.package_id.id == ml.result_package_id.id)\ + .mapped('package_id') + for package_to_check in packages_to_check: + if picking.state in ('done', 'cancel') or picking._check_move_lines_map_quant_package(package_to_check): + packages |= package_to_check picking.entire_package_ids = packages picking.entire_package_detail_ids = packages