19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:30:07 +01:00
parent ba20ce7443
commit 768b70e05e
2357 changed files with 1057103 additions and 712486 deletions

View file

@ -2,17 +2,17 @@
<odoo>
<data>
<record id="view_tree_account_edi_document" model="ir.ui.view">
<field name="name">Account.edi.document.tree</field>
<field name="name">Account.edi.document.list</field>
<field name="model">account.edi.document</field>
<field name="arch" type="xml">
<tree create="false" delete="false" edit="false"
<list create="false" delete="false" edit="false"
decoration-info="blocking_level == 'info'"
decoration-warning="blocking_level == 'warning'"
decoration-danger="blocking_level == 'error'">
<field name="edi_format_name" />
<field name="error" />
<field name="blocking_level" invisible="1" />
</tree>
<field name="blocking_level" column_invisible="True" />
</list>
</field>
</record>
</data>

View file

@ -6,11 +6,12 @@
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.view_account_journal_form" />
<field name="arch" type="xml">
<xpath expr="//group[@name='group_alias_edit']" position="after">
<group string="Electronic Data Interchange" attrs="{'invisible': [('compatible_edi_ids', '=', [])]}">
<field name="compatible_edi_ids" invisible="1" />
<field name="edi_format_ids" widget="many2many_checkboxes"/>
</group>
<xpath expr="//group[@name='group_edi_config']" position="attributes">
<attribute name="invisible">not compatible_edi_ids</attribute>
</xpath>
<xpath expr="//group[@name='group_edi_config']" position="inside">
<field name="compatible_edi_ids" invisible="1" />
<field name="edi_format_ids" widget="many2many_checkboxes" invisible="not compatible_edi_ids"/>
</xpath>
</field>
</record>

View file

@ -5,17 +5,21 @@
<record id="account_edi.action_open_edi_documents" model="ir.actions.act_window">
<field name="name">Electronic invoicing</field>
<field name="res_model">account.edi.document</field>
<field name="view_mode">tree</field>
<field name="view_mode">list</field>
<field name="domain">[('move_id', '=', active_id), ('error', '!=', False)]</field>
</record>
<record id="view_out_invoice_tree_inherit" model="ir.ui.view">
<field name="name">account.move.tree.inherit</field>
<field name="name">account.move.list.inherit</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_out_invoice_tree" />
<field name="arch" type="xml">
<field name="state" position="before">
<field name="edi_state" optional="hide"/>
<field name="status_in_payment" position="before">
<field name="edi_state" optional="hide" class="fw-bold"
decoration-muted="edi_blocking_level == 'info'"
decoration-danger="edi_blocking_level == 'error'"
decoration-warning="edi_blocking_level == 'warning'"
/>
<field name="edi_blocking_level" optional="hide"/>
<field name="edi_error_message" optional="hide"/>
</field>
@ -23,11 +27,11 @@
</record>
<record id="view_out_credit_note_tree_inherit" model="ir.ui.view">
<field name="name">account.move.tree.inherit</field>
<field name="name">account.move.list.inherit</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_out_credit_note_tree" />
<field name="arch" type="xml">
<field name="state" position="before">
<field name="status_in_payment" position="before">
<field name="edi_state" optional="hide"/>
<field name="edi_blocking_level" optional="hide"/>
<field name="edi_error_message" optional="hide"/>
@ -36,11 +40,11 @@
</record>
<record id="view_in_invoice_refund_tree_inherit" model="ir.ui.view">
<field name="name">account.move.tree.inherit</field>
<field name="name">account.move.list.inherit</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_in_invoice_refund_tree" />
<field name="arch" type="xml">
<field name="state" position="before">
<field name="status_in_payment" position="before">
<field name="edi_state" optional="hide"/>
<field name="edi_blocking_level" optional="hide"/>
<field name="edi_error_message" optional="hide"/>
@ -53,7 +57,7 @@
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_in_invoice_bill_tree" />
<field name="arch" type="xml">
<field name="state" position="before">
<field name="status_in_payment" position="before">
<field name="edi_state" optional="hide"/>
<field name="edi_blocking_level" optional="hide"/>
<field name="edi_error_message" optional="hide"/>
@ -84,72 +88,81 @@
<xpath expr="//button[@name='button_cancel']" position="after">
<field name="edi_show_cancel_button" invisible="1"/>
<field name="edi_show_abandon_cancel_button" invisible="1"/>
<field name="edi_show_force_cancel_button" invisible="1"/>
<button name="button_cancel_posted_moves"
string="Request EDI Cancellation"
type="object"
groups="account.group_account_invoice"
attrs="{'invisible' : [('edi_show_cancel_button', '=', False)]}"/>
invisible="not edi_show_cancel_button"
data-hotkey="x"/>
<button name="button_abandon_cancel_posted_posted_moves"
string="Call off EDI Cancellation"
type="object"
groups="account.group_account_invoice"
attrs="{'invisible' : [('edi_show_abandon_cancel_button', '=', False)]}"/>
invisible="not edi_show_abandon_cancel_button"/>
</xpath>
<xpath expr="//header" position="after">
<field name="edi_blocking_level" invisible="1" />
<field name="edi_error_count" invisible="1" />
<div class="alert alert-info" role="alert" style="margin-bottom:0px;"
attrs="{'invisible': ['|', ('edi_web_services_to_process', 'in', ['', False]), ('state', '=', 'draft')]}">
<div>The invoice will be processed asynchronously by the following E-invoicing service :
<field name="edi_web_services_to_process" class="oe_inline"/>
<div class="alert alert-info d-flex justify-content-between align-items-center" role="alert"
invisible="edi_web_services_to_process in ['', False] or state == 'draft'">
<div>The invoice will soon be sent to
<field name="edi_web_services_to_process" class="w-auto"/>
</div>
<button name="button_process_edi_web_services" type="object" class="oe_link" string="Process now" />
<button name="button_process_edi_web_services" type="object" class="oe_link py-0 text-decoration-underline" string="Process now"/>
</div>
<div class="alert alert-danger" role="alert" style="margin-bottom:0px;"
attrs="{'invisible': ['|', ('edi_error_count', '=', 0), ('edi_blocking_level', '!=', 'error')]}">
<div class="o_row">
<div class="alert alert-danger" role="alert"
invisible="edi_error_count == 0 or edi_blocking_level != 'error'">
<div class="o_row align-items-center">
<field name="edi_error_message" />
<button name="%(account_edi.action_open_edi_documents)d" string="⇒ See errors" type="action" class="oe_link" attrs="{'invisible': [('edi_error_count', '=', 1)]}" />
<button name="button_force_cancel"
string="Force Cancel"
type="object"
groups="account.group_account_invoice"
confirm="Are you sure you want to cancel this invoice without waiting for the EDI document to be canceled?"
invisible="not edi_show_force_cancel_button" />
<button name="%(account_edi.action_open_edi_documents)d" string="⇒ See errors" type="action" class="oe_link" invisible="edi_error_count == 1" />
<button name="action_retry_edi_documents_error" type="object" class="oe_link oe_inline" string="Retry" />
</div>
</div>
<div class="alert alert-warning" role="alert" style="margin-bottom:0px;"
attrs="{'invisible': ['|', ('edi_error_count', '=', 0), ('edi_blocking_level', '!=', 'warning')]}">
<div class="alert alert-warning" role="alert"
invisible="edi_error_count == 0 or edi_blocking_level != 'warning'">
<div class="o_row">
<field name="edi_error_message" />
<button name="%(account_edi.action_open_edi_documents)d" string="⇒ See errors" type="action" class="oe_link" attrs="{'invisible': [('edi_error_count', '=', 1)]}" />
<button name="%(account_edi.action_open_edi_documents)d" string="⇒ See errors" type="action" class="oe_link" invisible="edi_error_count == 1" />
</div>
</div>
<div class="alert alert-info" role="alert" style="margin-bottom:0px;"
attrs="{'invisible': ['|', ('edi_error_count', '=', 0), ('edi_blocking_level', '!=', 'info')]}">
<div class="alert alert-info" role="alert"
invisible="edi_error_count == 0 or edi_blocking_level != 'info'">
<div class="o_row">
<field name="edi_error_message" />
<button name="%(account_edi.action_open_edi_documents)d" string="⇒ See errors" type="action" class="oe_link" attrs="{'invisible': [('edi_error_count', '=', 1)]}" />
<button name="%(account_edi.action_open_edi_documents)d" string="⇒ See errors" type="action" class="oe_link" invisible="edi_error_count == 1" />
</div>
</div>
</xpath>
<xpath expr="//div[@name='journal_div']" position="after">
<field name="edi_state" attrs="{'invisible': ['|', ('edi_state', '=', False), ('state', '=', 'draft')]}"/>
<field name="edi_state" invisible="not edi_state or state == 'draft'"/>
</xpath>
<xpath expr="//page[@id='other_tab']" position="after">
<page id="edi_documents"
string="EDI Documents"
name="page_edi_documents"
groups="base.group_no_one"
attrs="{'invisible': [('edi_document_ids', '=', [])]}">
invisible="not edi_document_ids">
<field name="edi_document_ids">
<tree create="false" delete="false" edit="false" decoration-danger="error" no_open="1">
<list create="false" delete="false" edit="false" decoration-danger="error" no_open="1">
<field name="name"/>
<field name="edi_format_name"/>
<field name="state"/>
<field name="error" invisible="1"/>
<field name="blocking_level" invisible="1"/>
<field name="error" column_invisible="True"/>
<field name="blocking_level" column_invisible="True"/>
<button name="action_export_xml"
type="object"
class="oe_link oe_inline"
string="Download"
groups="base.group_no_one"
attrs="{'invisible': ['|', ('error', '=', False), ('blocking_level', '=', 'info')]}"/>
</tree>
groups="account.group_account_invoice"
invisible="not error or blocking_level == 'info'"/>
</list>
</field>
</page>
</xpath>

View file

@ -1,79 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="account_edi.action_open_payment_edi_documents" model="ir.actions.act_window">
<field name="name">Electronic invoicing</field>
<field name="res_model">account.edi.document</field>
<field name="view_mode">tree</field>
<field name="domain">[('move_id.payment_id', '=', active_id), ('error', '!=', False)]</field>
</record>
<record id="view_payment_form_inherit" model="ir.ui.view">
<field name="name">account.payment.form.inherit</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_form" />
<field name="arch" type="xml">
<xpath expr="//header" position="after">
<field name="edi_blocking_level" invisible="1" />
<field name="edi_error_count" invisible="1" />
<div class="alert alert-info" role="alert" style="margin-bottom:0px;"
attrs="{'invisible': ['|', ('edi_web_services_to_process', 'in', ['', False]), ('state', '=', 'draft')]}">
<div>The payment will be processed asynchronously by the following E-invoicing service :
<field name="edi_web_services_to_process" class="oe_inline"/>
</div>
<button name="action_process_edi_web_services" type="object" class="oe_link" string="Process now"/>
</div>
<div class="alert alert-danger" role="alert" style="margin-bottom:0px;"
attrs="{'invisible': ['|', ('edi_error_count', '=', 0), ('edi_blocking_level', '!=', 'error')]}">
<div class="o_row">
<field name="edi_error_message" />
<button name="%(account_edi.action_open_edi_documents)d" string="⇒ See errors" type="action" class="oe_link" attrs="{'invisible': [('edi_error_count', '=', 1)]}" />
<button name="action_retry_edi_documents_error" type="object" class="oe_link oe_inline" string="Retry" />
</div>
</div>
<div class="alert alert-warning" role="alert" style="margin-bottom:0px;"
attrs="{'invisible': ['|', ('edi_error_count', '=', 0), ('edi_blocking_level', '!=', 'warning')]}">
<div class="o_row">
<field name="edi_error_message" />
<button name="%(account_edi.action_open_edi_documents)d" string="⇒ See errors" type="action" class="oe_link" attrs="{'invisible': [('edi_error_count', '=', 1)]}" />
</div>
</div>
<div class="alert alert-info" role="alert" style="margin-bottom:0px;"
attrs="{'invisible': ['|', ('edi_error_count', '=', 0), ('edi_blocking_level', '!=', 'info')]}">
<div class="o_row">
<field name="edi_error_message" />
<button name="%(account_edi.action_open_edi_documents)d" string="⇒ See errors" type="action" class="oe_link" attrs="{'invisible': [('edi_error_count', '=', 1)]}" />
</div>
</div>
</xpath>
<xpath expr="//field[@name='journal_id']" position="after">
<field name="edi_state" attrs="{'invisible': ['|', ('edi_state', '=', False), ('state', '=', 'draft')]}"/>
</xpath>
<xpath expr="//group[@name='group2']" position="after">
<group groups="base.group_no_one">
<field name="edi_document_ids"
string="EDI Documents"
groups="base.group_no_one"
options="{'no_open': '1'}"
attrs="{'invisible': [('edi_document_ids', '=', [])]}">
<tree create="false" delete="false" edit="false" decoration-danger="error">
<field name="name"/>
<field name="edi_format_name"/>
<field name="state"/>
<field name="error" invisible="1"/>
<field name="blocking_level" invisible="1"/>
<button name="action_export_xml"
type="object"
class="oe_link oe_inline"
string="Download"
groups="base.group_no_one"
attrs="{'invisible': ['|', ('error', '=', False), ('blocking_level', '=', 'info')]}"/>
</tree>
</field>
</group>
</xpath>
</field>
</record>
</data>
</odoo>