mirror of
https://github.com/OCA/bank-statement-import.git
synced 2025-01-20 12:37:43 +02:00
[IMP] calculate the final balance if not provided in the import file.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user