from odoo import models, api class AccountMove(models.Model): _inherit = 'account.move' def _get_hr_expense_base_class(self): """ Returns the hr_expense class in the MRO to jump over it. """ mro = type(self).mro() return next((c for c in mro if 'hr_expense' in c.__module__), None) def write(self, vals): # Surgical Jumper to bypass hr_expense's account.move lock hr_expense_class = self._get_hr_expense_base_class() if hr_expense_class and self._context.get('skip_expense_lock'): return super(hr_expense_class, self).write(vals) return super().write(vals)