diff --git a/addons/l10n_pe/models/account_move.py b/addons/l10n_pe/models/account_move.py index 4c0062fdb6f..b763cb2875b 100644 --- a/addons/l10n_pe/models/account_move.py +++ b/addons/l10n_pe/models/account_move.py @@ -1,8 +1,23 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import models, fields +from odoo.tools.sql import column_exists, create_column class AccountMoveLine(models.Model): _inherit = "account.move.line" l10n_pe_group_id = fields.Many2one("account.group", related="account_id.group_id", store=True) + + def _auto_init(self): + """ + Create column to stop ORM from computing it himself (too slow) + """ + if not column_exists(self.env.cr, self._table, 'l10n_pe_group_id'): + create_column(self.env.cr, self._table, 'l10n_pe_group_id', 'int4') + self.env.cr.execute(""" + UPDATE account_move_line line + SET l10n_pe_group_id = account.group_id + FROM account_account account + WHERE account.id = line.account_id + """) + return super()._auto_init()