diff --git a/account_statement_base/models/account_bank_statement.py b/account_statement_base/models/account_bank_statement.py index 5dcae41d..c9a60823 100644 --- a/account_statement_base/models/account_bank_statement.py +++ b/account_statement_base/models/account_bank_statement.py @@ -4,6 +4,25 @@ from odoo import _, models class AccountBankStatement(models.Model): _inherit = "account.bank.statement" + # TODO: Delete if merged https://github.com/odoo/odoo/pull/182497 + def _compute_date_index(self): + """The super() method does not take into account lines that do not have + internal_index set yet, and causes sorted() to fail, we need to re-define + the method in these cases to avoid the error. + """ + _self = self + for stmt in self: + if any(not line.internal_index for line in stmt.line_ids): + _self -= stmt + sorted_lines = stmt.line_ids.filtered("internal_index").sorted( + "internal_index" + ) + stmt.first_line_index = sorted_lines[:1].internal_index + stmt.date = sorted_lines.filtered(lambda line: line.state == "posted")[ + -1: + ].date + return super(AccountBankStatement, _self)._compute_date_index() + def action_open_statement_lines(self): self.ensure_one() if not self: