diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 97974db46d9..f2b9398f2a7 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1554,12 +1554,18 @@ class stock_picking(models.Model): def rereserve_quants(self, cr, uid, picking, move_ids=[], context=None): """ Unreserve quants then try to reassign quants.""" + if context is None: + context = {} stock_move_obj = self.pool.get('stock.move') if not move_ids: self.do_unreserve(cr, uid, [picking.id], context=context) self.action_assign(cr, uid, [picking.id], context=context) else: - stock_move_obj.do_unreserve(cr, uid, move_ids, context=context) + if 'no_state_change' in context: + move = stock_move_obj.browse(cr, uid, move_ids, context=context) + stock_move_obj.do_unreserve(cr, uid, [m.id for m in move if m.reserved_quant_ids], context=context) + else: + stock_move_obj.do_unreserve(cr, uid, move_ids, context=context) stock_move_obj.action_assign(cr, uid, move_ids, no_prepare=True, context=context) def do_new_transfer(self, cr, uid, ids, context=None):