Merge pull request #81 from Noviat/18.0

Syncing from upstream Noviat/account_ebics (18.0)
This commit is contained in:
braintec
2026-04-15 09:08:50 +02:00
committed by GitHub
22 changed files with 302 additions and 70 deletions

View File

@@ -15,12 +15,12 @@ Available addons
---------------- ----------------
addon | version | maintainers | summary addon | version | maintainers | summary
--- | --- | --- | --- --- | --- | --- | ---
[account_ebics](account_ebics/) | 18.0.1.1.2 | | EBICS banking protocol [account_ebics](account_ebics/) | 18.0.1.2.0 | | EBICS banking protocol
[account_ebics_batch](account_ebics_batch/) | 18.0.1.0.0 | | EBICS Files automated import and processing [account_ebics_batch](account_ebics_batch/) | 18.0.1.0.0 | | EBICS Files automated import and processing
[account_ebics_batch_payment](account_ebics_batch_payment/) | 18.0.1.0.0 | | Upload Batch Payment via EBICS [account_ebics_batch_payment](account_ebics_batch_payment/) | 18.0.1.1.0 | | Upload Batch Payment via EBICS
[account_ebics_oca_statement_import](account_ebics_oca_statement_import/) | 18.0.1.0.0 | | Use OCA Bank Statement Import with account_ebics [account_ebics_oca_statement_import](account_ebics_oca_statement_import/) | 18.0.1.0.0 | | Use OCA Bank Statement Import with account_ebics
[account_ebics_oe](account_ebics_oe/) | 18.0.1.0.0 | | Deploy account_ebics module on Odoo Enterprise [account_ebics_oe](account_ebics_oe/) | 18.0.1.0.0 | | Deploy account_ebics module on Odoo Enterprise
[account_ebics_payment_order](account_ebics_payment_order/) | 18.0.1.1.0 | | Upload Payment Order via EBICS [account_ebics_payment_order](account_ebics_payment_order/) | 18.0.1.2.0 | | Upload Payment Order via EBICS
[//]: # (end addons) [//]: # (end addons)

View File

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

View File

@@ -177,6 +177,7 @@ msgstr ""
#. module: account_ebics #. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_change_passphrase_view_form #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_change_passphrase_view_form
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@@ -601,6 +602,11 @@ msgstr ""
msgid "EBICS Manager" msgid "EBICS Manager"
msgstr "" msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
msgid "EBICS Mark as Downloaded"
msgstr ""
#. module: account_ebics #. module: account_ebics
#. odoo-python #. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0 #: code:addons/account_ebics/wizards/ebics_xfer.py:0
@@ -788,6 +794,12 @@ msgstr ""
msgid "EBICS version mismatch." msgid "EBICS version mismatch."
msgstr "" msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "Ebics Config"
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn #: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn
msgid "Ebics Keys Fn" msgid "Ebics Keys Fn"
@@ -1011,6 +1023,11 @@ msgstr ""
msgid "Invalid XML file." msgid "Invalid XML file."
msgstr "" msgstr ""
#. module: account_ebics
#: model:ir.model,name:account_ebics.model_account_journal
msgid "Journal"
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_admin_order__write_uid #: model:ir.model.fields,field_description:account_ebics.field_ebics_admin_order__write_uid
#: model:ir.model.fields,field_description:account_ebics.field_ebics_change_passphrase__write_uid #: model:ir.model.fields,field_description:account_ebics.field_ebics_change_passphrase__write_uid
@@ -1038,6 +1055,17 @@ msgstr ""
msgid "Locality Name [L]" msgid "Locality Name [L]"
msgstr "" msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
msgid "Mark as Downloaded"
msgstr ""
#. module: account_ebics
#: model:ir.actions.act_window,name:account_ebics.ebics_xfer_action_mark_as_downloaded
#: model:ir.ui.menu,name:account_ebics.ebics_xfer_menu_mark_as_downloaded
msgid "Mark files as Downloaded"
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_file_format__btf_format #: model:ir.model.fields,help:account_ebics.field_ebics_file_format__btf_format
msgid "" msgid ""
@@ -1291,6 +1319,7 @@ msgstr ""
#. module: account_ebics #. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload
msgid "Select your bank :" msgid "Select your bank :"
msgstr "" msgstr ""
@@ -1440,6 +1469,14 @@ msgstr ""
msgid "Test Mode" msgid "Test Mode"
msgstr "" msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
msgid ""
"The EBICS Files (Bank Statements) selected via this screen will not become available in Odoo as EBICS files but will be marked by your bank as downloaded.\n"
" <br/>\n"
" As a consequence, these Bank Statements will not be retrieved by the next 'EBICS Batch Import' scheduled action."
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_config_view_form #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_config_view_form
msgid "" msgid ""

View File

@@ -186,6 +186,7 @@ msgstr "Relevés"
#. module: account_ebics #. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_change_passphrase_view_form #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_change_passphrase_view_form
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
@@ -616,6 +617,11 @@ msgstr ""
msgid "EBICS Manager" msgid "EBICS Manager"
msgstr "" msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
msgid "EBICS Mark as Downloaded"
msgstr ""
#. module: account_ebics #. module: account_ebics
#. odoo-python #. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0 #: code:addons/account_ebics/wizards/ebics_xfer.py:0
@@ -803,6 +809,12 @@ msgstr ""
msgid "EBICS version mismatch." msgid "EBICS version mismatch."
msgstr "" msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "Ebics Config"
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn #: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn
msgid "Ebics Keys Fn" msgid "Ebics Keys Fn"
@@ -1029,6 +1041,11 @@ msgstr ""
msgid "Invalid XML file." msgid "Invalid XML file."
msgstr "" msgstr ""
#. module: account_ebics
#: model:ir.model,name:account_ebics.model_account_journal
msgid "Journal"
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_admin_order__write_uid #: model:ir.model.fields,field_description:account_ebics.field_ebics_admin_order__write_uid
#: model:ir.model.fields,field_description:account_ebics.field_ebics_change_passphrase__write_uid #: model:ir.model.fields,field_description:account_ebics.field_ebics_change_passphrase__write_uid
@@ -1056,6 +1073,17 @@ msgstr "Dernière mise à jour le"
msgid "Locality Name [L]" msgid "Locality Name [L]"
msgstr "" msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
msgid "Mark as Downloaded"
msgstr ""
#. module: account_ebics
#: model:ir.actions.act_window,name:account_ebics.ebics_xfer_action_mark_as_downloaded
#: model:ir.ui.menu,name:account_ebics.ebics_xfer_menu_mark_as_downloaded
msgid "Mark files as Downloaded"
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_file_format__btf_format #: model:ir.model.fields,help:account_ebics.field_ebics_file_format__btf_format
msgid "" msgid ""
@@ -1315,6 +1343,7 @@ msgstr ""
#. module: account_ebics #. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload
msgid "Select your bank :" msgid "Select your bank :"
msgstr "" msgstr ""
@@ -1464,6 +1493,17 @@ msgstr ""
msgid "Test Mode" msgid "Test Mode"
msgstr "Mode de test" msgstr "Mode de test"
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
msgid ""
"The EBICS Files (Bank Statements) selected via this screen will not become "
"available in Odoo as EBICS files but will be marked by your bank as "
"downloaded.\n"
" <br/>\n"
" As a consequence, these Bank Statements will not be "
"retrieved by the next 'EBICS Batch Import' scheduled action."
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_config_view_form #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_config_view_form
msgid "" msgid ""

View File

@@ -186,6 +186,7 @@ msgstr "Afschriften"
#. module: account_ebics #. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_change_passphrase_view_form #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_change_passphrase_view_form
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload
msgid "Cancel" msgid "Cancel"
msgstr "Annuleer" msgstr "Annuleer"
@@ -616,6 +617,11 @@ msgstr ""
msgid "EBICS Manager" msgid "EBICS Manager"
msgstr "" msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
msgid "EBICS Mark as Downloaded"
msgstr ""
#. module: account_ebics #. module: account_ebics
#. odoo-python #. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0 #: code:addons/account_ebics/wizards/ebics_xfer.py:0
@@ -803,6 +809,12 @@ msgstr ""
msgid "EBICS version mismatch." msgid "EBICS version mismatch."
msgstr "" msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "Ebics Config"
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn #: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn
msgid "Ebics Keys Fn" msgid "Ebics Keys Fn"
@@ -1029,6 +1041,11 @@ msgstr ""
msgid "Invalid XML file." msgid "Invalid XML file."
msgstr "" msgstr ""
#. module: account_ebics
#: model:ir.model,name:account_ebics.model_account_journal
msgid "Journal"
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_admin_order__write_uid #: model:ir.model.fields,field_description:account_ebics.field_ebics_admin_order__write_uid
#: model:ir.model.fields,field_description:account_ebics.field_ebics_change_passphrase__write_uid #: model:ir.model.fields,field_description:account_ebics.field_ebics_change_passphrase__write_uid
@@ -1056,6 +1073,17 @@ msgstr "Laatst bijgewerkt op"
msgid "Locality Name [L]" msgid "Locality Name [L]"
msgstr "" msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
msgid "Mark as Downloaded"
msgstr ""
#. module: account_ebics
#: model:ir.actions.act_window,name:account_ebics.ebics_xfer_action_mark_as_downloaded
#: model:ir.ui.menu,name:account_ebics.ebics_xfer_menu_mark_as_downloaded
msgid "Mark files as Downloaded"
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_file_format__btf_format #: model:ir.model.fields,help:account_ebics.field_ebics_file_format__btf_format
msgid "" msgid ""
@@ -1315,6 +1343,7 @@ msgstr ""
#. module: account_ebics #. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_download
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_upload
msgid "Select your bank :" msgid "Select your bank :"
msgstr "" msgstr ""
@@ -1464,6 +1493,17 @@ msgstr ""
msgid "Test Mode" msgid "Test Mode"
msgstr "" msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_xfer_view_form_mark_as_downloaded
msgid ""
"The EBICS Files (Bank Statements) selected via this screen will not become "
"available in Odoo as EBICS files but will be marked by your bank as "
"downloaded.\n"
" <br/>\n"
" As a consequence, these Bank Statements will not be "
"retrieved by the next 'EBICS Batch Import' scheduled action."
msgstr ""
#. module: account_ebics #. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_config_view_form #: model_terms:ir.ui.view,arch_db:account_ebics.ebics_config_view_form
msgid "" msgid ""

View File

@@ -1,5 +1,6 @@
from . import fintech_ebics_register from . import fintech_ebics_register
from . import account_bank_statement from . import account_bank_statement
from . import account_journal
from . import ebics_config from . import ebics_config
from . import ebics_file from . import ebics_file
from . import ebics_file_format from . import ebics_file_format

View File

@@ -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]

View File

@@ -120,7 +120,8 @@ class EbicsConfig(models.Model):
comodel_name="res.company", comodel_name="res.company",
relation="ebics_config_res_company_rel", relation="ebics_config_res_company_rel",
string="Companies", string="Companies",
readonly=True, compute="_compute_company_ids",
store=True,
help="Companies sharing this EBICS contract.", help="Companies sharing this EBICS contract.",
) )
@@ -154,26 +155,10 @@ class EbicsConfig(models.Model):
) )
) )
def write(self, vals): @api.depends("journal_ids.company_id")
""" def _compute_company_ids(self):
Due to the multi-company nature of the EBICS config we
need to adapt the company_ids in the write method.
"""
if "journal_ids" not in vals:
return super().write(vals)
for rec in self: for rec in self:
old_company_ids = rec.journal_ids.mapped("company_id").ids rec.company_ids = rec.journal_ids.mapped("company_id")
super(EbicsConfig, rec).write(vals)
new_company_ids = rec.journal_ids.mapped("company_id").ids
updates = []
for cid in new_company_ids:
if cid in old_company_ids:
old_company_ids.remove(cid)
else:
updates += [(4, cid)]
updates += [(3, x) for x in old_company_ids]
super(EbicsConfig, rec).write({"company_ids": updates})
return True
def unlink(self): def unlink(self):
for ebics_config in self: for ebics_config in self:

View File

@@ -80,4 +80,13 @@
groups="account_ebics.group_ebics_manager" groups="account_ebics.group_ebics_manager"
sequence="30" sequence="30"
/> />
<menuitem
id="ebics_xfer_menu_mark_as_downloaded"
name="Mark files as Downloaded"
parent="ebics_menu"
action="account_ebics.ebics_xfer_action_mark_as_downloaded"
groups="account_ebics.group_ebics_manager"
sequence="40"
/>
</odoo> </odoo>

View File

@@ -236,8 +236,8 @@ class EbicsXfer(models.TransientModel):
date_from = self.date_from and self.date_from.isoformat() or None date_from = self.date_from and self.date_from.isoformat() or None
date_to = self.date_to and self.date_to.isoformat() or None date_to = self.date_to and self.date_to.isoformat() or None
for df in download_formats: for df in download_formats:
try:
success = False success = False
try:
if df.order_type == "BTD": if df.order_type == "BTD":
btf = BusinessTransactionFormat( btf = BusinessTransactionFormat(
df.btf_service, df.btf_service,
@@ -262,6 +262,7 @@ class EbicsXfer(models.TransientModel):
} }
} }
data = client.download(df.order_type, params=params) data = client.download(df.order_type, params=params)
if not self.env.context.get("ebics_mark_as_downloaded"):
ebics_files += self._handle_download_data(data, df) ebics_files += self._handle_download_data(data, df)
success = True success = True
except EbicsFunctionalError: except EbicsFunctionalError:
@@ -321,7 +322,7 @@ class EbicsXfer(models.TransientModel):
) )
tb = "".join(format_exception(*exc_info())) tb = "".join(format_exception(*exc_info()))
self.note += f"\n{tb}" self.note += f"\n{tb}"
else: finally:
# mark received data so that it is not included in further # mark received data so that it is not included in further
# downloads # downloads
trans_id = client.last_trans_id trans_id = client.last_trans_id

View File

@@ -145,6 +145,75 @@
</field> </field>
</record> </record>
<record id="ebics_xfer_view_form_mark_as_downloaded" model="ir.ui.view">
<field name="name">Mark EBICS files as Downloaded</field>
<field name="model">ebics.xfer</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<form string="EBICS Mark as Downloaded">
<div class="alert alert-warning" role="alert">
The EBICS Files (Bank Statements) selected via this screen will not become available in Odoo as EBICS files but will be marked by your bank as downloaded.
<br />
As a consequence, these Bank Statements will not be retrieved by the next 'EBICS Batch Import' scheduled action.
</div>
<group>
<separator string="Select your bank :" colspan="2" />
<field
name="ebics_config_id"
required="1"
options="{'no_create': True, 'no_open': True}"
/>
<field
name="ebics_userid_id"
domain="[('ebics_config_id', '=', ebics_config_id), ('user_ids.id', '=', uid), ('transaction_rights', 'in', ['both', 'down'])]"
required="1"
options="{'no_create': True, 'no_open': True}"
/>
<field
name="ebics_passphrase"
password="True"
invisible="ebics_passphrase_store"
required="not ebics_passphrase_store"
/>
<field name="date_from" required="1" />
<field name="date_to" required="1" />
<field
name="format_id"
required="1"
domain="[('type', '=', 'down'), ('id', 'in', allowed_format_ids)]"
/>
</group>
<footer>
<button
name="ebics_download"
string="Mark as Downloaded"
type="object"
class="btn-primary"
data-hotkey="q"
/>
<button
string="Cancel"
class="btn-secondary"
special="cancel"
data-hotkey="z"
/>
</footer>
</form>
</field>
</record>
<record id="ebics_xfer_action_mark_as_downloaded" model="ir.actions.act_window">
<field name="name">Mark files as Downloaded</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ebics.xfer</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field
name="context"
>{'ebics_download': 1, 'ebics_mark_as_downloaded': 1}</field>
<field name="view_id" ref="ebics_xfer_view_form_mark_as_downloaded" />
</record>
<record id="ebics_xfer_action_download" model="ir.actions.act_window"> <record id="ebics_xfer_action_download" model="ir.actions.act_window">
<field name="name">EBICS File Transfer - Download</field> <field name="name">EBICS File Transfer - Download</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>

View File

@@ -1,9 +1,9 @@
# Copyright 2009-2024 Noviat. # Copyright 2020 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lgpl). # License LGPL-3 or later (http://www.gnu.org/licenses/lgpl).
{ {
"name": "Upload Batch Payment via EBICS", "name": "Upload Batch Payment via EBICS",
"version": "18.0.1.0.0", "version": "18.0.1.1.0",
"license": "LGPL-3", "license": "LGPL-3",
"author": "Noviat", "author": "Noviat",
"website": "https://www.noviat.com/", "website": "https://www.noviat.com/",

View File

@@ -27,6 +27,11 @@ msgstr ""
msgid "EBICS Upload" msgid "EBICS Upload"
msgstr "" msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__hide_ebics_upload
msgid "Hide Ebics Upload"
msgstr ""
#. module: account_ebics_batch_payment #. module: account_ebics_batch_payment
#. odoo-python #. odoo-python
#: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0 #: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0

View File

@@ -11,8 +11,8 @@ msgstr ""
"PO-Revision-Date: 2025-09-02 00:02+0000\n" "PO-Revision-Date: 2025-09-02 00:02+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-" "Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n" "memory@weblate.org>\n"
"Language-Team: French <https://translation.noviat.com/projects/" "Language-Team: French <https://translation.noviat.com/projects/noviat-"
"noviat-generic-account-ebics-v18/account_ebics_batch_payment/fr/>\n" "generic-account-ebics-v18/account_ebics_batch_payment/fr/>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -34,6 +34,11 @@ msgstr "Paiement par lot"
msgid "EBICS Upload" msgid "EBICS Upload"
msgstr "" msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__hide_ebics_upload
msgid "Hide Ebics Upload"
msgstr ""
#. module: account_ebics_batch_payment #. module: account_ebics_batch_payment
#. odoo-python #. odoo-python
#: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0 #: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0

View File

@@ -11,8 +11,8 @@ msgstr ""
"PO-Revision-Date: 2025-09-02 00:02+0000\n" "PO-Revision-Date: 2025-09-02 00:02+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-" "Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n" "memory@weblate.org>\n"
"Language-Team: Dutch <https://translation.noviat.com/projects/" "Language-Team: Dutch <https://translation.noviat.com/projects/noviat-generic-"
"noviat-generic-account-ebics-v18/account_ebics_batch_payment/nl/>\n" "account-ebics-v18/account_ebics_batch_payment/nl/>\n"
"Language: nl\n" "Language: nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -34,6 +34,11 @@ msgstr "Batchbetaling"
msgid "EBICS Upload" msgid "EBICS Upload"
msgstr "" msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__hide_ebics_upload
msgid "Hide Ebics Upload"
msgstr ""
#. module: account_ebics_batch_payment #. module: account_ebics_batch_payment
#. odoo-python #. odoo-python
#: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0 #: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0

View File

@@ -1,34 +1,37 @@
# Copyright 2009-2024 Noviat. # Copyright 2020 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lgpl). # 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 from odoo.exceptions import UserError
class AccountBatchPayment(models.Model): class AccountBatchPayment(models.Model):
_inherit = "account.batch.payment" _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): def ebics_upload(self):
self.ensure_one() self.ensure_one()
ctx = self.env.context.copy() ctx = self.env.context.copy()
origin = self.env._("Batch Payment") + ": " + self.name origin = self.env._("Batch Payment") + ": " + self.name
ebics_config = self.env["ebics.config"].search( if not self.journal_id.ebics_config_id:
[
("journal_ids", "=", self.journal_id.id),
("state", "=", "confirm"),
]
)
if not ebics_config:
raise UserError( raise UserError(
self.env._( self.env._(
"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( ctx.update(
{ {
"default_ebics_config_id": self.journal_id.ebics_config_id.id,
"default_upload_data": self.export_file, "default_upload_data": self.export_file,
"default_upload_fname": self.export_filename, "default_upload_fname": self.export_filename,
"origin": origin, "origin": origin,

View File

@@ -9,7 +9,7 @@
<button <button
name="ebics_upload" name="ebics_upload"
type="object" type="object"
invisible="not file_generation_enabled or state != 'sent'" invisible="hide_ebics_upload"
string="EBICS Upload" string="EBICS Upload"
/> />
</button> </button>

View File

@@ -1,9 +1,9 @@
# Copyright 2009-2024 Noviat. # Copyright 2015 Noviat.
# License LGPL-3 or later (https://www.gnu.org/licenses/lgpl). # License LGPL-3 or later (https://www.gnu.org/licenses/lgpl).
{ {
"name": "Upload Payment Order via EBICS", "name": "Upload Payment Order via EBICS",
"version": "18.0.1.1.0", "version": "18.0.1.2.0",
"license": "LGPL-3", "license": "LGPL-3",
"author": "Noviat", "author": "Noviat",
"website": "https://www.noviat.com/", "website": "https://www.noviat.com/",

View File

@@ -25,6 +25,11 @@ msgstr ""
msgid "EBICS Upload" msgid "EBICS Upload"
msgstr "" msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__hide_ebics_upload
msgid "Hide Ebics Upload"
msgstr ""
#. module: account_ebics_payment_order #. module: account_ebics_payment_order
#. odoo-python #. odoo-python
#: code:addons/account_ebics_payment_order/models/account_payment_order.py:0 #: code:addons/account_ebics_payment_order/models/account_payment_order.py:0
@@ -66,6 +71,6 @@ msgstr ""
#. odoo-python #. odoo-python
#: code:addons/account_ebics_payment_order/models/account_payment_order.py:0 #: code:addons/account_ebics_payment_order/models/account_payment_order.py:0
msgid "" msgid ""
"This payment order doesn't contains attachements.\n" "This payment order doesn't contains attachments.\n"
"Please generate first the Payment Order file first." "Please generate first the Payment Order file."
msgstr "" msgstr ""

View File

@@ -1,4 +1,4 @@
# Copyright 2009-2024 Noviat. # Copyright 2015 Noviat.
# License LGPL-3 or later (https://www.gnu.org/licenses/lpgl). # License LGPL-3 or later (https://www.gnu.org/licenses/lpgl).
from odoo import fields, models from odoo import fields, models

View File

@@ -1,20 +1,28 @@
# Copyright 2009-2024 Noviat. # Copyright 2015 Noviat.
# License LGPL-3 or later (https://www.gnu.org/licenses/lgpl). # License LGPL-3 or later (https://www.gnu.org/licenses/lgpl).
from odoo import _, models from odoo import fields, models
from odoo.exceptions import UserError from odoo.exceptions import UserError
class AccountPaymentOrder(models.Model): class AccountPaymentOrder(models.Model):
_inherit = "account.payment.order" _inherit = "account.payment.order"
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 rec.state != "generated"
)
def ebics_upload(self): def ebics_upload(self):
self.ensure_one() self.ensure_one()
ctx = self.env.context.copy() ctx = self.env.context.copy()
ebics_format_id = self.payment_mode_id.ebics_format_id ebics_format_id = self.payment_mode_id.ebics_format_id
if not ebics_format_id: if not ebics_format_id:
raise UserError( raise UserError(
_("Missing EBICS File Format setting on your Payment Mode.") self.env._("Missing EBICS File Format setting on your Payment Mode.")
) )
ctx.update( ctx.update(
{ {
@@ -27,14 +35,14 @@ class AccountPaymentOrder(models.Model):
) )
if not attach: if not attach:
raise UserError( raise UserError(
_( self.env._(
"This payment order doesn't contains attachements." "This payment order doesn't contains attachments."
"\nPlease generate first the Payment Order file first." "\nPlease generate first the Payment Order file."
) )
) )
elif len(attach) > 1: elif len(attach) > 1:
raise UserError( raise UserError(
_( self.env._(
"This payment order contains multiple attachments." "This payment order contains multiple attachments."
"\nPlease remove the obsolete attachments or upload " "\nPlease remove the obsolete attachments or upload "
"the payment order file via the " "the payment order file via the "
@@ -42,24 +50,17 @@ class AccountPaymentOrder(models.Model):
) )
) )
else: else:
origin = _("Payment Order") + ": " + self.name origin = self.env._("Payment Order") + ": " + self.name
ebics_config = self.env["ebics.config"].search( if not self.journal_id.ebics_config_id:
[
("journal_ids", "=", self.journal_id.id),
("state", "=", "confirm"),
]
)
if not ebics_config:
raise UserError( raise UserError(
_( self.env._(
"No active EBICS configuration available " "No active EBICS configuration available "
"for the selected bank." "for the selected bank."
) )
) )
if len(ebics_config) == 1:
ctx["default_ebics_config_id"] = ebics_config.id
ctx.update( ctx.update(
{ {
"default_ebics_config_id": self.journal_id.ebics_config_id.id,
"default_upload_data": attach.datas, "default_upload_data": attach.datas,
"default_upload_fname": attach.name, "default_upload_fname": attach.name,
"origin": origin, "origin": origin,
@@ -75,7 +76,7 @@ class AccountPaymentOrder(models.Model):
ebics_xfer._onchange_upload_data() ebics_xfer._onchange_upload_data()
view = self.env.ref("account_ebics.ebics_xfer_view_form_upload") view = self.env.ref("account_ebics.ebics_xfer_view_form_upload")
act = { act = {
"name": _("EBICS Upload"), "name": self.env._("EBICS Upload"),
"view_mode": "form", "view_mode": "form",
"res_model": "ebics.xfer", "res_model": "ebics.xfer",
"view_id": view.id, "view_id": view.id,

View File

@@ -12,7 +12,7 @@
<button <button
name="ebics_upload" name="ebics_upload"
type="object" type="object"
invisible="state != 'generated'" invisible="hide_ebics_upload"
string="EBICS Upload" string="EBICS Upload"
class="oe_highlight" class="oe_highlight"
/> />