From 0a28f1b28b3e22aed43a6fb96d14515c40aac3fb 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.xml | 4 +++- account_ebics_payment_order/README.rst | 10 +++++----- account_ebics_payment_order/__manifest__.py | 5 +++-- account_ebics_payment_order/models/__init__.py | 1 + .../models/account_payment_mode.py | 14 ++++++++++++++ .../models/account_payment_order.py | 8 ++++++++ .../views/account_payment_mode.xml | 17 +++++++++++++++++ 7 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 account_ebics_payment_order/models/account_payment_mode.py create mode 100644 account_ebics_payment_order/views/account_payment_mode.xml diff --git a/account_ebics/wizards/ebics_xfer.xml b/account_ebics/wizards/ebics_xfer.xml index 4cf623e..444509e 100644 --- a/account_ebics/wizards/ebics_xfer.xml +++ b/account_ebics/wizards/ebics_xfer.xml @@ -48,7 +48,9 @@ + required="1" + readonly="context.get('active_model') == 'account.payment.order'" + /> diff --git a/account_ebics_payment_order/README.rst b/account_ebics_payment_order/README.rst index c6ecb6d..2071aff 100644 --- a/account_ebics_payment_order/README.rst +++ b/account_ebics_payment_order/README.rst @@ -16,13 +16,13 @@ This module depends upon the following modules (cf. apps.odoo.com): - account_ebics - account_payment_order +Configuration +============= + +Set the EBICS File Format on your Payment Modes. + Usage ===== Create your Payment Order and generate the bank file. Upload the generated file via the 'EBICS Upload' button on the payment order. - -Known issues / Roadmap -====================== - - * Add support for multiple EBICS connections. diff --git a/account_ebics_payment_order/__manifest__.py b/account_ebics_payment_order/__manifest__.py index 29e1a81..12d6e74 100644 --- a/account_ebics_payment_order/__manifest__.py +++ b/account_ebics_payment_order/__manifest__.py @@ -1,9 +1,9 @@ -# Copyright 2009-2020 Noviat. +# Copyright 2009-2024 Noviat. # License LGPL-3 or later (http://www.gnu.org/licenses/lpgl). { 'name': 'Upload Payment Order via EBICS', - 'version': '13.0.1.1.0', + 'version': '13.0.1.2.0', 'license': 'LGPL-3', 'author': 'Noviat', 'category': 'Accounting & Finance', @@ -12,6 +12,7 @@ 'account_payment_order'], 'data': [ 'views/account_payment_order.xml', + 'views/account_payment_mode.xml', ], 'installable': True, "images": ["static/description/cover.png"], diff --git a/account_ebics_payment_order/models/__init__.py b/account_ebics_payment_order/models/__init__.py index 429f032..72b2653 100644 --- a/account_ebics_payment_order/models/__init__.py +++ b/account_ebics_payment_order/models/__init__.py @@ -1 +1,2 @@ +from . import account_payment_mode from . import account_payment_order diff --git a/account_ebics_payment_order/models/account_payment_mode.py b/account_ebics_payment_order/models/account_payment_mode.py new file mode 100644 index 0000000..3211b38 --- /dev/null +++ b/account_ebics_payment_order/models/account_payment_mode.py @@ -0,0 +1,14 @@ +# Copyright 2009-2024 Noviat. +# License LGPL-3 or later (http://www.gnu.org/licenses/lpgl). + +from odoo import fields, models + + +class AccountPaymentMode(models.Model): + _inherit = "account.payment.mode" + + ebics_format_id = fields.Many2one( + comodel_name="ebics.file.format", + string="EBICS File Format", + domain="[('type', '=', 'up')]", + help="Select EBICS File Format to upload.") diff --git a/account_ebics_payment_order/models/account_payment_order.py b/account_ebics_payment_order/models/account_payment_order.py index 3578c25..73e8695 100644 --- a/account_ebics_payment_order/models/account_payment_order.py +++ b/account_ebics_payment_order/models/account_payment_order.py @@ -11,6 +11,14 @@ class AccountPaymentOrder(models.Model): def ebics_upload(self): self.ensure_one() ctx = self._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)]) 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..3277cb3 --- /dev/null +++ b/account_ebics_payment_order/views/account_payment_mode.xml @@ -0,0 +1,17 @@ + + + + + account.payment.mode.form + account.payment.mode + + + + + + + + +