<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <act_window
        context="{'location': active_id, 'search_default_real_stock_available': 1, 'search_default_virtual_stock_available': 1,
                    'search_default_virtual_stock_negative': 1, 'search_default_real_stock_negative': 1}"
        id="act_product_location_open"
        name="Products"
        res_model="product.product"
        src_model="stock.location"/>

    <record id="view_location_form" model="ir.ui.view">
        <field name="name">stock.location.form</field>
        <field name="model">stock.location</field>
        <field name="arch" type="xml">
            <form string="Stock Location" create="false">
                <div class="oe_button_box" name="button_box">
                    <button string="Current Stock"
                            class="oe_stat_button"
                            icon="fa-building-o" name="%(location_open_quants)d" type="action"/>
                    <button string="Products"
                            class="oe_stat_button"
                            icon="fa-filter" name="%(act_product_location_open)d" type="action"
                            context="{'location_id': active_id}"
                            />
                   <button name="toggle_active" type="object" class="oe_stat_button" icon="fa-archive">
                        <field name="active" widget="boolean_button" options='{"terminology": "archive"}'/>
                    </button>
                </div>
                <label for="name" class="oe_edit_only"/>
                <h1><field name="name"/></h1>
                <label for="location_id" class="oe_edit_only"/>
                <h2><field name="location_id" options="{'no_create': True}"/></h2>

                <group>
                    <group string="Additional Information">
                        <field name="usage"/>
                        <field name="partner_id"/>
                        <field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
                        <field name="scrap_location"/>
                        <field name="return_location"/>
                    </group>
                    <group string="Localization" name="localization">
                        <field name="posx"/>
                        <field name="posy"/>
                        <field name="posz"/>
                        <field name="barcode"/>
                    </group>
                    <group string="Logistics" groups="stock.group_adv_location">
                        <field name="removal_strategy_id" options="{'no_create': True}"/>
                        <field name="putaway_strategy_id" context="{'location_id': active_id}"/>
                    </group>
                </group>
                <field name="comment" placeholder="External note..."/>
            </form>
        </field>
    </record>

    <record id="stock_location_view_form_editable" model="ir.ui.view">
        <field name="name">stock.location.form.editable</field>
        <field name="model">stock.location</field>
        <field name="inherit_id" ref="stock.view_location_form"/>
        <field name="groups_id" eval="[(4, ref('stock.group_stock_multi_locations'))]"/>
        <field name="arch" type="xml">
            <xpath expr="//form" position="attributes">
                <attribute name="create">true</attribute>
            </xpath>
        </field>
    </record>

    <record id="view_location_search" model="ir.ui.view">
        <field name="name">stock.location.search</field>
        <field name="model">stock.location</field>
        <field name="arch" type="xml">
            <search string="Stock Locations">
                <field name="name" string="Stock Locations"/>
                <filter name="in_location" string="Internal" domain="[('usage', '=', 'internal')]" help="Internal Locations"/>
                <filter name="customer" string="Customer" domain="[('usage', '=', 'customer')]" help="Customer Locations"/>
                <filter name="supplier" string="Vendor" domain="[('usage', '=', 'supplier')]" help="Vendor Locations"/>
                <field name="location_id" string="Parent Location"/>
                <separator/>
                <filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
            </search>
        </field>
    </record>

    <record id="view_location_tree2" model="ir.ui.view">
        <field name="name">stock.location.tree</field>
        <field name="model">stock.location</field>
        <field name="priority" eval="2"/>
        <field name="arch" type="xml">
            <tree string="Stock Location" decoration-info="usage=='view'" decoration-danger="usage=='internal'" create="false">
                <field name="active" invisible="1"/>
                <field name="display_name" string="Location"/>
                <field name="usage"/>
                <field name="company_id" groups="base.group_multi_company"/>
            </tree>
        </field>
    </record>

    <record id="stock_location_view_tree2_editable" model="ir.ui.view">
        <field name="name">stock.location.tree2.editable</field>
        <field name="model">stock.location</field>
        <field name="inherit_id" ref="stock.view_location_tree2"/>
        <field name="groups_id" eval="[(4, ref('stock.group_stock_multi_locations'))]"/>
        <field name="arch" type="xml">
            <xpath expr="//tree" position="attributes">
                <attribute name="create">true</attribute>
            </xpath>
        </field>
    </record>

    <record id="action_location_form" model="ir.actions.act_window">
        <field name="name">Locations</field>
        <field name="res_model">stock.location</field>
        <field name="type">ir.actions.act_window</field>
        <field name="view_type">form</field>
        <field name="view_id" ref="view_location_tree2"/>
        <field name="search_view_id" ref="view_location_search"/>
        <field name="context">{'search_default_in_location':1}</field>
        <field name="help" type="html">
          <p class="o_view_nocontent_smiling_face">
            Add a new location
          </p><p>
            Define your locations to reflect your warehouse structure and
            organization. Odoo is able to manage physical locations
            (warehouses, shelves, bin, etc), partner locations (customers,
            vendors) and virtual locations which are the counterpart of
            the stock operations like the manufacturing orders
            consumptions, inventories, etc.
          </p><p>
            Every stock operation in Odoo moves the products from one
            location to another one.  For instance, if you receive products
            from a vendor, Odoo will move products from the Vendor
            location to the Stock location. Each report can be performed on
            physical, partner or virtual locations.
          </p>
        </field>
    </record>
    <menuitem action="action_location_form" id="menu_action_location_form"
        parent="menu_warehouse_config" sequence="2" groups="stock.group_stock_multi_locations"/>

        <!--Routes-->
        <record id="stock_location_route_tree" model="ir.ui.view">
            <field name="name">stock.location.route.tree</field>
            <field name="model">stock.location.route</field>
            <field name="arch" type="xml">
                <tree string="Routes">
                    <field name="sequence" widget="handle" />
                    <field name="name"/>
                    <field name="active" invisible="1"/>
                </tree>
            </field>
        </record>

        <record id="stock_location_route_form_view" model="ir.ui.view">
            <field name="name">stock.location.route.form</field>
            <field name="model">stock.location.route</field>
            <field eval="7" name="priority" />
            <field name="arch" type="xml">
                <form string="Route">
                    <sheet>
                        <div class="oe_button_box" name="button_box">
                            <button name="toggle_active" type="object" class="oe_stat_button" icon="fa-archive" groups="stock.group_adv_location">
                                <field name="active" widget="boolean_button" options='{"terminology": "archive"}'/>
                            </button>
                        </div>
                        <div class="oe_title">
                            <label for="name" class="oe_edit_only"/>
                            <h1><field name="name"/></h1>
                        </div>
                    <group>
                        <group>
                            <field name="sequence" string="Sequence" groups="base.group_no_one"/>
                            <field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
                        </group>
                    </group>
                    <separator string="Applicable On"/>
                    <p class="oe_grey">Select the places where this route can be selected</p>
                    <group>
                        <group>
                            <label for="product_categ_selectable" string="Product Categories"/>
                            <div>
                                <field name="product_categ_selectable" class="oe_inline"/>
                            </div>
                            <label for="product_selectable" string="Products"/>
                            <div>
                                <field name="product_selectable" class="oe_inline"/>
                            </div>
                        </group>
                        <group>
                            <field name="warehouse_selectable" string="Warehouses"/>
                            <field name="warehouse_ids"  widget="many2many_tags" nolabel="1"
                                   attrs="{'invisible': [('warehouse_selectable', '=', False)]}"/>
                        </group>
                    </group>
                    <group string="Rules" colspan="4" >
                        <field name="rule_ids" colspan="4" nolabel="1" context="{'default_company_id': company_id, 'form_view_ref':'stock.view_route_rule_form'}">
                            <tree>
                                <field name="sequence" widget="handle"/>
                                <field name="action"/>
                                <field name="location_src_id"/>
                                <field name="location_id"/>
                            </tree>
                        </field>
                    </group>
                    </sheet>
                </form>
            </field>
        </record>

        <record id="stock_location_route_view_search" model="ir.ui.view">
            <field name="name">stock.location.route.search</field>
            <field name="model">stock.location.route</field>
            <field name="arch" type="xml">
                <search string="Route">
                    <field name="name"/>
                    <filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
                </search>
            </field>
        </record>

        <record id="action_routes_form" model="ir.actions.act_window">
            <field name="name">Routes</field>
            <field name="res_model">stock.location.route</field>
            <field name="type">ir.actions.act_window</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="view_id" ref="stock_location_route_tree" />
            <field name="help" type="html">
              <p class="o_view_nocontent_smiling_face">
                Add a new route
              </p><p>
                You can define here the main routes that run through
                your warehouses and that define the flows of your products. These
                routes can be assigned to a product, a product category or be fixed
                on procurement or sales order.
              </p>
            </field>
        </record>

        <menuitem id="menu_routes_config" action="action_routes_form" name="Routes" parent="menu_warehouse_config" sequence="3" groups="stock.group_adv_location"/>

</odoo>
