From 456d7b38f1f6c889ab24e391154dbe1d21f34371 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Thu, 24 Nov 2016 16:13:27 +0100 Subject: [PATCH] [FIX] sale: store triggers for related stored `company_id` sale orders When changing the company of a sales order, the change was not propagated to the related, stored, company field of its sale order lines These triggers makes that happen. opw-694683 --- addons/sale/sale.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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'), }