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 


for move in self:
            # 
            if move.move_orig_ids:
                move_waiting |= move
            else:
                if move.procure_method == 'make_to_order':
                    move_create_proc |= move
                else:
                    move_to_confirm |= move
            if not move.picking_id and move.picking_type_id:
                key = (move.group_id.id, move.location_id.id, move.location_dest_id.id)
                if key not in to_assign:
                    to_assign[key] = self.env['stock.move']
                to_assign[key] |= move
        # 
        for move in move_create_proc:
            values = move._prepare_procurement_values()
            origin = (move.group_id and move.group_id.name or (move.rule_id and move.rule_id.name or move.origin or move.picking_id.name or "/"))
            self.env['procurement.group'].run(move.product_id, move.product_uom_qty, move.product_uom, move.location_id, move.rule_id and move.rule_id.name or "/", origin,
                                              values)
        move_to_confirm.write({'state': 'confirmed'})
        (move_waiting | move_create_proc).write({'state': 'waiting'})
        # 
        for moves in to_assign.values():
            moves._assign_picking()
        self._push_apply()
        if merge:
            return self._merge_moves(merge_into=merge_into)
        return self
    def _prepare_procurement_values(self):