mirror of
https://github.com/OCA/bank-statement-import.git
synced 2025-01-20 12:37:43 +02:00
[IMP] account_statement_import_txt_xlsx: Calculate final balance if not provided in the import file
This commit is contained in:
committed by
Miquel Raïch
parent
84c1823fa1
commit
07e47a83b8
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user