mirror of
https://github.com/bringout/oca-edi.git
synced 2026-04-24 04:12:03 +02:00
Initial commit: OCA Edi packages (42 packages)
This commit is contained in:
commit
df976c03db
2184 changed files with 571602 additions and 0 deletions
|
|
@ -0,0 +1,2 @@
|
|||
from . import wamas_ubl_wiz_check
|
||||
from . import wamas_ubl_wiz_simulate
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
# Copyright 2023 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
|
||||
# Copyright 2023 Camptocamp SA
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
import json
|
||||
from base64 import b64decode
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
|
||||
|
||||
class WamasUblWizCheck(models.TransientModel):
|
||||
_name = "wamas.ubl.wiz.check"
|
||||
_description = "Check WAMAS File Wizard"
|
||||
|
||||
wamas_file = fields.Binary(
|
||||
"WAMAS File",
|
||||
required=True,
|
||||
)
|
||||
wamas_filename = fields.Char("WAMAS Filename")
|
||||
output = fields.Text()
|
||||
supported_telegram = fields.Text(
|
||||
default=lambda self: ", ".join(
|
||||
self.env["base.wamas.ubl"].get_supported_telegram()
|
||||
)
|
||||
)
|
||||
|
||||
@api.onchange("wamas_filename")
|
||||
def _onchange_wamas_filename(self):
|
||||
self.output = False
|
||||
|
||||
def btn_check(self):
|
||||
self.ensure_one()
|
||||
wamas_file_decoded = b64decode(self.wamas_file).decode("iso-8859-1")
|
||||
|
||||
bwu_obj = self.env["base.wamas.ubl"]
|
||||
try:
|
||||
wamas_type = bwu_obj.get_wamas_type(wamas_file_decoded)
|
||||
data = bwu_obj.wamas2dict(wamas_file_decoded)
|
||||
|
||||
self.output = (
|
||||
_(
|
||||
"""- WAMAS Type: %(wamas_type)s
|
||||
- Data: %(data)s"""
|
||||
)
|
||||
% dict(
|
||||
wamas_type=wamas_type,
|
||||
data=json.dumps(data, indent=4, sort_keys=False),
|
||||
)
|
||||
)
|
||||
except Exception as e:
|
||||
self.output = _("""- Error: %s""") % (e)
|
||||
|
||||
return {
|
||||
"view_mode": "form",
|
||||
"res_model": "wamas.ubl.wiz.check",
|
||||
"res_id": self.id,
|
||||
"type": "ir.actions.act_window",
|
||||
"target": "new",
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="wamas_ubl_wiz_check_form" model="ir.ui.view">
|
||||
<field name="name">wamas.ubl.wiz.check.form</field>
|
||||
<field name="model">wamas.ubl.wiz.check</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Check WAMAS File">
|
||||
<group>
|
||||
<div class="alert alert-info" role="alert" col="1" colspan="2">
|
||||
This wizard will help you extract data of a WAMAS file into:
|
||||
<ul>
|
||||
<li>WAMAS Type</li>
|
||||
<li>Telegram Type</li>
|
||||
<li>Data</li>
|
||||
</ul>
|
||||
Only supports telegram type(s) bellow:
|
||||
<field name="supported_telegram" readonly="1" />
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="wamas_file" filename="wamas_filename" />
|
||||
<field name="wamas_filename" invisible="1" />
|
||||
<field
|
||||
name="output"
|
||||
attrs="{'invisible': [('output', '=', False)], 'readonly':[('output', '!=', False)]}"
|
||||
/>
|
||||
</group>
|
||||
<footer>
|
||||
<button
|
||||
name="btn_check"
|
||||
type="object"
|
||||
class="oe_highlight"
|
||||
string="Check"
|
||||
/>
|
||||
<button special="cancel" string="Cancel" class="oe_link" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="wamas_ubl_wiz_check_action" model="ir.actions.act_window">
|
||||
<field name="name">Check WAMAS File</field>
|
||||
<field name="res_model">wamas.ubl.wiz.check</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
<field name="context">{}</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
# Copyright 2023 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
|
||||
# Copyright 2023 Camptocamp SA
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from base64 import b64decode, b64encode
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
|
||||
|
||||
class WamasUblWizSimulate(models.TransientModel):
|
||||
_name = "wamas.ubl.wiz.simulate"
|
||||
_description = "Simulate WAMAS File Wizard"
|
||||
|
||||
wamas_file = fields.Binary(
|
||||
"WAMAS File",
|
||||
required=True,
|
||||
)
|
||||
wamas_filename = fields.Char("WAMAS Filename")
|
||||
output_wamas_file = fields.Binary("Output WAMAS File")
|
||||
output_wamas_filename = fields.Char("Output WAMAS Filename")
|
||||
output = fields.Text()
|
||||
supported_telegram = fields.Text(
|
||||
default=lambda self: self._default_supported_telegram()
|
||||
)
|
||||
|
||||
@api.model
|
||||
def _default_supported_telegram(self):
|
||||
bwu_obj = self.env["base.wamas.ubl"]
|
||||
dict_telegram = bwu_obj.get_supported_telegram_w2w()
|
||||
res = ""
|
||||
for from_telegram, to_telegrams in dict_telegram.items():
|
||||
res += "- %(from_telegram)s => %(to_telegram)s\n" % {
|
||||
"from_telegram": from_telegram,
|
||||
"to_telegram": ", ".join(to_telegrams),
|
||||
}
|
||||
return res
|
||||
|
||||
@api.onchange("wamas_filename")
|
||||
def _onchange_wamas_filename(self):
|
||||
self.output_wamas_file = False
|
||||
self.output_wamas_filename = False
|
||||
self.output = False
|
||||
|
||||
def btn_simulate(self):
|
||||
self.ensure_one()
|
||||
wamas_file_decoded = b64decode(self.wamas_file).decode("iso-8859-1")
|
||||
|
||||
try:
|
||||
bwu_obj = self.env["base.wamas.ubl"]
|
||||
output_wamas = bwu_obj.wamas2wamas(wamas_file_decoded).encode("iso-8859-1")
|
||||
|
||||
self.output_wamas_file = b64encode(output_wamas)
|
||||
self.output_wamas_filename = "OUTPUT_" + self.wamas_filename
|
||||
except Exception as e:
|
||||
self.output = _("""- Error: %s""") % (e)
|
||||
|
||||
return {
|
||||
"view_mode": "form",
|
||||
"res_model": "wamas.ubl.wiz.simulate",
|
||||
"res_id": self.id,
|
||||
"type": "ir.actions.act_window",
|
||||
"target": "new",
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="wamas_ubl_wiz_simulate_form" model="ir.ui.view">
|
||||
<field name="name">wamas.ubl.wiz.simulate.form</field>
|
||||
<field name="model">wamas.ubl.wiz.simulate</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Simulate WAMAS File">
|
||||
<group>
|
||||
<div class="alert alert-info" role="alert" col="1" colspan="2">
|
||||
<div
|
||||
>This wizard will help you generate (simulating) a new WAMAS file from an existing WAMAS file.</div>
|
||||
<div
|
||||
>Only supports FROM telegram type TO telegram type(s) bellow:</div>
|
||||
<field name="supported_telegram" readonly="1" />
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="wamas_file" filename="wamas_filename" />
|
||||
<field name="wamas_filename" invisible="1" />
|
||||
<field
|
||||
name="output_wamas_file"
|
||||
filename="output_wamas_filename"
|
||||
attrs="{'invisible': [('output_wamas_file', '=', False)], 'readonly':[('output_wamas_file', '!=', False)]}"
|
||||
/>
|
||||
<field name="output_wamas_filename" invisible="1" />
|
||||
<field
|
||||
name="output"
|
||||
attrs="{'invisible': [('output', '=', False)], 'readonly':[('output', '!=', False)]}"
|
||||
/>
|
||||
</group>
|
||||
<footer>
|
||||
<button
|
||||
name="btn_simulate"
|
||||
type="object"
|
||||
class="oe_highlight"
|
||||
string="Simulate"
|
||||
/>
|
||||
<button special="cancel" string="Cancel" class="oe_link" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="wamas_ubl_wiz_simulate_action" model="ir.actions.act_window">
|
||||
<field name="name">Simulate WAMAS File</field>
|
||||
<field name="res_model">wamas.ubl.wiz.simulate</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
<field name="context">{}</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue