[IMP] calculate the final balance if not provided in the import file.

This commit is contained in:
Jordi Ballester Alomar
2023-02-22 17:44:24 +01:00
parent bfa2e3fdb0
commit 6baec37ede
2 changed files with 14 additions and 2 deletions

View File

@@ -36,3 +36,16 @@ class AccountBankStatementImport(models.TransientModel):
raise
_logger.warning("Sheet parser error", exc_info=True)
return super()._parse_file(data_file)
def _create_bank_statements(self, stmts_vals):
""" Set balance_end_real if not already provided by the file."""
statement_line_ids, notifications = super()._create_bank_statements(stmts_vals)
statements = self.env["account.bank.statement"].search(
[("line_ids", "in", statement_line_ids)]
)
for statement in statements:
if not statement.balance_end_real:
amount = sum(statement.line_ids.mapped("amount"))
statement.balance_end_real = statement.balance_start + amount
return statement_line_ids, notifications

View File

@@ -66,6 +66,7 @@ class AccountBankStatementImportSheetParser(models.TransientModel):
last_line = lines[-1]
data = {
"date": first_line["timestamp"].date(),
"name": _("%s: %s") % (journal.code, path.basename(filename),),
}
if mapping.balance_column:
@@ -76,10 +77,8 @@ class AccountBankStatementImportSheetParser(models.TransientModel):
{
"balance_start": float(balance_start),
"balance_end_real": float(balance_end),
"name": _("%s: %s") % (journal.code, path.basename(filename),),
}
)
transactions = list(
itertools.chain.from_iterable(
map(lambda line: self._convert_line_to_transactions(line), lines)