**Impacted versions:** 8.0

**Steps to reproduce:**
To reproduce it is necessary the fifo configuration in the assignation of quants in moves.

- Create a sale order with two lines of the same product, one of that line with a route that generate moves between warehouse.

<img width="1231" alt="skitch 65" src="https://cloud.githubusercontent.com/assets/11341058/24102907/d575a638-0d53-11e7-922e-a3f034d43e94.png">

The route used has three pull rules:

1. From Stock Warehouse_1 to Virtual Locations/Inter Company Transit
2. From Virtual Locations/Inter Company Transit to Stock Warehouse_2
3. From Stock Warehouse_2 to Customers

<img width="1224" alt="skitch 66" src="https://cloud.githubusercontent.com/assets/11341058/24103147/b7c2bfbc-0d54-11e7-955c-87247a10e0bd.png">

- Confirm the sale order. It must be created three pickings:

<img width="1226" alt="skitch 67" src="https://cloud.githubusercontent.com/assets/11341058/24103498/d90c9b38-0d55-11e7-97ff-f986df8cdd9b.png">

- Transfer first two pickings.

<img width="1230" alt="skitch 70" src="https://cloud.githubusercontent.com/assets/11341058/24104496/b7b0be8a-0d58-11e7-89a2-4331fceec1d8.png">

- Before transfer third picking, review that one move has reserved the quant correctly because was reserved from the previous pickings.

<img width="1215" alt="skitch 68" src="https://cloud.githubusercontent.com/assets/11341058/24103908/23952cc8-0d57-11e7-9346-bd48d7edb54a.png">

**Current behavior:**

When check availability of this third picking, the quant already reserved is moved to the other move.

<img width="1264" alt="skitch 69" src="https://cloud.githubusercontent.com/assets/11341058/24104056/8be11616-0d57-11e7-8763-a90507315b19.png">
 
**Expected behavior:**

When check availability of this third picking, the moves already reserved must not be altered.


addons/stock/stock.py
res = {}
        for inv in self.browse(cr, uid, ids, context=context):
            res[inv.id] = sum([x.product_qty for x in inv.line_ids])
        return res
    INVENTORY_STATE_SELECTION = [
        ('draft', 'Draft'),
        ('cancel', 'Cancelled'),
        ('confirm', 'In Progress'),
        ('done', 'Validated'),
    ]
    _columns = {
        'name': fields.char('Inventory Reference', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="Inventory Name."),
        'date': fields.datetime('Inventory Date', required=True, readonly=True, help="The date that will be used for the stock level check of the products and the validation of the stock move related to this inventory."),
        'line_ids': fields.one2many('stock.inventory.line', 'inventory_id', 'Inventories', readonly=False, states={'done': [('readonly', True)]}, help="Inventory Lines.", copy=True),
        'move_ids': fields.one2many('stock.move', 'inventory_id', 'Created Moves', help="Inventory Moves.", states={'done': [('readonly', True)]}),
        'state': fields.selection(INVENTORY_STATE_SELECTION, 'Status', readonly=True, select=True, copy=False),
        'company_id': fields.many2one('res.company', 'Company', required=True, select=True, readonly=True, states={'draft': [('readonly', False)]}),
        'location_id': fields.many2one('stock.location', 'Inventoried Location', required=True, readonly=True, states={'draft': [('readonly', False)]}),
        'product_id': fields.many2one('product.product', 'Inventoried Product', readonly=True, states={'draft': [('readonly', False)]}, help="Specify Product to focus your inventory on a particular Product."),
        'package_id': fields.many2one('stock.quant.package', 'Inventoried Pack', readonly=True, states={'draft': [('readonly', False)]}, help="Specify Pack to focus your inventory on a particular Pack."),
        'partner_id': fields.many2one('res.partner', 'Inventoried Owner', readonly=True, states={'draft': [('readonly', False)]}, help="Specify Owner to focus your inventory on a particular Owner."),
        'lot_id': fields.many2one('stock.production.lot', 'Inventoried Lot/Serial Number', readonly=True, states={'draft': [('readonly', False)]}, help="Specify Lot/Serial Number to focus your inventory on a particular Lot/Serial Number.", copy=False),
        'move_ids_exist': fields.function(_get_move_ids_exist, type='boolean', string=' Stock Move Exists?', help='technical field for attrs in view'),
        'filter': fields.selection(_get_available_filters, 'Inventory of', required=True,
                                   help="If you do an entire inventory, you can choose 'All Products' and it will prefill the inventory with the current stock.  If you only do some products  "\
                                      "(e.g. Cycle Counting) you can choose 'Manual Selection of Products' and the system won't propose anything.  You can also let the "\
                                      "system propose for a single product / lot /... "),
        'total_qty': fields.function(_get_total_qty, type="float"),
    }
    def _default_stock_location(self, cr, uid, context=None):