From e31e2a304a1ed05d245bd12b46d9d3fe199c4a7e Mon Sep 17 00:00:00 2001 From: Luc De Meyer Date: Sun, 12 May 2024 17:04:49 +0200 Subject: [PATCH] [IMP]EBICS File Format on Payment Mode --- account_ebics/wizards/ebics_xfer.py | 25 +++++++++++-------- account_ebics/wizards/ebics_xfer.xml | 3 ++- account_ebics_payment_order/__manifest__.py | 2 +- .../models/account_payment_order.py | 16 +++++++++--- .../views/account_payment_mode.xml | 18 +++++++++++++ 5 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 account_ebics_payment_order/views/account_payment_mode.xml diff --git a/account_ebics/wizards/ebics_xfer.py b/account_ebics/wizards/ebics_xfer.py index 18f97a6..1b9925d 100644 --- a/account_ebics/wizards/ebics_xfer.py +++ b/account_ebics/wizards/ebics_xfer.py @@ -141,21 +141,26 @@ class EbicsXfer(models.TransientModel): avail_formats = self.ebics_config_id.ebics_file_format_ids.filtered( lambda r: r.type == "down" ) + if avail_formats and len(avail_formats) == 1: + self.format_id = avail_formats + else: + self.format_id = False avail_userids = avail_userids.filtered( lambda r: r.transaction_rights in ["both", "down"] ) else: # Upload Form - avail_formats = self.ebics_config_id.ebics_file_format_ids.filtered( - lambda r: r.type == "up" - ) + if not self.env.context.get("active_model") == "account.payment.order": + avail_formats = self.ebics_config_id.ebics_file_format_ids.filtered( + lambda r: r.type == "up" + ) + if avail_formats and len(avail_formats) == 1: + self.format_id = avail_formats + else: + self.format_id = False avail_userids = avail_userids.filtered( lambda r: r.transaction_rights in ["both", "up"] ) - if avail_formats and len(avail_formats) == 1: - self.format_id = avail_formats - else: - self.format_id = False if avail_userids: if len(avail_userids) == 1: self.ebics_userid_id = avail_userids @@ -170,6 +175,8 @@ class EbicsXfer(models.TransientModel): @api.onchange("upload_data") def _onchange_upload_data(self): + if self.env.context.get("active_model") == "account.payment.order": + return self.upload_fname_dummy = self.upload_fname self.format_id = False self._detect_upload_format() @@ -187,10 +194,6 @@ class EbicsXfer(models.TransientModel): if len(upload_formats) == 1: self.format_id = upload_formats - @api.onchange("format_id") - def _onchange_format_id(self): - self.order_type = self.format_id.order_type - def ebics_upload(self): self.ensure_one() ctx = self._context.copy() diff --git a/account_ebics/wizards/ebics_xfer.xml b/account_ebics/wizards/ebics_xfer.xml index a531c95..ceb9905 100644 --- a/account_ebics/wizards/ebics_xfer.xml +++ b/account_ebics/wizards/ebics_xfer.xml @@ -94,8 +94,9 @@ diff --git a/account_ebics_payment_order/__manifest__.py b/account_ebics_payment_order/__manifest__.py index f4da019..88c8fce 100644 --- a/account_ebics_payment_order/__manifest__.py +++ b/account_ebics_payment_order/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Upload Payment Order via EBICS", - "version": "17.0.1.0.0", + "version": "17.0.1.0.1", "license": "LGPL-3", "author": "Noviat", "website": "https://www.noviat.com", diff --git a/account_ebics_payment_order/models/account_payment_order.py b/account_ebics_payment_order/models/account_payment_order.py index 030f313..334cc4d 100644 --- a/account_ebics_payment_order/models/account_payment_order.py +++ b/account_ebics_payment_order/models/account_payment_order.py @@ -1,4 +1,4 @@ -# Copyright 2009-2023 Noviat. +# Copyright 2009-2024 Noviat. # License LGPL-3 or later (http://www.gnu.org/licenses/lgpl). from odoo import _, models @@ -10,6 +10,18 @@ class AccountPaymentOrder(models.Model): def ebics_upload(self): self.ensure_one() + ctx = self.env.context.copy() + ebics_format_id = self.payment_mode_id.ebics_format_id + if not ebics_format_id: + raise UserError( + _("Missing EBICS File Format setting on your Payment Mode.") + ) + ctx.update( + { + "active_model": self._name, + "default_format_id": ebics_format_id.id, + } + ) attach = self.env["ir.attachment"].search( [("res_model", "=", self._name), ("res_id", "=", self.id)] ) @@ -44,7 +56,6 @@ class AccountPaymentOrder(models.Model): "for the selected bank." ) ) - ctx = self.env.context.copy() if len(ebics_config) == 1: ctx["default_ebics_config_id"] = ebics_config.id ctx.update( @@ -58,7 +69,6 @@ class AccountPaymentOrder(models.Model): ebics_xfer = self.env["ebics.xfer"].with_context(**ctx).create({}) ebics_xfer._onchange_ebics_config_id() ebics_xfer._onchange_upload_data() - ebics_xfer._onchange_format_id() view = self.env.ref("account_ebics.ebics_xfer_view_form_upload") act = { "name": _("EBICS Upload"), diff --git a/account_ebics_payment_order/views/account_payment_mode.xml b/account_ebics_payment_order/views/account_payment_mode.xml new file mode 100644 index 0000000..76d66e5 --- /dev/null +++ b/account_ebics_payment_order/views/account_payment_mode.xml @@ -0,0 +1,18 @@ + + + + + account.payment.mode.form + account.payment.mode + + + + + + + + +