diff --git a/account_ebics/models/__init__.py b/account_ebics/models/__init__.py
index 0a211c1..4b04a91 100644
--- a/account_ebics/models/__init__.py
+++ b/account_ebics/models/__init__.py
@@ -1,5 +1,6 @@
from . import fintech_ebics_register
from . import account_bank_statement
+from . import account_journal
from . import ebics_config
from . import ebics_file
from . import ebics_file_format
diff --git a/account_ebics/models/account_journal.py b/account_ebics/models/account_journal.py
new file mode 100644
index 0000000..199858c
--- /dev/null
+++ b/account_ebics/models/account_journal.py
@@ -0,0 +1,26 @@
+# Copyright 2026 Noviat.
+# License LGPL-3 or later (https://www.gnu.org/licenses/lgpl).
+
+from odoo import api, fields, models
+
+
+class AccountJournal(models.Model):
+ _inherit = "account.journal"
+
+ ebics_config_ids = fields.Many2many(
+ comodel_name="ebics.config",
+ relation="account_journal_ebics_config_rel",
+ readonly=True,
+ )
+ ebics_config_id = fields.Many2one(
+ comodel_name="ebics.config",
+ compute="_compute_ebics_config_id",
+ compute_sudo=True,
+ )
+
+ @api.depends("ebics_config_ids")
+ def _compute_ebics_config_id(self):
+ for rec in self:
+ rec.ebics_config_id = rec.ebics_config_ids.filtered(
+ lambda r: r.state == "confirm"
+ )[:1]
diff --git a/account_ebics_batch_payment/models/account_batch_payment.py b/account_ebics_batch_payment/models/account_batch_payment.py
index f80ed4e..f942e7c 100644
--- a/account_ebics_batch_payment/models/account_batch_payment.py
+++ b/account_ebics_batch_payment/models/account_batch_payment.py
@@ -1,32 +1,35 @@
-# Copyright 2009-2023 Noviat.
+# Copyright 2020 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lgpl).
-from odoo import _, models
+from odoo import _, fields, models
from odoo.exceptions import UserError
class AccountBatchPayment(models.Model):
_inherit = "account.batch.payment"
+ hide_ebics_upload = fields.Boolean(compute="_compute_hide_ebics_upload")
+
+ def _compute_hide_ebics_upload(self):
+ for rec in self:
+ rec.hide_ebics_upload = (
+ not rec.journal_id.ebics_config_id
+ or not rec.file_generation_enabled
+ or rec.state != "sent"
+ )
+
def ebics_upload(self):
self.ensure_one()
ctx = self.env.context.copy()
origin = _("Batch Payment") + ": " + self.name
- ebics_config = self.env["ebics.config"].search(
- [
- ("journal_ids", "=", self.journal_id.id),
- ("state", "=", "confirm"),
- ]
- )
- if not ebics_config:
+ if not self.journal_id.ebics_config_id:
raise UserError(
- _("No active EBICS configuration available " "for the selected bank.")
+ _("No active EBICS configuration available for the selected bank.")
)
- if len(ebics_config) == 1:
- ctx["default_ebics_config_id"] = ebics_config.id
ctx.update(
{
+ "default_ebics_config_id": self.journal_id.ebics_config_id.id,
"default_upload_data": self.export_file,
"default_upload_fname": self.export_filename,
"origin": origin,
diff --git a/account_ebics_batch_payment/views/account_batch_payment_views.xml b/account_ebics_batch_payment/views/account_batch_payment_views.xml
index 4fa3326..ed9d7f0 100644
--- a/account_ebics_batch_payment/views/account_batch_payment_views.xml
+++ b/account_ebics_batch_payment/views/account_batch_payment_views.xml
@@ -7,10 +7,11 @@