Impacted versions:
8.0

Steps to reproduce:
1. Go to a runbot instance
2. Activate the following options
*\* Settings > Warehouse > Products > Manage different units of measure for products
*\* Settings > Accounting > Accounting & Finance > Analytic accouting
3. Desactivate the following option
*\* Settings > Accounting > Analytic accouting > Sale > Use multiple analytic accounts on sales
4. Create a Sale order
*\* Add 2 qty of the product iMac
*\* Add in quote the delivery method "Normal Delivery Charges" and set 2 qty
*\* Set an analytic account under Contract/Analytic
*\* Set the field Create Invoice to "On delivery Order"
5. Deliver only 1 quantity of the iMac and then create the invoice
6. Deliver the last quantity of the iMac and then create the invoice

Current behavior:
The first invoice contains 2 qty of the Transport
The second invoice contains 1 qty of the Transport, has no analytic account set, has no UOM set

Expected behavior:
The behavior should be consistent for both invoices
Option 1) On both invoices 2 qty of the transport with analytic, UOM, etc 
Option 2) On the first invoices 2 qty of the transport but no transport on the second invoices because its considered as already invoiced.

Video/Screenshot link (optional):

![out](https://cloud.githubusercontent.com/assets/8557179/16490774/61bc5e54-3edb-11e6-860c-8b6fc67fb261.gif)

addons/delivery/stock.py
quantity = sum([line.product_uom_qty for line in picking.move_lines])
        price = grid_obj.get_price_from_picking(cr, uid, grid_id,
                invoice.amount_untaxed, picking.weight, picking.volume,
                quantity, context=context)
        if invoice.company_id.currency_id.id != invoice.currency_id.id:
            price = currency_obj.compute(cr, uid, invoice.company_id.currency_id.id, invoice.currency_id.id,
                price, context=dict(context or {}, date=invoice.date_invoice))
        account_id = picking.carrier_id.product_id.property_account_income.id
        if not account_id:
            account_id = picking.carrier_id.product_id.categ_id\
                    .property_account_income_categ.id
        taxes = picking.carrier_id.product_id.taxes_id
        partner = picking.partner_id or False
        fp = invoice.fiscal_position or partner.property_account_position
        if partner:
            account_id = self.pool.get('account.fiscal.position').map_account(cr, uid, fp, account_id)
            taxes_ids = self.pool.get('account.fiscal.position').map_tax(cr, uid, fp, taxes, context=context)
        else:
            taxes_ids = [x.id for x in taxes]
        return {
            'name': picking.carrier_id.name,
            'invoice_id': invoice.id,
            'uos_id': picking.carrier_id.product_id.uos_id.id,
            'product_id': picking.carrier_id.product_id.id,
            'account_id': account_id,
            'price_unit': price,
            'quantity': 1,
            'invoice_line_tax_id': [(6, 0, taxes_ids)],
        }
    def _invoice_create_line(self, cr, uid, moves, journal_id, inv_type='out_invoice', context=None):