# -*- coding: utf-8 -*- from odoo import models class AccountTax(models.Model): _inherit = "account.tax" def _hook_compute_is_used(self, taxes_to_compute): # OVERRIDE in order to fetch taxes used in expenses used_taxes = super()._hook_compute_is_used(taxes_to_compute) taxes_to_compute -= used_taxes if taxes_to_compute: self.env['hr.expense'].flush_model(['tax_ids']) self.env.cr.execute(""" SELECT id FROM account_tax WHERE EXISTS( SELECT 1 FROM expense_tax AS exp WHERE tax_id IN %s AND account_tax.id = exp.tax_id ) """, [tuple(taxes_to_compute)]) used_taxes.update([tax[0] for tax in self.env.cr.fetchall()]) return used_taxes