Files
odoo-usability/stock_usability/stock_view.xml
Alexis de Lattre 9f1cf7af1e Mig account_usability, sale_stock_usability, sale_usability, stock_usability
New module stock_account_usability
2019-02-04 20:00:41 +01:00

342 lines
14 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2014-2019 Akretion (http://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="view_picking_form" model="ir.ui.view">
<field name="name">stock_usability.view_picking_form</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form" />
<field name="arch" type="xml">
<field name="backorder_id" position="attributes">
<attribute name="attrs">{}</attribute>
</field>
<field name="partner_id" position="attributes">
<attribute name="context">{'show_address': 1}</attribute>
<attribute name="options">{'always_reload': True}</attribute>
</field>
<button name="action_cancel" type="object" position="attributes">
<attribute name="confirm">Are you sure you want to cancel this picking?</attribute>
</button>
<!-- This sum is useful to check the 'number of items' to transfer... -->
<xpath expr="//field[@name='move_ids_without_package']/tree/field[@name='product_uom_qty']" position="attributes">
<attribute name="sum">1</attribute>
</xpath>
</field>
</record>
<record id="vpicktree" model="ir.ui.view">
<field name="name">stock_usability.view_picking_tree</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.vpicktree" />
<field name="arch" type="xml">
<field name="scheduled_date" position="after">
<field name="date_done"/>
</field>
</field>
</record>
<record id="view_picking_internal_search" model="ir.ui.view">
<field name="name">stock_usability.view_picking_search</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_internal_search" />
<field name="arch" type="xml">
<filter name="picking_type" position="after">
<filter string="Partner" name="partner_groupby" context="{'group_by': 'partner_id'}"/>
</filter>
<filter name="origin" position="replace"/>
<filter name="expected_date" position="after">
<filter name="date_done_groupby" string="Date Done"
context="{'group_by': 'date_done:day'}"/>
</filter>
<filter name="expected_date" position="attributes">
<!-- group per day -->
<attribute name="context">"{'group_by': 'scheduled_date:day'}"</attribute>
</filter>
</field>
</record>
<record id="stock_picking_pivot" model="ir.ui.view">
<field name="name">stock_usability.picking_pivot</field>
<field name="model">stock.picking</field>
<field name="arch" type="xml">
<pivot string="Transfers">
<field name="date_done" type="row" interval="month"/>
</pivot>
</field>
</record>
<record id="stock.action_picking_tree_all" model="ir.actions.act_window">
<field name="view_mode">tree,kanban,form,calendar,pivot</field> <!-- add pivot -->
</record>
<record id="stock.stock_picking_action_picking_type" model="ir.actions.act_window">
<field name="view_mode">tree,kanban,form,calendar,pivot</field> <!-- add pivot -->
</record>
<record id="stock.action_picking_tree_done" model="ir.actions.act_window">
<field name="view_mode">tree,kanban,form,calendar,pivot</field> <!-- add pivot -->
</record>
<record id="stock.action_picking_tree_ready" model="ir.actions.act_window">
<field name="view_mode">tree,kanban,form,calendar,pivot</field> <!-- add pivot -->
</record>
<record id="stock.action_picking_tree_done_grouped" model="ir.actions.act_window">
<field name="view_mode">tree,kanban,form,calendar,pivot</field> <!-- add pivot -->
</record>
<record id="stock.action_picking_tree_waiting" model="ir.actions.act_window">
<field name="view_mode">tree,kanban,form,calendar,pivot</field> <!-- add pivot -->
</record>
<record id="stock.action_picking_tree_late" model="ir.actions.act_window">
<field name="view_mode">tree,kanban,form,calendar,pivot</field> <!-- add pivot -->
</record>
<record id="stock.action_picking_tree_backorder" model="ir.actions.act_window">
<field name="view_mode">tree,kanban,form,calendar,pivot</field> <!-- add pivot -->
</record>
<record id="stock.action_picking_tree" model="ir.actions.act_window">
<field name="view_mode">tree,kanban,form,calendar,pivot</field> <!-- add pivot -->
</record>
<!-- Display route in stock moves -->
<!--
<record id="view_move_form" model="ir.ui.view">
<field name="name">stock.usability.stock.move.form</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_form" />
<field name="arch" type="xml">
<field name="state" position="before">
<button type="object" name="button_do_unreserve" string="Unreserve"
groups="stock.group_stock_user"
attrs="{'invisible': [('reserved_quant_ids', '=', [])]}"/>
</field>
<field name="picking_id" position="after">
<field name="inventory_id" readonly="1"/>
</field>
<group name="moved_quants_grp" position="after">
<notebook colspan="2">
<page string="Notes" name="notes">
<field name="note" nolabel="1"/>
</page>
<page string="Advanced Parameters" name="advanced-params" groups="stock.group_stock_manager">
<group name="advanced">
<field name="procurement_id"/>
<field name="route_ids" widget="many2many_tags"/>
<field name="rule_id" readonly="1"/>
<field name="push_rule_id" readonly="1"/>
<field name="propagate" readonly="1"/>
<field name="price_unit"
attrs="{'readonly': [('state', '=', 'done')]}"/>
<field name="reserved_quant_ids" readonly="1"/>
</group>
</page>
</notebook>
</group>
</field>
</record>
-->
<!--
<record id="view_move_picking_form" model="ir.ui.view">
<field name="name">stock.usability.stock.move.picking.form</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_picking_form" />
<field name="arch" type="xml">
<field name="state" position="before">
<button type="object" name="button_do_unreserve" string="Unreserve"
groups="stock.group_stock_user"
attrs="{'invisible': [('reserved_quant_ids', '=', [])]}"/>
</field>
<field name="group_id" position="replace"/>
<group name="moved_quants_grp" position="after">
<notebook colspan="2">
<page string="Notes" name="notes">
<field name="note" nolabel="1"/>
</page>
<page string="Advanced Parameters" name="advanced-params" groups="stock.group_stock_manager">
<group name="advanced">
<field name="partner_id"/>
<field name="procurement_id"/>
<field name="group_id"/>
<field name="route_ids" widget="many2many_tags"/>
<field name="rule_id" readonly="1"/>
<field name="push_rule_id" readonly="1"/>
<field name="propagate" readonly="1"/>
<field name="price_unit" readonly="1"/>
<field name="reserved_quant_ids" readonly="1"/>
</group>
</page>
</notebook>
</group>
</field>
</record>
-->
<record id="view_move_picking_tree" model="ir.ui.view">
<field name="name">stock_usability.src_location.in.picking.form</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_picking_tree" />
<field name="arch" type="xml">
<field name="location_id" position="attributes">
<attribute name="invisible">0</attribute>
</field>
<field name="location_dest_id" position="attributes">
<attribute name="invisible">0</attribute>
</field>
<!--
<field name="state" position="after">
<button type="object" name="button_do_unreserve" string="Unreserve"
groups="stock.group_stock_user"
attrs="{'invisible': [('reserved_quant_ids', '=', [])]}"
icon="fa-ban"/>
<field name="reserved_quant_ids" invisible="1"/>
</field> -->
</field>
</record>
<!-- By default, stock.move have:
_order = 'picking_id, sequence, id'
I don't know if they have a good reason to choose this order,
but, when you open tree view of move lines from product, you want
the most recent moves at the top, so we change the default
order in the tree view (lower impact than changing _order -->
<record id="view_move_tree" model="ir.ui.view">
<field name="name">stock_usability.move.tree.better.order</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_tree" />
<field name="arch" type="xml">
<tree position="attributes">
<attribute name="default_order">date desc, picking_id, sequence</attribute>
</tree>
</field>
</record>
<record id="view_warehouse" model="ir.ui.view">
<field name="name">stock.usability.warehouse.form</field>
<field name="model">stock.warehouse</field>
<field name="inherit_id" ref="stock.view_warehouse" />
<field name="arch" type="xml">
<xpath expr="//field[@name='out_type_id']/.." position="after">
<group name="routes" string="Routes">
<field name="route_ids" widget="many2many_tags"/>
<field name="crossdock_route_id"/>
<field name="reception_route_id"/>
<field name="delivery_route_id"/>
<field name="resupply_route_ids"/>
</group>
</xpath>
<field name="wh_input_stock_loc_id" position="before">
<field name="lot_stock_id" readonly="1" required="0"/>
<field name="view_location_id" groups="base.group_no_one"
readonly="1" required="0"/>
</field>
</field>
</record>
<record id="view_location_search" model="ir.ui.view">
<field name="name">stock.usability.stock.location.search</field>
<field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_search" />
<field name="arch" type="xml">
<filter name="inactive" position="after">
<group string="Group By" name="groupby">
<filter name="usage_groupby" string="Location Type"
context="{'group_by': 'usage'}"/>
</group>
</filter>
</field>
</record>
<record id="location_open_orderpoint" model="ir.actions.act_window">
<field name="name">Reordering Rules</field>
<field name="res_model">stock.warehouse.orderpoint</field>
<field name="context">{'default_location_id': active_id, 'search_default_location_id': active_id}</field>
</record>
<record id="view_location_form" model="ir.ui.view">
<field name="name">stock.usability.stock.location.form</field>
<field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_form"/>
<field name="arch" type="xml">
<button class="oe_stat_button" icon="fa-filter" position="after">
<button type="action" name="%(location_open_orderpoint)d"
string="Reordering Rules"
class="oe_stat_button" icon="fa-refresh"/>
</button>
</field>
</record>
<!-- By default, the menu entry for stock location is only under
Configuration > Warehouse management
But, the view of stock location is very useful to be able to list
of the items present on a particular stock location => so every user
should be able to access it. So I add a menu entry under Inventory Control. -->
<menuitem id="stock_location_menu" action="stock.action_location_form"
parent="stock.menu_stock_inventory_control"
groups="stock.group_stock_multi_locations"
sequence="50"/>
<record id="view_inventory_form" model="ir.ui.view">
<field name="name">usability.stock.inventory.form</field>
<field name="model">stock.inventory</field>
<field name="inherit_id" ref="stock.view_inventory_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='line_ids']/tree" position="attributes">
<!-- native : decoration-info="product_qty != theoretical_qty" decoration-danger="theoretical_qty &lt; 0" -->
<attribute name="decoration-info">product_qty &gt; theoretical_qty</attribute>
<attribute name="decoration-warning">product_qty &lt; theoretical_qty</attribute>
</xpath>
<button name="action_reset_product_qty" type="object" position="attributes">
<attribute name="confirm">Are you sure you want to reset all quantities to 0 ?</attribute>
</button>
</field>
</record>
<record id="view_stock_quant_tree" model="ir.ui.view">
<field name="name">stock.usability.quant.tree</field>
<field name="model">stock.quant</field>
<field name="inherit_id" ref="stock.view_stock_quant_tree"/>
<field name="arch" type="xml">
<field name="quantity" position="attributes">
<attribute name="sum">1</attribute>
</field>
<field name="reserved_quantity" position="attributes">
<attribute name="sum">1</attribute>
</field>
</field>
</record>
<!-- more detailed stock.move tree view when using the button from product form -->
<!-- TODO TEST
<record id="stock.act_product_stock_move_open" model="ir.actions.act_window">
<field name="view_id" ref="stock.view_move_tree"/>
</record> -->
<!-- The native menu entry of quants is called "Inventory Valuation"
but it forces a group by on products that you can't remove
So I create another "regular" Quants" menu entry -->
<record id="stock_quant_action" model="ir.actions.act_window">
<field name="name">Quants List</field>
<field name="res_model">stock.quant</field>
<field name="view_mode">tree,form,pivot</field>
<field name="context">{'search_default_internal_loc': 1}</field>
</record>
<menuitem id="stock_quant_menu" action="stock_quant_action"
parent="stock.menu_stock_inventory_control"
sequence="135"/>
</odoo>