|
|
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)],
groupby=['result_package_id'], aggregates=['id:array_agg'])
move_lines_by_package = {package.id: move_line_ids for package, move_line_ids in groups}
for package in self:
move_line_ids = {line_id for child_id in children_by_dest_pack[package] for line_id in move_lines_by_package.get(child_id, [])}
move_line_ids.update(move_lines_by_package.get(package.id, []))
package.move_line_ids = [Command.set(list(move_line_ids))]
|
|