diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 9ca0a33ac84..2fe8948f81a 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -910,6 +910,13 @@ class sale_order_line(osv.osv): res[line.id] = line.price_subtotal / line.product_uom_qty if line.product_uom_qty else 0.0 return res + def _get_sale_order(self, cr, uid, ids, context=None): + result = set() + for order in self.pool['sale.order'].browse(cr, uid, ids, context=context): + for line in order.order_line: + result.add(line.id) + return list(result) + _name = 'sale.order.line' _description = 'Sales Order Line' _columns = { @@ -944,7 +951,9 @@ class sale_order_line(osv.osv): \n* The \'Cancelled\' status is set when a user cancel the sales order related.'), 'order_partner_id': fields.related('order_id', 'partner_id', type='many2one', relation='res.partner', store=True, string='Customer'), 'salesman_id':fields.related('order_id', 'user_id', type='many2one', relation='res.users', store=True, string='Salesperson'), - 'company_id': fields.related('order_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True), + 'company_id': fields.related('order_id', 'company_id', type='many2one', relation='res.company', string='Company', store={ + 'sale.order': (_get_sale_order, ['company_id'], 20), + }, readonly=True), 'delay': fields.float('Delivery Lead Time', required=True, help="Number of days between the order confirmation and the shipping of the products to the customer", readonly=True, states={'draft': [('readonly', False)]}), 'procurement_ids': fields.one2many('procurement.order', 'sale_line_id', 'Procurements'), }