Impacted versions:
11.0

I don't know if it is an issue, but I think is strange.

`product_qty` is in unit of `product` : https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L240
`reserved_availability` is in unit of `stock.move` : https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L295

`move.product_qty - move.reserved_availability` seems to have no sens, no ?

https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L915
https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L917
https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L924

thank for your answer

@jco-odoo 
@alnslang 


if moves_todo[0].picking_id.move_type == 'one':
            most_important_move = moves_todo[0]
            if most_important_move.state == 'confirmed':
                return 'confirmed' if most_important_move.product_uom_qty else 'assigned'
            elif most_important_move.state == 'partially_available':
                return 'confirmed'
            else:
                return moves_todo[0].state or 'draft'
        elif moves_todo[0].state != 'assigned' and any(move.state in ['assigned', 'partially_available'] for move in moves_todo):
            return 'partially_available'
        else:
            least_important_move = moves_todo[-1]
            if least_important_move.state == 'confirmed' and least_important_move.product_uom_qty == 0:
                return 'assigned'
            else:
                return moves_todo[-1].state or 'draft'
    @api.onchange('product_id', 'product_qty')
    def onchange_quantity(self):
        if not self.product_id or self.product_qty < 0.0:
            self.product_qty = 0.0
        if self.product_qty < self._origin.product_qty:
            warning_mess = {
                'title': _('Quantity decreased!'),
                'message' : _("By changing this quantity here, you accept the "
                              "new quantity as complete: Odoo will not "
                              "automatically generate a back order."),
            }
            return {'warning': warning_mess}
    @api.onchange('product_id')
    def onchange_product_id(self):