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

    <record id="vpicktree_inherit_l10n_tr_nilvera_edispatch" model="ir.ui.view">
        <field name="name">stock.picking.view.list.inherit</field>
        <field name="model">stock.picking</field>
        <field name="inherit_id" ref="stock.vpicktree"/>
        <field name="arch" type="xml">
            <list position="attributes">
                <attribute name="js_class">l10n_tr_edispatch_tree</attribute>
            </list>
        </field>
    </record>

    <record id="view_picking_internal_search_inherit_l10n_tr_nilvera_edispatch" model="ir.ui.view">
        <field name="name">stock.picking.internal.search.inherit.l10n.tr.nilvera.edispatch</field>
        <field name="model">stock.picking</field>
        <field name="inherit_id" ref="stock.view_picking_internal_search"/>
        <field name="arch" type="xml">
            <xpath expr="//group" position="inside">
                <filter 
                    string="Nilvera Status"
                    name="nilvera_status"
                    context="{'group_by': 'l10n_tr_nilvera_send_status'}"
                />
            </xpath>
        </field>
    </record>

    <record id="view_picking_form_inherit_l10n_tr_nilvera_edispatch" model="ir.ui.view">
        <field name="name">view.picking.form.inherit.l10n.tr.nilvera.edispatch</field>
        <field name="model">stock.picking</field>
        <field name="inherit_id" ref="stock.view_picking_form"/>
        <field name="arch" type="xml">
            <xpath expr="//header" position="inside">
                <button name="action_send_edispatch_xml"
                        type="object"
                        invisible="country_code != 'TR' or picking_type_code != 'outgoing' or state != 'done' or not partner_id or l10n_tr_nilvera_send_status != 'not_sent'"
                        string="Send GİB e-Dispatch (XML)" />
            </xpath>
            <field name="origin" position="after">
                <label for="l10n_tr_nilvera_send_status" invisible="country_code != 'TR' or state == 'draft' or picking_type_code != 'outgoing'"/>
                <div name="nilvera_div"
                     class="o_row o_align_center"
                     invisible="country_code != 'TR' or state == 'draft' or picking_type_code != 'outgoing'">
                     <div class="d-flex align-items-center gap-2">
                        <field name="l10n_tr_nilvera_send_status" class="w-auto"/>
                        <button
                            name="l10n_tr_nilvera_get_dispatch_status"
                            type="object"
                            class="o_icon_button text-primary"
                            invisible="l10n_tr_nilvera_send_status not in ['sent', 'waiting']"
                            title="Synchronize with Nilvera"
                            icon="fa-refresh"/>
                    </div>
                </div>
            </field>
            <xpath expr="//notebook/page[@name='operations']" position="after">
                <page name="l10n_tr_edispatch" string="e-Dispatch" invisible="country_code != 'TR' or picking_type_code == 'internal' or not partner_id">
                    <group>
                        <group name="l10n_tr_delivery_details" string="General Information">
                            <field name="l10n_tr_nilvera_dispatch_type"  required="country_code == 'TR'"/>
                            <field name="l10n_tr_nilvera_carrier_id" string="Carrier" domain="[('vat', 'not in', [False, 'na', 'NA', '/'])]"/>
                            <field name="l10n_tr_nilvera_delivery_printed_number" invisible="l10n_tr_nilvera_dispatch_type != 'MATBUDAN'"/>
                            <field name="l10n_tr_nilvera_delivery_date" invisible="l10n_tr_nilvera_dispatch_type != 'MATBUDAN'"/>
                        </group>
                        <group name="l10n_tr_additionals" string="Additional Information">
                            <field name="l10n_tr_nilvera_buyer_id"/>
                            <field name="l10n_tr_nilvera_seller_supplier_id"/>
                            <field name="l10n_tr_nilvera_buyer_originator_id"/>
                            <field name="l10n_tr_nilvera_delivery_notes"/>
                        </group>
                    </group>
                    <group>
                        <group name="l10n_tr_vehicle_details" string="Vehicle Information">
                            <field name="l10n_tr_vehicle_plate" context="{'default_plate_number_type': 'vehicle'}"/>
                            <field name="l10n_tr_nilvera_trailer_plate_ids" widget="many2many_tags" context="{'default_plate_number_type': 'trailer'}"/>
                        </group>
                        <group name="l10n_tr_driver_details" string="Driver Information">
                            <field name="l10n_tr_nilvera_driver_ids" widget="many2many_tags" create="0" group_create="0" domain="[('vat', 'not in', [False, 'na', 'NA', '/'])]"/>
                        </group>
                    </group>
                </page>
            </xpath>
            <xpath expr="//sheet" position="before">
                <field name="l10n_tr_nilvera_edispatch_warnings" invisible="1"/>
                <div class="m-0" name="warnings" invisible="not l10n_tr_nilvera_edispatch_warnings or (state == 'done' and not partner_id)">
                    <field name="l10n_tr_nilvera_edispatch_warnings" class="o_field_html" widget="actionable_errors"/>
                </div>
            </xpath>
        </field>
    </record>

    <record id="view_picking_type_form_inherit_l10n_tr_nilvera_edispatch" model="ir.ui.view">
        <field name="name">view.picking.type.form.inherit.l10n.tr.nilvera.edispatch</field>
        <field name="model">stock.picking.type</field>
        <field name="inherit_id" ref="stock.view_picking_type_form"/>
        <field name="arch" type="xml">
            <xpath expr="//sheet" position="before">
                <div class="alert alert-info" role="alert" invisible="country_code != 'TR' or code != 'outgoing' or not l10n_tr_nilvera_gib_sequence_code">
                    <span>The system detected the E-Dispatch GIB prefix as <b><field name="l10n_tr_nilvera_gib_sequence_code"/></b>.
                        <br/>The system will send <b><field name="l10n_tr_nilvera_gib_sequence_code"/></b> to Nilvera instead of <b><field readonly="True" name="sequence_code"/></b>.
                        <br/>Please verify that the prefix is correct.</span>
                </div>
                <div class="alert alert-danger" role="alert" invisible="country_code != 'TR' or code != 'outgoing' or l10n_tr_nilvera_gib_sequence_code">
                        <span>Odoo could not detect a GIB e-Dispatch prefix. Please update the Sequence Prefix.</span>
                </div>
            </xpath>
        </field>
    </record>

    <record model="ir.actions.server" id="action_export_l10n_tr_nilvera_edispatch_list">
        <field name="name">Generate GİB e-Dispatch (XML)</field>
        <field name="model_id" ref="model_stock_picking"/>
        <field name="binding_model_id" ref="model_stock_picking"/>
        <field name="binding_view_types">list</field>
        <field name="state">code</field>
        <field name="code">
records.action_generate_l10n_tr_edispatch_xml(is_list=True)
        </field>
    </record>

    <record model="ir.actions.server" id="action_export_l10n_tr_nilvera_edispatch_form">
        <field name="name">Generate GİB e-Dispatch (XML)</field>
        <field name="model_id" ref="model_stock_picking"/>
        <field name="binding_model_id" ref="model_stock_picking"/>
        <field name="binding_view_types">form</field>
        <field name="state">code</field>
        <field name="code">records.action_generate_l10n_tr_edispatch_xml()</field>
    </record>
</odoo>
