diff --git a/sale_order_lot_selection/models/stock.py b/sale_order_lot_selection/models/stock.py index 9409e35a7f1..2a7a2dd8356 100644 --- a/sale_order_lot_selection/models/stock.py +++ b/sale_order_lot_selection/models/stock.py @@ -14,7 +14,10 @@ def _update_reserved_quantity( owner_id=None, strict=True, ): - if self._context.get("sol_lot_id"): + if ( + self.sale_line_id.lot_id + and available_quantity >= self.sale_line_id.product_uom_qty + ): lot_id = self.sale_line_id.lot_id return super()._update_reserved_quantity( need, @@ -30,6 +33,12 @@ def _prepare_move_line_vals(self, quantity=None, reserved_quant=None): vals = super()._prepare_move_line_vals( quantity=quantity, reserved_quant=reserved_quant ) - if reserved_quant and self.sale_line_id.lot_id: - vals["lot_id"] = self.sale_line_id.lot_id.id + lot = self.sale_line_id.lot_id + if ( + reserved_quant + and reserved_quant.lot_id + and lot + and reserved_quant.lot_id == lot + ): + vals["lot_id"] = lot.id return vals