From ac899779715a4fb4b83623efd9263c6cef2ae376 Mon Sep 17 00:00:00 2001 From: Remi <remi@le-filament.com> Date: Mon, 1 Jul 2024 10:18:50 +0200 Subject: [PATCH] [FIX] bank statement creation --- wizard/ebics_statement_rop_import_wizard.py | 73 ++++++++------------- 1 file changed, 26 insertions(+), 47 deletions(-) diff --git a/wizard/ebics_statement_rop_import_wizard.py b/wizard/ebics_statement_rop_import_wizard.py index 3a2b9dc..550b769 100644 --- a/wizard/ebics_statement_rop_import_wizard.py +++ b/wizard/ebics_statement_rop_import_wizard.py @@ -48,11 +48,28 @@ class EbicsStatementRopImport(models.TransientModel): <hr/> """ ebics_mvt_file_id = ebics_wizard_act.get("context").get("ebics_file_ids") - ebics_mvt_file = self.env["ebics.file"].search( - [("id", "in", ebics_mvt_file_id)] - ) + ebics_mvt_file = self.env["ebics.file"].browse(ebics_mvt_file_id) if ebics_mvt_file: - ebics_mvt_file.ensure_one() + # Process EBICS MVT (= create bank statement) + ebics_mvt_file.process() + bank_statement = ebics_mvt_file.bank_statement_ids + bank_statement.ensure_one() + self.log += f""" + <strong><u>Import des mouvements enrichis<u></strong><br/> + Référence : {bank_statement.name} + - Journal : {bank_statement.journal_id.name} + - Date : {bank_statement.date} <br/> + Solde Initial : {bank_statement.balance_start} €<br/> + Solde Final : {bank_statement.balance_end} € + <hr/> + """ + else: + self.log += """ + <strong><u>Import des mouvements enrichis<u></strong><br/> + Aucune donnée n'a pu être téléchargée, + il n'y a donc pas de données à importer. + <hr/> + """ # Download EBICS ROP ebics_rop_obj = self.env["ebics.xfer"].create( @@ -71,50 +88,11 @@ class EbicsStatementRopImport(models.TransientModel): <hr/> """ ebics_rop_file_id = ebics_rop_wizard_act.get("context").get("ebics_file_ids") - ebics_rop_file = self.env["ebics.file"].search( - [("id", "in", ebics_rop_file_id)] - ) - if ebics_rop_file: - ebics_rop_file.ensure_one() - - # Import EBICS mvt file - if ebics_mvt_file: - journal_id = self.env["account.journal"].search( - [("bank_account_id", "=", ebics_conf_id.bank_id.id)] - ) - import_mvt = self.env["account.bank.statement.import"].create( - { - "data_file": ebics_mvt_file.data, - "filename": ebics_mvt_file.name, - } - ) - import_mvt_act = import_mvt.with_context( - journal_id=journal_id.id - ).import_file() - bank_statement_id = import_mvt_act.get("context").get("statement_ids") - bank_statement = self.env["account.bank.statement"].browse( - bank_statement_id - ) - bank_statement.ensure_one() - self.log += f""" - <strong><u>Import des mouvements enrichis<u></strong><br/> - Référence : {bank_statement.name} - - Journal : {bank_statement.journal_id.name} - - Date : {bank_statement.date} <br/> - Solde Initial : {bank_statement.balance_start} €<br/> - Solde Final : {bank_statement.balance_end} € - <hr/> - """ + ebics_rop_file = self.env["ebics.file"].browse(ebics_rop_file_id) - else: - self.log += """ - <strong><u>Import des mouvements enrichis<u></strong><br/> - Aucune donnée n'a pu être téléchargée, - il n'y a donc pas de données à importer. - <hr/> - """ - - if ebics_rop_file and ebics_mvt_file: + if ebics_rop_file and bank_statement: + # Process EBICS ROP file + ebics_rop_file.ensure_one() # Suppression de lignes CORPORATE line_to_delete = bank_statement.line_ids.filtered( lambda line: "CORPORATE CARD" in line.name @@ -132,6 +110,7 @@ class EbicsStatementRopImport(models.TransientModel): for ropl in rop_lines: ropl.update({"statement_id": bank_statement.id}) self.env["account.bank.statement.line"].create(ropl) + ebics_rop_file.state = "done" self.log += f""" <strong><u>Création des lignes ROP<u></strong><br/> -- GitLab