diff --git a/addons/sale_margin/models/sale_order.py b/addons/sale_margin/models/sale_order.py index 6d4aac67415560312f17408cbea8f565750628f3..69aca28583db4845b0146bbaae05f1a6e3eafdcc 100644 --- a/addons/sale_margin/models/sale_order.py +++ b/addons/sale_margin/models/sale_order.py @@ -2,11 +2,18 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, fields, models +from odoo.tools.sql import column_exists, create_column class SaleOrderLine(models.Model): _inherit = "sale.order.line" + def _auto_init(self): + if not column_exists(self.env.cr, "sale_order_line", "margin"): + # By creating the column 'margin' manually we steer clear of hefty data computation. + create_column(self.env.cr, "sale_order_line", "margin", "NUMERIC") + return super()._auto_init() + margin = fields.Float(compute='_product_margin', digits='Product Price', store=True) purchase_price = fields.Float(string='Cost', digits='Product Price')