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)

invoice_obj = self.pool.get('account.invoice')
        invoice_line_obj = self.pool.get('account.invoice.line')
        invoice_ids = super(stock_picking, self)._invoice_create_line(cr, uid, moves, journal_id, inv_type=inv_type, context=context)
        delivey_invoices = {}
        for move in moves:
            for invoice in move.picking_id.sale_id.invoice_ids:
                if invoice.id in invoice_ids:
                    delivey_invoices[invoice] = move.picking_id
        if delivey_invoices:
            for invoice, picking in delivey_invoices.items():
                invoice_line = self._prepare_shipping_invoice_line(cr, uid, picking, invoice, context=context)
                if invoice_line:
                    invoice_line_obj.create(cr, uid, invoice_line)
                    invoice_obj.button_compute(cr, uid, [invoice.id], context=context, set_total=(inv_type in ('in_invoice', 'in_refund')))
        return invoice_ids
    def _get_default_uom(self, cr, uid, context=None):
        uom_categ_id = self.pool.get('ir.model.data').xmlid_to_res_id(cr, uid, 'product.product_uom_categ_kgm')
        return self.pool.get('product.uom').search(cr, uid, [('category_id', '=', uom_categ_id), ('factor', '=', 1)])[0]
    _defaults = {
        'weight_uom_id': lambda self, cr, uid, c: self._get_default_uom(cr, uid, c),
    }
class stock_move(osv.osv):
    _inherit = 'stock.move'
    def _cal_move_weight(self, cr, uid, ids, name, args, context=None):