[IMP] account_statement_import_txt_xlsx: Calculate 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
committed by Miquel Raïch
parent 84c1823fa1
commit 07e47a83b8
2 changed files with 15 additions and 6 deletions

View File

@@ -36,3 +36,13 @@ class AccountStatementImport(models.TransientModel):
raise raise
_logger.warning("Sheet parser error", exc_info=True) _logger.warning("Sheet parser error", exc_info=True)
return super()._parse_file(data_file) return super()._parse_file(data_file)
def _create_bank_statements(self, stmts_vals, result):
"""Set balance_end_real if not already provided by the file."""
res = super()._create_bank_statements(stmts_vals, result)
statements = self.env["account.bank.statement"].browse(result["statement_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 res

View File

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