# Copyright 2019 Tecnativa - Vicent Cubells # Copyright 2019 Tecnativa - Carlos Dauden # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import api, fields, models import odoo.addons.decimal_precision as dp class ContractLine(models.Model): _inherit = "contract.line" previous_price = fields.Float( string="Previous price", related="predecessor_contract_line_id.price_unit", readonly=True, ) variation_percent = fields.Float( compute="_compute_variation_percent", store=True, digits=dp.get_precision("Product Price"), string="Variation %", ) @api.depends("price_unit", "predecessor_contract_line_id.price_unit") def _compute_variation_percent(self): for line in self: if line.price_unit and line.previous_price: line.variation_percent = ( line.price_unit / line.previous_price - 1 ) * 100 else: line.variation_percent = 0.0