diff --git a/addons/account/models/account_bank_statement_line.py b/addons/account/models/account_bank_statement_line.py index 595a95337d6..c8115d5d316 100644 --- a/addons/account/models/account_bank_statement_line.py +++ b/addons/account/models/account_bank_statement_line.py @@ -436,7 +436,13 @@ class AccountBankStatementLine(models.Model): # ------------------------------------------------------------------------- def _find_or_create_bank_account(self): - bank_account = self.env['res.partner.bank'].with_context(active_test=False).search([ + self.ensure_one() + # There is a sql constraint on res.partner.bank ensuring an unique pair . + # Since it's not dependent of the company, we need to search on others company too to avoid the creation + # of an extra res.partner.bank raising an error coming from this constraint. + # However, at the end, we need to filter out the results to not trigger the check_company when trying to + # assign a res.partner.bank owned by another company. + bank_account = self.env['res.partner.bank'].sudo().with_context(active_test=False).search([ ('acc_number', '=', self.account_number), ('partner_id', '=', self.partner_id.id), ]) @@ -446,7 +452,7 @@ class AccountBankStatementLine(models.Model): 'partner_id': self.partner_id.id, 'journal_id': None, }) - return bank_account + return bank_account.filtered(lambda x: x.company_id in (False, self.company_id)) def _get_default_amls_matching_domain(self): return [