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
#
#
#
#
#
from openerp.osv import fields,osv
from openerp.tools.translate import _
import openerp.addons.decimal_precision as dp
class stock_picking(osv.osv):
    _inherit = 'stock.picking'
    def _cal_weight(self, cr, uid, ids, name, args, context=None):
        res = {}
        for picking in self.browse(cr, uid, ids, context=context):
            total_weight = total_weight_net = 0.00
            for move in picking.move_lines:
                if move.state != 'cancel':
                    total_weight += move.weight
                    total_weight_net += move.weight_net
            res[picking.id] = {
                                'weight': total_weight,
                                'weight_net': total_weight_net,
                              }
        return res
    def _get_picking_line(self, cr, uid, ids, context=None):