Merge pull request #33 from Noviat/16.0

Syncing from upstream Noviat/account_ebics (16.0)
This commit is contained in:
braintec 2024-05-13 09:45:12 +02:00 committed by GitHub
commit 70c7ddf4ea
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 75 additions and 8 deletions

View File

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

View File

@ -1,4 +1,4 @@
# Copyright 2009-2023 Noviat. # Copyright 2009-2024 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lgpl). # License LGPL-3 or later (http://www.gnu.org/licenses/lgpl).
import base64 import base64
@ -79,6 +79,9 @@ class EbicsXfer(models.TransientModel):
help="Select EBICS File Format to upload/download." help="Select EBICS File Format to upload/download."
"\nLeave blank to download all available files.", "\nLeave blank to download all available files.",
) )
upload_format_ids = fields.Many2many(
comodel_name="ebics.file.format", compute="_compute_upload_format_ids"
)
allowed_format_ids = fields.Many2many( allowed_format_ids = fields.Many2many(
related="ebics_config_id.ebics_file_format_ids", related="ebics_config_id.ebics_file_format_ids",
string="Allowed EBICS File Formats", string="Allowed EBICS File Formats",
@ -117,6 +120,17 @@ class EbicsXfer(models.TransientModel):
else: else:
rec.ebics_sig_passphrase_invisible = False rec.ebics_sig_passphrase_invisible = False
@api.depends("ebics_config_id")
def _compute_upload_format_ids(self):
for rec in self:
rec.upload_format_ids = False
if not self.env.context.get("ebics_download"):
rec.upload_format_ids = (
rec.ebics_config_id.ebics_file_format_ids.filtered(
lambda r: r.type == "up"
)
)
@api.onchange("ebics_config_id") @api.onchange("ebics_config_id")
def _onchange_ebics_config_id(self): def _onchange_ebics_config_id(self):
avail_userids = self.ebics_config_id.ebics_userid_ids.filtered( avail_userids = self.ebics_config_id.ebics_userid_ids.filtered(

View File

@ -89,10 +89,12 @@
<field name="upload_data" filename="upload_fname" required="1" /> <field name="upload_data" filename="upload_fname" required="1" />
<field name="upload_fname" invisible="1" /> <field name="upload_fname" invisible="1" />
<field name="upload_fname_dummy" string="Upload Filename" /> <field name="upload_fname_dummy" string="Upload Filename" />
<field name="upload_format_ids" invisible="1" />
<field <field
name="format_id" name="format_id"
domain="[('id', 'in', upload_format_ids)]"
required="1" required="1"
domain="[('type', '=', 'up'), ('id', 'in', allowed_format_ids)]" readonly="context.get('active_model') == 'account.payment.order'"
/> />
<field name="order_type" /> <field name="order_type" />
<field <field

View File

@ -16,9 +16,13 @@ This module depends upon the following modules (cf. apps.odoo.com):
- account_ebics - account_ebics
- account_payment_order - account_payment_order
Configuration
=============
Set the EBICS File Format on your Payment Modes.
Usage Usage
===== =====
Create your Payment Order and generate the bank file. Create your Payment Order and generate the bank file.
Upload the generated file via the 'EBICS Upload' button on the payment order. Upload the generated file via the 'EBICS Upload' button on the payment order.

View File

@ -1,9 +1,9 @@
# Copyright 2009-2023 Noviat. # Copyright 2009-2024 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 Payment Order via EBICS", "name": "Upload Payment Order via EBICS",
"version": "16.0.1.0.0", "version": "16.0.1.1.0",
"license": "LGPL-3", "license": "LGPL-3",
"author": "Noviat", "author": "Noviat",
"website": "https://www.noviat.com/", "website": "https://www.noviat.com/",
@ -11,6 +11,7 @@
"depends": ["account_ebics", "account_payment_order"], "depends": ["account_ebics", "account_payment_order"],
"data": [ "data": [
"views/account_payment_order_views.xml", "views/account_payment_order_views.xml",
"views/account_payment_mode_views.xml",
], ],
"images": ["static/description/cover.png"], "images": ["static/description/cover.png"],
"installable": True, "installable": True,

View File

@ -1 +1,2 @@
from . import account_payment_mode
from . import account_payment_order from . import account_payment_order

View File

@ -0,0 +1,15 @@
# 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.",
)

View File

@ -1,4 +1,4 @@
# Copyright 2009-2023 Noviat. # Copyright 2009-2024 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 _, models
@ -10,6 +10,18 @@ class AccountPaymentOrder(models.Model):
def ebics_upload(self): def ebics_upload(self):
self.ensure_one() 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( attach = self.env["ir.attachment"].search(
[("res_model", "=", self._name), ("res_id", "=", self.id)] [("res_model", "=", self._name), ("res_id", "=", self.id)]
) )
@ -52,7 +64,7 @@ class AccountPaymentOrder(models.Model):
"default_upload_data": attach.datas, "default_upload_data": attach.datas,
"default_upload_fname": attach.name, "default_upload_fname": attach.name,
"origin": origin, "origin": origin,
"force_comany": self.company_id.id, "force_company": self.company_id.id,
} }
) )
ebics_xfer = self.env["ebics.xfer"].with_context(**ctx).create({}) ebics_xfer = self.env["ebics.xfer"].with_context(**ctx).create({})

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="account_payment_mode_form" model="ir.ui.view">
<field name="name">account.payment.mode.form</field>
<field name="model">account.payment.mode</field>
<field name="inherit_id" ref="account_payment_mode.account_payment_mode_form" />
<field name="arch" type="xml">
<field name="payment_type" position="after">
<field
name="ebics_format_id"
attrs="{'invisible': [('payment_order_ok', '=', False)]}"
/>
</field>
</field>
</record>
</odoo>