diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py index c0deac88257..cb4012ae219 100644 --- a/addons/stock/models/stock_move.py +++ b/addons/stock/models/stock_move.py @@ -911,6 +911,7 @@ class StockMove(models.Model): }) picking.message_post('Backorder Created') #message needs to be improved moves_to_backorder.write({'picking_id': backorder_picking.id}) + moves_to_backorder.mapped('move_line_ids').write({'picking_id': backorder_picking.id}) moves_to_backorder.action_assign() return moves_todo diff --git a/addons/stock/models/stock_move_line.py b/addons/stock/models/stock_move_line.py index fa373e022f3..faab9a301e5 100644 --- a/addons/stock/models/stock_move_line.py +++ b/addons/stock/models/stock_move_line.py @@ -295,7 +295,7 @@ class StockMoveLine(models.Model): rounding = ml.product_uom_id.rounding # if this move line is force assigned, unreserve elsewhere if needed - if float_compare(ml.qty_done, ml.product_qty, precision_rounding=rounding) > 0: + if ml.location_id.should_impact_quants() and float_compare(ml.qty_done, ml.product_qty, precision_rounding=rounding) > 0: extra_qty = ml.qty_done - ml.product_qty ml._free_reservation(ml.product_id, ml.location_id, extra_qty, lot_id=ml.lot_id, package_id=ml.package_id, owner_id=ml.owner_id) # unreserve what's been reserved