From b0e1b053e90703763ca228a2c7ac1f50c52addce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Didderen?= Date: Tue, 27 Oct 2026 21:27:01 +0100 Subject: [PATCH] [FIX] account_ebics - Report errors of EBICS administrative orders The note was not initialised, so a failed client setup raised a TypeError on note += ...; and functional errors were not caught, showing a raw traceback. Initialise the note and report EbicsFunctionalError like EbicsTechnicalError. --- account_ebics/wizards/ebics_admin_order.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/account_ebics/wizards/ebics_admin_order.py b/account_ebics/wizards/ebics_admin_order.py index c465b87..d1a1129 100644 --- a/account_ebics/wizards/ebics_admin_order.py +++ b/account_ebics/wizards/ebics_admin_order.py @@ -9,7 +9,7 @@ from odoo import api, fields, models _logger = logging.getLogger(__name__) try: - from fintech.ebics import EbicsTechnicalError + from fintech.ebics import EbicsFunctionalError, EbicsTechnicalError except ImportError: _logger.warning("Failed to import fintech") @@ -35,6 +35,7 @@ class EbicsAdminOrder(models.TransientModel): def ebics_admin_order(self): self.ensure_one() + self.note = "" client = self._setup_client() if not client: self.note += self.env._( @@ -46,6 +47,14 @@ class EbicsAdminOrder(models.TransientModel): data = getattr(client, self.admin_order_type)(parsed=True) pp = pprint.PrettyPrinter() self.note = pp.pformat(data) + except EbicsFunctionalError as e: + self.note = "\n" + self.note += self.env._( + "EBICS Functional Error during execution of order %(order_type)s:", + order_type=self.admin_order_type, + ) + self.note += "\n" + self.note += f"{e.message} (code: {e.code})" except EbicsTechnicalError as e: self.note = "\n" self.note += self.env._(