[IMP] batch payment: hide ebics_upload button on non-ebics journals

This commit is contained in:
Luc De Meyer
2026-04-14 15:52:51 +02:00
parent 0cc861126a
commit 4bf699a7c5
4 changed files with 46 additions and 12 deletions

View File

@@ -1,34 +1,40 @@
# Copyright 2020 Noviat.
# License LGPL-3 or later (https://www.gnu.org/licenses/lgpl).
from odoo import models
from odoo import api, 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", default=True
)
@api.depends("journal_id.ebics_config_id", "file_generation_enabled", "state")
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 = self.env._("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(
self.env._(
"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,

View File

@@ -5,12 +5,13 @@
<field name="model">account.batch.payment</field>
<field name="inherit_id" ref="account_batch_payment.view_batch_payment_form" />
<field name="arch" type="xml">
<button name="validate_batch_button" position="after">
<button id="print_button" position="before">
<button
name="ebics_upload"
type="object"
invisible="not file_generation_enabled or state != 'sent'"
invisible="hide_ebics_upload"
string="EBICS Upload"
class="oe_highlight"
/>
</button>
</field>