Impacted versions: 9.0

Steps to reproduce:

* Create an MTO product with 
  * Product Type: Stockable Product
  * Routes: "Buy" and "Make to Order"
* Update Qty on Hand to any quantity (i.e, 2).
* Create a sales order with this product and a number <= to the one in the step before.
* Confirm the sales order.

Current behavior:

The created delivery picking appears in state "Reserved" and the current quantity on stock has been reserved, allowing you to transfer that stock.

Expected behavior:

The created delivery picking should be in "Waiting another operation", or at least in "Waiting availability" until the purchase order is confirmed (if you have defined a supplier for the product and the procurement creates the purchase order), which seems to be the current behavior when there's no stock available (is this also correct, as it allows to manually reserve?).
for move in lot_move_qty:
            move_quants_dict = {}
            move_rec = self.pool['stock.move'].browse(cr, uid, move, context=context)
            
            for quant in quants_taken:
                if quant[0] <= move_rec.reserved_quant_ids:
                    move_quants_dict.setdefault(quant[0].lot_id.id, [])
                    move_quants_dict[quant[0].lot_id.id] += [quant]
            false_quants_move = [x for x in false_quants if x[0].reservation_id.id == move]
            for lot in lot_qty:
                move_quants_dict.setdefault(lot, [])
                redo_false_quants = False
                
                
                while false_quants_move and float_compare(lot_qty[lot], 0, precision_rounding=rounding) > 0 and float_compare(lot_move_qty[move], 0, precision_rounding=rounding) > 0:
                    qty_min = min(lot_qty[lot], lot_move_qty[move])
                    if false_quants_move[0].qty > qty_min:
                        move_quants_dict[lot] += [(false_quants_move[0], qty_min)]
                        qty = qty_min
                        redo_false_quants = True
                    else:
                        qty = false_quants_move[0].qty
                        move_quants_dict[lot] += [(false_quants_move[0], qty)]
                        false_quants_move.pop(0)
                    lot_qty[lot] -= qty
                    lot_move_qty[move] -= qty
                
                if float_compare(lot_move_qty[move], 0, precision_rounding=rounding) > 0 and float_compare(lot_qty[lot], 0, precision_rounding=rounding) > 0:
                    
                    domain = [('qty', '>', 0)]