<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data>

        <record id="view_account_move_filter" model="ir.ui.view">
            <field name="name">account.move.select</field>
            <field name="model">account.move</field>
            <field name="inherit_id" ref="account.view_account_move_filter"/>
            <field name="arch" type="xml">
                <xpath expr="//filter[@name='status']" position="inside">
                    <filter string="Veri*Factu State"
                            name="l10n_es_edi_verifactu_state"
                            context="{'group_by': 'l10n_es_edi_verifactu_state'}"/>
                </xpath>
            </field>
        </record>

        <record id="view_account_invoice_filter" model="ir.ui.view">
            <field name="name">account.invoice.select</field>
            <field name="model">account.move</field>
            <field name="inherit_id" ref="account.view_account_invoice_filter"/>
            <field name="arch" type="xml">
                <xpath expr="//filter[@name='status']" position="inside">
                    <filter string="Veri*Factu State"
                            name="l10n_es_edi_verifactu_state"
                            context="{'group_by': 'l10n_es_edi_verifactu_state'}"/>
                </xpath>
            </field>
        </record>

        <record id="view_move_tree" model="ir.ui.view">
            <field name="name">account.move.tree</field>
            <field name="model">account.move</field>
            <field name="inherit_id" ref="account.view_move_tree"/>
            <field name="arch" type="xml">
                <field name="state" position="after">
                    <field name="l10n_es_edi_verifactu_state" widget="badge"
                           decoration-danger="l10n_es_edi_verifactu_state not in ('cancelled', 'accepted', 'registered_with_errors')"
                           decoration-warning="l10n_es_edi_verifactu_state == 'registered_with_errors'"
                           decoration-success="l10n_es_edi_verifactu_state == 'accepted'"
                           decoration-muted="l10n_es_edi_verifactu_state == 'cancelled'"
                           optional="hide"/>
                </field>
            </field>
        </record>

        <record id="view_invoice_tree" model="ir.ui.view">
            <field name="name">account.invoice.tree</field>
            <field name="model">account.move</field>
            <field name="inherit_id" ref="account.view_invoice_tree"/>
            <field name="arch" type="xml">
                <field name="status_in_payment" position="after">
                    <field name="l10n_es_edi_verifactu_state" widget="badge"
                           decoration-danger="l10n_es_edi_verifactu_state not in ('cancelled', 'accepted', 'registered_with_errors')"
                           decoration-warning="l10n_es_edi_verifactu_state == 'registered_with_errors'"
                           decoration-success="l10n_es_edi_verifactu_state == 'accepted'"
                           decoration-muted="l10n_es_edi_verifactu_state == 'cancelled'"
                           optional="hide"/>
                </field>
            </field>
        </record>

        <record id="view_move_form_inherit_l10n_es_edi_verifactu" model="ir.ui.view">
            <field name="name">account.move.form.inherit.l10n_es_edi_verifactu</field>
            <field name="model">account.move</field>
            <field name="inherit_id" ref="account.view_move_form"/>
            <field name="arch" type="xml">
                <xpath expr="//header" position="after">
                    <div class="alert alert-info" role="alert"
                        invisible="not l10n_es_edi_verifactu_warning or l10n_es_edi_verifactu_warning_level != 'info'">
                        <field class="d-inline-block" name="l10n_es_edi_verifactu_warning"/>
                    </div>
                    <div class="alert alert-warning" role="alert"
                        invisible="not l10n_es_edi_verifactu_warning or l10n_es_edi_verifactu_warning_level != 'warning'">
                        <field class="d-inline-block" name="l10n_es_edi_verifactu_warning"/>
                    </div>
                    <div class="alert alert-danger" role="alert"
                        invisible="not l10n_es_edi_verifactu_warning or l10n_es_edi_verifactu_warning_level != 'danger'">
                        <field class="d-inline-block" name="l10n_es_edi_verifactu_warning"/>
                    </div>
                </xpath>
                <xpath expr="//button[@name='button_cancel']" position="after">
                    <button name="l10n_es_edi_verifactu_button_cancel"
                            string="Request Veri*Factu Cancellation"
                            type="object"
                            groups="account.group_account_invoice"
                            invisible="not l10n_es_edi_verifactu_show_cancel_button"/>
                </xpath>
                <xpath expr="//notebook" position="inside">
                    <page
                        id="verifactu_tab"
                        string="Veri*Factu"
                        invisible="not l10n_es_edi_verifactu_required and not l10n_es_edi_verifactu_document_ids"
                    >
                        <group>
                            <field name="l10n_es_edi_verifactu_refund_reason"
                                   invisible="move_type == 'out_invoice' and not l10n_es_edi_verifactu_substituted_entry_id"
                                   readonly="state != 'draft'"/>
                            <field name="l10n_es_edi_verifactu_substituted_entry_id" invisible="not l10n_es_edi_verifactu_substituted_entry_id"/>
                            <field name="reversed_entry_id" invisible="not reversed_entry_id"/>
                            <field name="l10n_es_edi_verifactu_available_clave_regimens" invisible="1"/> <!--needed for the dynamic_selection widget-->
                            <field name="l10n_es_edi_verifactu_clave_regimen"
                                   readonly="state != 'draft'"
                                   widget="dynamic_selection"
                                   options="{'available_field': 'l10n_es_edi_verifactu_available_clave_regimens'}"/>
                            <field name="l10n_es_edi_verifactu_state"
                                   invisible="not l10n_es_edi_verifactu_required and not l10n_es_edi_verifactu_state"/>
                        </group>
                        <group string="Veri*Factu Documents">
                            <field name="l10n_es_edi_verifactu_document_ids"
                                   colspan="2"
                                   nolabel="1"
                                   readonly="True">
                                <list string="Veri*Factu Documents">
                                    <field name="create_date"/>
                                    <field name="document_type"/>
                                    <field name="state" widget="badge"
                                           decoration-danger="state not in ('accepted', 'registered_with_errors')"
                                           decoration-warning="state == 'registered_with_errors'"
                                           decoration-success="state == 'accepted'"/>
                                </list>
                            </field>
                        </group>
                    </page>
                </xpath>
            </field>
        </record>
    </data>
</odoo>
