diff --git a/addons/account/models/account_bank_statement.py b/addons/account/models/account_bank_statement.py index baa2db9b709..d74862a500b 100644 --- a/addons/account/models/account_bank_statement.py +++ b/addons/account/models/account_bank_statement.py @@ -753,6 +753,17 @@ class AccountBankStatementLine(models.Model): 'name': self.statement_id.name or _("Bank Statement %s") % self.date, } + def _find_or_create_bank_account(self): + bank_account = self.env['res.partner.bank'].search( + [('company_id', '=', self.company_id.id), ('acc_number', '=', self.account_number)]) + if not bank_account: + bank_account = self.env['res.partner.bank'].create({ + 'acc_number': self.account_number, + 'partner_id': self.partner_id.id, + 'company_id': self.company_id.id, + }) + return bank_account + def process_reconciliation(self, counterpart_aml_dicts=None, payment_aml_rec=None, new_aml_dicts=None): """ Match statement lines with existing payments (eg. checks) and/or payables/receivables (eg. invoices and credit notes) and/or new move lines (eg. write-offs). If any new journal item needs to be created (via new_aml_dicts or counterpart_aml_dicts), a new journal entry will be created and will contain those @@ -911,12 +922,7 @@ class AccountBankStatementLine(models.Model): if self.account_number and self.partner_id and not self.bank_account_id: # Search bank account without partner to handle the case the res.partner.bank already exists but is set # on a different partner. - bank_account = self.env['res.partner.bank'].search([('company_id', '=', self.company_id.id),('acc_number', '=', self.account_number)]) - if not bank_account: - bank_account = self.env['res.partner.bank'].create({ - 'acc_number': self.account_number, 'partner_id': self.partner_id.id - }) - self.bank_account_id = bank_account + self.bank_account_id = self._find_or_create_bank_account() counterpart_moves._check_balanced() return counterpart_moves