[IMP]add support for fintech 7.4

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.
This commit is contained in:
Luc De Meyer 2023-12-01 18:53:54 +01:00
parent 5c2c597456
commit d75cecedca
2 changed files with 24 additions and 7 deletions

View File

@ -3,7 +3,7 @@
{ {
"name": "EBICS banking protocol", "name": "EBICS banking protocol",
"version": "15.0.1.1.4", "version": "15.0.1.1.5",
"license": "LGPL-3", "license": "LGPL-3",
"author": "Noviat", "author": "Noviat",
"website": "https://www.noviat.com/", "website": "https://www.noviat.com/",

View File

@ -444,15 +444,32 @@ class EbicsXfer(models.TransientModel):
if self.ebics_config_id.ebics_version == "H003": if self.ebics_config_id.ebics_version == "H003":
bank._order_number = self.ebics_config_id._get_order_number() 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 = ( signature_class = (
self.format_id.signature_class or self.ebics_userid_id.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 user.manual_approval = True
try: try: