diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py index 5a9bf1f94bc..e44b8a35a7e 100644 --- a/addons/stock/models/stock_move.py +++ b/addons/stock/models/stock_move.py @@ -607,6 +607,9 @@ Please change the quantity done or the rounding precision of your unit of measur for vals in vals_list: if (vals.get('quantity') or vals.get('move_line_ids')) and 'lot_ids' in vals: vals.pop('lot_ids') + picking_id = self.env['stock.picking'].browse(vals.get('picking_id')) + if picking_id.group_id and 'group_id' not in vals: + vals['group_id'] = picking_id.group_id.id return super().create(vals_list) def write(self, vals): @@ -648,6 +651,10 @@ Please change the quantity done or the rounding precision of your unit of measur move_to_recompute_state |= self.filtered(lambda m: m.state not in ['draft', 'cancel', 'done']) if 'location_dest_id' in vals: move_to_check_dest_location = self.filtered(lambda m: m.location_dest_id.id != vals.get('location_dest_id')) + if 'picking_id' in vals and 'group_id' not in vals: + picking = self.env['stock.picking'].browse(vals['picking_id']) + if picking.group_id: + vals['group_id'] = picking.group_id.id res = super(StockMove, self).write(vals) if move_to_recompute_state: move_to_recompute_state._recompute_state()