From 97105da147bbd06662e89f0bacd6889f9254420b Mon Sep 17 00:00:00 2001 From: Luc De Meyer Date: Fri, 1 Dec 2023 18:53:54 +0100 Subject: [PATCH] [IMP]add support for fintech 7.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In fintech 7.4 EbicsUser.manual_approval has been replaced by class parameter “transport_only”. The account_ebics code has now been adapted to support fintech >=7.4 as well as older releases. --- account_ebics/__manifest__.py | 2 +- account_ebics/wizards/ebics_xfer.py | 29 +++++++++++++++++++++++------ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/account_ebics/__manifest__.py b/account_ebics/__manifest__.py index fbcf720..c5b9e6f 100644 --- a/account_ebics/__manifest__.py +++ b/account_ebics/__manifest__.py @@ -3,7 +3,7 @@ { "name": "EBICS banking protocol", - "version": "14.0.1.1.3", + "version": "14.0.1.1.4", "license": "LGPL-3", "author": "Noviat", "website": "https://www.noviat.com/", diff --git a/account_ebics/wizards/ebics_xfer.py b/account_ebics/wizards/ebics_xfer.py index 9ff9f89..fac32ab 100644 --- a/account_ebics/wizards/ebics_xfer.py +++ b/account_ebics/wizards/ebics_xfer.py @@ -444,15 +444,32 @@ class EbicsXfer(models.TransientModel): if self.ebics_config_id.ebics_version == "H003": bank._order_number = self.ebics_config_id._get_order_number() - user = EbicsUser( - keyring=keyring, - partnerid=self.ebics_config_id.ebics_partner, - userid=self.ebics_userid_id.name, - ) signature_class = ( self.format_id.signature_class or self.ebics_userid_id.signature_class ) - if signature_class == "T": + + user_params = { + "keyring": keyring, + "partnerid": self.ebics_config_id.ebics_partner, + "userid": self.ebics_userid_id.name, + } + # manual_approval replaced by transport_only class param in fintech 7.4 + fintech74 = hasattr(EbicsUser, "transport_only") + if fintech74: + user_params["transport_only"] = signature_class == "T" and True or False + try: + user = EbicsUser(**user_params) + except ValueError as err: + error = _("Error while accessing the EBICS UserID:") + error += "\n" + err_str = err.args[0] + error += err.args[0] + if err_str == "unknown key format": + error += "\n" + error += _("Doublecheck your EBICS Passphrase and UserID settings.") + raise UserError(error) from err + # manual_approval replaced by transport_only class param in fintech 7.4 + if not fintech74 and signature_class == "T": user.manual_approval = True try: