odoo/addons/stock/stock_view.xml

1835 lines
101 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Top menu item -->
<menuitem name="Warehouse"
id="menu_stock_root"
groups="group_stock_manager,group_stock_user"
sequence="70"/>
<menuitem id="menu_stock_warehouse_mgmt" name="Receive/Deliver By Orders" parent="menu_stock_root" sequence="1"/>
<menuitem id="menu_stock_products_moves" name="Receive/Deliver Products" parent="menu_stock_root" sequence="2"/>
<menuitem id="menu_stock_product" name="Products" parent="menu_stock_root" sequence="6"/>
<menuitem name="Products by Category" id="menu_product_by_category_stock_form" action="product.product_category_action"
parent="stock.menu_stock_product" sequence="0"/>
<menuitem action="product.product_normal_action" id="menu_stock_products_menu" parent="menu_stock_product" sequence="1"/>
<menuitem id="menu_stock_configuration" name="Configuration" parent="menu_stock_root" sequence="15" groups="group_stock_manager"/>
<menuitem id="menu_warehouse_config" name="Warehouse Management" parent="menu_stock_configuration" sequence="40" groups="base.group_no_one"/>
<menuitem id="menu_stock_inventory_control" name="Inventory Control" parent="menu_stock_root" sequence="4"/>
<menuitem
id="menu_product_in_config_stock" name="Products"
parent="stock.menu_stock_configuration" sequence="45" groups="base.group_no_one"/>
<menuitem
action="product.product_category_action_form" id="menu_product_category_config_stock"
parent="stock.menu_product_in_config_stock" sequence="0"/>
<menuitem
action="product.product_ul_form_action" groups="product.group_stock_packaging"
id="menu_product_packaging_stock_action" parent="stock.menu_product_in_config_stock" sequence="1"/>
<menuitem
id="menu_stock_unit_measure_stock" name="Units of Measure"
parent="stock.menu_product_in_config_stock" sequence="35" groups="product.group_uom"/>
<menuitem
action="product.product_uom_categ_form_action" id="menu_stock_uom_categ_form_action"
parent="menu_stock_configuration" sequence="30" groups="product.group_uom"/>
<menuitem
action="product.product_uom_form_action" id="menu_stock_uom_form_action"
parent="menu_stock_configuration" sequence="35" groups="product.group_uom"/>
<record id="stock_inventory_line_tree" model="ir.ui.view">
<field name="name">stock.inventory.line.tree</field>
<field name="model">stock.inventory.line</field>
<field name="arch" type="xml">
<tree string="Stock Inventory Lines">
<field name="product_id"/>
<field name="product_qty"/>
<field name="product_uom_id" groups="product.group_uom"/>
<field name="location_id" groups="stock.group_locations"/>
</tree>
</field>
</record>
<record id="view_inventory_line_form" model="ir.ui.view">
<field name="name">stock.inventory.line.form</field>
<field name="model">stock.inventory.line</field>
<field name="arch" type="xml">
<form string="Stock Inventory Lines" version="7.0">
<group col="4">
<field context="{'location':location_id, 'uom':product_uom_id, 'to_date':parent.date}" name="product_id" on_change="on_change_product_id(location_id,product_id,product_uom_id,parent.date)" domain="[('type','&lt;&gt;','service')]"/>
<field name="product_qty"/>
<field name="product_uom_id" groups="product.group_uom"/>
<field domain="[('usage','=','internal')]" name="location_id"/>
<button name="%(stock.action_view_stock_inventory_line_split)d"
string="Split Inventory Line"
type="action" icon="gtk-justify-fill"/>
</group>
</form>
</field>
</record>
<record id="view_inventory_filter" model="ir.ui.view">
<field name="name">stock.inventory.filter</field>
<field name="model">stock.inventory</field>
<field name="arch" type="xml">
<search string="Search Inventory">
<field name="name" string="Inventory Reference"/>
<field name="date"/>
<field name="company_id" groups="base.group_multi_company"/>
<group expand="0" string="Group By...">
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
</group>
</search>
</field>
</record>
<record id="view_inventory_tree" model="ir.ui.view">
<field name="name">stock.inventory.tree</field>
<field name="model">stock.inventory</field>
<field name="arch" type="xml">
<tree string="Lot Inventory" colors="grey:state == 'cancel'">
<field name="name"/>
<field name="date"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="view_inventory_form" model="ir.ui.view">
<field name="name">stock.inventory.form</field>
<field name="model">stock.inventory</field>
<field name="arch" type="xml">
<form string="Physical Inventory" version="7.0">
<header>
<button name="%(action_view_stock_fill_inventory)d" states="draft" string="Fill Inventory" type="action" class="oe_highlight" groups="stock.group_stock_user"/>
<button name="action_done" states="confirm" string="Validate Inventory" type="object" class="oe_highlight" groups="stock.group_stock_manager"/>
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/>
<button name="action_cancel_inventory" states="draft,confirm,done" string="Cancel Inventory" type="object"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirm"/>
</header>
<sheet>
<div class="oe_right oe_button_box">
<button name="action_check" string="Check Inventory Adjustments" states="draft,confirm" type="object" />
</div>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1><field name="name" placeholder="e.g. Annual inventory"/></h1>
</div>
<group>
<group>
<field name="location_id"/>
<field name="product_id"/>
<field name="lot_id"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<group>
<field name="date"/>
<field name="partner_id"/>
<field name="package_id"/>
</group>
</group>
<field name="move_ids_exist" invisible="1"/>
<notebook>
<page string="Inventory Details">
<field name="line_ids" string="Inventory Details">
<tree string="Inventory Details" editable="bottom">
<field context="{'location':location_id, 'uom':product_uom_id, 'to_date':parent.date}" name="product_id" on_change="on_change_product_id(location_id,product_id,product_uom_id,parent.date)" domain="[('type','=','product')]"/>
<field name="product_qty"/>
<field name="product_uom_id" groups="product.group_uom"/>
<field name="prod_lot_id"/>
<field name="package_id" readonly="1"/>
<field name="partner_id"/>
<field domain="[('usage','=','internal')]" name="location_id" groups="stock.group_locations"/>
<field name="state" invisible="True"/>
</tree>
</field>
</page>
<page string="Inventory Adjustments" attrs="{'invisible': [('move_ids_exist', '=', False)]}">
<field name="move_ids" context="{'inventory_id':active_id}" readonly="1">
<tree string="Inventory Adjustments">
<field name="product_id"/>
<field name="lot_ids"/>
<field name="product_uom_qty" on_change="onchange_quantity(product_id, product_uom_qty, product_uom, product_uos)"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="location_id"/>
<field name="location_dest_id"/>
<field name="state" invisible="True"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="action_inventory_form" model="ir.actions.act_window">
<field name="name">Physical Inventories</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stock.inventory</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_inventory_tree"/>
<field name="search_view_id" ref="view_inventory_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to start an inventory.
</p><p>
Periodical Inventories are used to count the number of products
available per location. You can use it once a year when you do
the general inventory or whenever you need it, to adapt the
current inventory level of a product.
</p>
</field>
</record>
<menuitem action="action_inventory_form" id="menu_action_inventory_form" parent="menu_stock_inventory_control" sequence="30"/>
<record id="action_inventory_form_draft" model="ir.actions.act_window">
<field name="name">Draft Physical Inventories</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stock.inventory</field>
<field name="view_type">form</field>
<field name="domain">[('state','=','draft')]</field>
<field name="filter" eval="True"/>
</record>
<menuitem id="menu_traceability" name="Traceability" parent="menu_stock_root"
sequence="3"/>
<record id="view_production_lot_form" model="ir.ui.view">
<field name="name">stock.production.lot.form</field>
<field name="model">stock.production.lot</field>
<field name="arch" type="xml">
<form string="Serial Number" version="7.0">
<div class="oe_button_box oe_right">
<button name="action_traceability" string="Upstream Traceability" type="object"/>
<button name="action_traceability" string="Downstream Traceability" type="object"/>
</div>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name"/>
</h1>
</div>
<group name="main_group">
<group>
<field name="product_id"/>
<field name="ref"/>
</group>
</group>
<notebook>
<page string="Products">
<field name="quant_ids">
<tree string="Stock Moves">
<field name="name"/>
<field name="product_id"/>
<field name="qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="location_id" groups="stock.group_locations"/>
</tree>
</field>
</page>
</notebook>
</form>
</field>
</record>
<record id="view_production_lot_tree" model="ir.ui.view">
<field name="name">stock.production.lot.tree</field>
<field name="model">stock.production.lot</field>
<field name="arch" type="xml">
<tree string="Serial Number">
<field name="name"/>
<field name="ref"/>
<field name="product_id"/>
<field name="create_date"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="search_product_lot_filter">
<field name="name">Production Lots Filter</field>
<field name="model">stock.production.lot</field>
<field name="arch" type="xml">
<search string="Product Lots Filter">
<field name="name" string="Product Lots" filter_domain="['|','|',('name','ilike',self),('ref','ilike',self)]"/>
<field name="product_id"/>
<group expand="0" string="Group By...">
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
</group>
</search>
</field>
</record>
<record id="action_production_lot_form" model="ir.actions.act_window">
<field name="name">Serial Number</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stock.production.lot</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_production_lot_tree"/>
<field name="search_view_id" ref="search_product_lot_filter"/>
<field name="context">{}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to add a serial number.
</p><p>
This is the list of all the production lots you recorded. When
you select a lot, you can get the upstream or downstream
traceability of the products contained in lot. By default, the
list is filtred on the serial numbers that are available in
your warehouse but you can uncheck the 'Available' button to
get all the lots you produced, received or delivered to
customers.
</p>
</field>
</record>
<menuitem action="action_production_lot_form" id="menu_action_production_lot_form"
parent="menu_traceability" groups="stock.group_production_lot"
sequence="1"/>
#
# Lot composition (history)
#
<record id="stock_move_tree" model="ir.ui.view">
<field name="name">Stock Moves</field>
<field name="model">stock.move</field>
<field name="arch" type="xml">
<tree colors="grey:state == 'cancel'" string="Moves" create="false">
<field name="product_id"/>
<field name="product_uom_qty"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="product_packaging" domain="[('product_id','=',product_id)]" groups="product.group_stock_packaging"/>
<field name="picking_id"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="location_dest_id" groups="stock.group_locations"/>
<field name="create_date" groups="base.group_no_one"/>
<field name="date" string="Date" groups="base.group_no_one"/>
<field name="date_expected" string="Date Expected"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="stock_move_tree2" model="ir.ui.view">
<field name="name">Stock Moves</field>
<field name="model">stock.move</field>
<field name="arch" type="xml">
<tree colors="grey:state == 'cancel'" string="Moves" create="false">
<field name="product_id"/>
<field name="product_uom_qty"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="product_packaging" domain="[('product_id','=',product_id)]" groups="product.group_stock_packaging"/>
<field name="picking_id"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="location_dest_id" groups="stock.group_locations"/>
<field name="create_date" groups="base.group_no_one"/>
<field name="date" string="Date" groups="base.group_no_one"/>
<field name="date_expected" string="Date Expected"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="action3" model="ir.actions.act_window">
<field name="name">Downstream traceability</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stock.move</field>
<field name="domain">[('id','in',active_ids)]</field>
<field name="view_type">tree</field>
<field eval="stock_move_tree2" name="view_id"/>
</record>
<record id="ir_move_traceability_upstream" model="ir.values">
<field name="key2">tree_but_action</field>
<field name="model">stock.move</field>
<field name="name">Downstream traceability</field>
<field eval="'ir.actions.act_window,'+str(action3)" name="value"/>
</record>
<record id="action5" model="ir.actions.act_window">
<field name="name">Upstream traceability</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stock.move</field>
<field name="domain">[('id','in',active_ids)]</field>
<field name="view_type">tree</field>
<field eval="stock_move_tree" name="view_id"/>
</record>
<record id="ir_move_traceability_downstream" model="ir.values">
<field name="key2">tree_but_action</field>
<field name="model">stock.move</field>
<field name="name">Upstream traceability</field>
<field eval="'ir.actions.act_window,'+str(action5)" name="value"/>
</record>
<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" version="7.0">
<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"/></h2>
<group>
<group string="Additional Information">
<field name="usage"/>
<field name="partner_id"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="scrap_location"/>
<field name="active"/>
</group>
<group string="Localization" name="localization">
<field name="posx"/>
<field name="posy"/>
<field name="posz"/>
</group>
</group>
<separator string="Additional Information"/>
<field name="comment"/>
</form>
</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 icon="terp-go-home" name="in_location" string="Internal" domain="[('usage', '=', 'internal')]" help="Internal Locations"/>
<filter icon="terp-personal" name="customer" string="Customer" domain="[('usage', '=', 'customer')]" help="Customer Locations"/>
<filter icon="terp-personal" name="supplier" string="Supplier" domain="[('usage', '=', 'supplier')]" help="Supplier Locations"/>
<field name="location_id" string="Parent Location"/>
</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" colors="blue:usage=='view';darkred:usage=='internal'">
<field name="complete_name"/>
<field name="usage"/>
</tree>
</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="oe_view_nocontent_create">
Click to add a location.
</p><p>
Define your locations to reflect your warehouse structure and
organization. OpenERP is able to manage physical locations
(warehouses, shelves, bin, etc), partner locations (customers,
suppliers) and virtual locations which are the counterpart of
the stock operations like the manufacturing orders
consumptions, inventories, etc.
</p><p>
Every stock operation in OpenERP moves the products from one
location to another one. For instance, if you receive products
from a supplier, OpenERP will move products from the Supplier
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" groups="stock.group_locations"
parent="menu_stock_configuration" sequence="5"/>
<record id="view_location_tree" model="ir.ui.view">
<field name="name">stock.location.tree</field>
<field name="model">stock.location</field>
<field name="field_parent">child_ids</field>
<field name="arch" type="xml">
<tree toolbar="1" string="Locations" >
<field name="name"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_product_location_tree">
<field name="context">{'product_id': active_id}</field>
<field name="name">Stock by Location</field>
<field name="res_model">stock.location</field>
</record>
<record id="act_product_stock_move_open" model="ir.actions.act_window">
<field name="context">{'search_default_done': 1,'search_default_product_id': active_id, 'default_product_id': active_id}</field>
<field name="name">Moves</field>
<field name="res_model">stock.move</field>
</record>
<record id="action_location_tree" model="ir.actions.act_window">
<field name="name">Location Structure</field>
<field name="res_model">stock.location</field>
<field name="type">ir.actions.act_window</field>
<field name="domain">[('location_id','=',False)]</field>
<field name="view_type">tree</field>
<field name="view_id" ref="view_location_tree"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to add a location.
</p><p>
This is the structure of your company's warehouses and
locations. You can click on a location to get the list of the
products and their stock level in this particular location and
all its children.
</p>
</field>
</record>
<menuitem action="action_location_tree"
id="menu_action_location_tree"
parent="menu_stock_inventory_control"
groups="stock.group_locations"
sequence="20"/>
<record id="view_warehouse" model="ir.ui.view">
<field name="name">stock.warehouse</field>
<field name="model">stock.warehouse</field>
<field name="arch" type="xml">
<form string="Warehouse" version="7.0">
<sheet>
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>
<group>
<group>
<field name="lot_stock_id" groups="stock.group_locations"/>
</group>
<group>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="partner_id"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_warehouse_tree" model="ir.ui.view">
<field name="name">stock.warehouse.tree</field>
<field name="model">stock.warehouse</field>
<field name="arch" type="xml">
<tree string="Warehouse">
<field name="name"/>
<field name="lot_stock_id" groups="stock.group_locations"/>
<field name="partner_id"/>
</tree>
</field>
</record>
<record id="action_warehouse_form" model="ir.actions.act_window">
<field name="name">Warehouses</field>
<field name="res_model">stock.warehouse</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_warehouse_tree"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to define a new warehouse.
</p>
</field>
</record>
<menuitem action="action_warehouse_form" id="menu_action_warehouse_form" groups="stock.group_locations"
parent="menu_stock_configuration" sequence="1"/>
<!--
Stock picking
Defaults and Internal Pickings
-->
<record model="ir.ui.view" id="stock_picking_calendar">
<field name="name">stock.picking.calendar</field>
<field name="model">stock.picking</field>
<field name="priority" eval="2"/>
<field name="arch" type="xml">
<calendar string="Calendar View" date_start="min_date" date_stop="max_date" color="partner_id">
<field name="origin"/>
<field name="picking_type_id"/>
<field name="partner_id"/>
</calendar>
</field>
</record>
<record id="vpicktree" model="ir.ui.view">
<field name="name">stock.picking.tree</field>
<field name="model">stock.picking</field>
<field name="arch" type="xml">
<tree colors="blue:state == 'draft';grey:state == 'cancel';red:state not in ('cancel', 'done') and date &lt; current_date" string="Picking list">
<field name="name"/>
<field name="origin"/>
<field name="date"/>
<field name="min_date"/>
<field name="backorder_id"/>
<field name="state"/>
<field name="picking_type_id" invisible="1"/>
</tree>
</field>
</record>
<record id="view_picking_form" model="ir.ui.view">
<field name="name">stock.picking.form</field>
<field name="model">stock.picking</field>
<field eval="12" name="priority"/>
<field name="arch" type="xml">
<form string="Transfer" version="7.0">
<header>
<button name="action_confirm" states="draft" string="Mark as Todo" type="object" class="oe_highlight" groups="base.group_user"/>
<button name="action_assign" states="confirmed" string="Check Availability" type="object" class="oe_highlight" groups="base.group_user"/>
<button name="force_assign" states="confirmed" string="Force Availability" type="object" class="oe_highlight" groups="base.group_user"/>
<button name="do_partial" states="assigned" string="Transfer Done" groups="stock.group_stock_user" type="object" class="oe_highlight"/>
<button name="do_split" string="Postpone Partial Transfer" groups="stock.group_stock_user" type="object" attrs="{'invisible': ['|',('pack_operation_exist', '=', False),('state','!=','assigned')]}"/>
<button name="do_rereserve" string="ReReserve from Operations" groups="stock.group_stock_user" type="object" attrs="{'invisible': ['|',('pack_operation_exist', '=', False),('state','!=','assigned')]}"/>
<button name="do_prepare_partial" string="Partial Transfer" groups="stock.group_stock_user" type="object" class="oe_highlight" attrs="{'invisible': ['|',('pack_operation_exist', '=', True),('state','!=','assigned')]}"/>
<button name="%(act_stock_return_picking)d" string="Reverse Transfer" states="done" type="action" groups="base.group_user"/>
<button name="action_cancel" states="assigned,confirmed,draft" string="Cancel Transfer" groups="base.group_user" type="object"/>
<field name="state" widget="statusbar" statusbar_visible="draft,assigned,done" statusbar_colors='{"shipping_except":"red","invoice_except":"red","waiting_date":"blue"}'/>
</header>
<sheet>
<h1>
<field name="name" class="oe_inline" attrs="{'invisible': [('name','=','/')]}" readonly="1"/>
</h1>
<group>
<group>
<field name="partner_id"/>
<field name="backorder_id" readonly="1" attrs="{'invisible': [('backorder_id','=',False)]}"/>
</group>
<group>
<field name="date"/>
<field name="min_date" readonly="1" attrs="{'invisible': [('min_date','=',False)]}"/>
<field name="origin" placeholder="e.g. PO0032" class="oe_inline"/>
</group>
</group>
<notebook>
<page string="Products">
<field name="pack_operation_exist" invisible="1"/>
<button name="action_pack" string="Create Package" type="object" class="oe_link" attrs="{'invisible': ['|',('pack_operation_exist', '=', False),('state', 'not in', ('draft','assigned','confirmed'))]}"/>
<field name="pack_operation_ids" attrs="{'invisible': [('pack_operation_exist', '=', False)]}">
<tree editable="top">
<field name="product_id"/>
<field name="product_uom_id" groups="product.group_uom"/>
<field name="lot_id" groups="stock.group_production_lot"/>
<field name="package_id" groups="stock.group_tracking_lot"/>
<field name="owner_id" groups="stock.group_tracking_owner"/>
<field name="product_qty" attrs="{'required': [('product_id', '!=', False)]}"/>
<field name="result_package_id" groups="stock.group_tracking_lot"/>
</tree>
</field>
<separator string="Expected Quantities"/>
<field name="move_lines" context="{'address_in_id': partner_id, 'form_view_ref':'view_move_picking_form', 'tree_view_ref':'view_move_picking_tree', 'default_picking_type_id': picking_type_id}"/>
<field name="note" placeholder="Add an internal note..." class="oe_inline"/>
</page>
<page string="Additional Info">
<group>
<group>
<field name="move_type"/>
<field name="picking_type_id"/>
</group>
<group>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="date_done" groups="base.group_no_one"/>
</group>
</group>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
<record id="view_picking_internal_search" model="ir.ui.view">
<field name="name">stock.picking.internal.search</field>
<field name="model">stock.picking</field>
<field name="arch" type="xml">
<search string="Internal Picking List">
<field name="name" string="Internal Picking List" filter_domain="['|',('name','ilike', self),('origin','ilike',self)]"/>
<filter icon="terp-check" name="available" string="Ready" domain="[('state','=','assigned')]" help="Assigned Internal Moves"/>
<filter icon="terp-camera_test" name="confirmed" string="Waiting" domain="[('state','=','confirmed')]" help="Confirmed Internal Moves"/>
<filter icon="terp-dialog-close" name="done" string="Done" domain="[('state','=','done')]" help="Pickings already processed"/>
<separator/>
<filter name="late" string="Late" domain="[('min_date','&lt;', time.strftime('%%Y-%%m-%%d'))]" help="Pickings that are late on scheduled time"/>
<separator/>
<filter name="backorder" string="Backorders" domain="[('backorder_id','&lt;&gt;', False)]" help="Remaining parts of picking partially processed"/>
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<field name="product_id"/>
<field name="picking_type_id"/>
<group expand="0" string="Group By...">
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'min_date'}"/>
<filter string="Origin" domain="[]" context="{'group_by':'origin'}"/>
<filter string="Picking Type" domain="[]" context="{'group_by':'picking_type_id'}"/>
</group>
</search>
</field>
</record>
<record id="action_picking_tree_waiting" model="ir.actions.act_window">
<field name="name">Waiting Transfers</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar</field>
<field name="domain"></field>
<field name="context">{
'search_default_picking_type_id': [active_id],
'default_picking_type_id': active_id,
'contact_display': 'partner_address',
'search_default_confirmed': 1,
}
</field>
<field name="search_view_id" ref="view_picking_internal_search"/>
</record>
<record id="action_picking_tree_late" model="ir.actions.act_window">
<field name="name">Late Transfers</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar</field>
<field name="domain"></field>
<field name="context">{
'search_default_picking_type_id': [active_id],
'default_picking_type_id': active_id,
'contact_display': 'partner_address',
'search_default_late': 1,
'search_default_assigned': 1,
'search_default_confirmed': 1,
'search_default_available': 1
}
</field>
<field name="search_view_id" ref="view_picking_internal_search"/>
</record>
<record id="action_picking_tree_backorder" model="ir.actions.act_window">
<field name="name">Backorders</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar</field>
<field name="domain"></field>
<field name="context">{
'search_default_picking_type_id': [active_id],
'default_picking_type_id': active_id,
'contact_display': 'partner_address',
'search_default_backorder': 1,
'search_default_assigned': 1,
'search_default_confirmed': 1,
'search_default_available': 1
}
</field>
<field name="search_view_id" ref="view_picking_internal_search"/>
</record>
<record id="action_picking_tree" model="ir.actions.act_window">
<field name="name">Transfers</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar</field>
<field name="domain"></field>
<field name="context">{
'search_default_picking_type_id': [active_id],
'default_picking_type_id': active_id,
'contact_display': 'partner_address',
}
</field>
<field name="search_view_id" ref="view_picking_internal_search"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create an internal move request.
</p><p>
Most operations are prepared automatically by OpenERP according
to your preconfigured logistics rules, but you can also record
manual stock movements.
</p>
</field>
</record>
<record id="view_move_tree" model="ir.ui.view">
<field name="name">stock.move.tree</field>
<field name="model">stock.move</field>
<field eval="8" name="priority"/>
<field name="arch" type="xml">
<tree colors="grey:state == 'cancel';red:(state not in ('cancel','done')) and date > current_date" string="Moves">
<field name="name"/>
<field name="picking_id" string="Reference"/>
<field name="origin"/>
<field name="picking_type_id"/>
<field name="create_date" invisible="1" groups="base.group_no_one"/>
<field name="product_id" on_change="onchange_product_id(product_id,location_id,location_dest_id, False)"/>
<field name="product_uom_qty" on_change="onchange_quantity(product_id, product_uom_qty, product_uom, product_uos)"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="product_uos" groups="product.group_uos"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="location_dest_id" groups="stock.group_locations"/>
<field name="date" groups="base.group_no_one"/>
<field name="date_expected"/>
<field name="state"/>
<button name="action_done" states="confirmed,assigned" string="Process" type="object" icon="gtk-go-forward" help="Done"/>
</tree>
</field>
</record>
<record id="view_move_picking_tree" model="ir.ui.view">
<field name="name">stock.move.tree</field>
<field name="model">stock.move</field>
<field eval="4" name="priority"/>
<field name="arch" type="xml">
<tree colors="grey:scrapped == True" string="Stock Moves">
<field name="product_id"/>
<field name="product_uom_qty" on_change="onchange_quantity(product_id, product_uom_qty, product_uom, product_uos)"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="product_uos" groups="product.group_uos"/>
<field name="location_id" groups="stock.group_locations" invisible="1"/>
<field name="picking_id" invisible="1" />
<field name="create_date" invisible="1" />
<field name="date_expected" invisible="1" />
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"
groups="base.group_user"/>
<field name="scrapped" invisible="1"/>
<field name="location_dest_id" groups="stock.group_locations"/>
<field name="state"/>
<field name="remaining_qty" attrs="{'invisible': [('state', '=', 'done')]}"/>
</tree>
</field>
</record>
<record id="view_move_form" model="ir.ui.view">
<field name="name">stock.move.form</field>
<field name="model">stock.move</field>
<field eval="1" name="priority"/>
<field name="arch" type="xml">
<form string="Stock Moves" version="7.0">
<header>
<button name="action_confirm" states="draft" string="Process Later" type="object" class="oe_highlight"/>
<button name="action_done" states="draft,assigned,confirmed" string="Process Entirely" type="object" class="oe_highlight"/>
<button name="force_assign" states="confirmed" string="Set Available" type="object" class="oe_highlight"/>
<button name="action_cancel" states="assigned,confirmed" string="Cancel Move" type="object"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"waiting":"blue","confirmed":"blue"}'/>
</header>
<sheet>
<group>
<group name="main_grp" string="Details">
<field name="product_id" on_change="onchange_product_id(product_id,location_id,location_dest_id, False)"/>
<field name="procure_method"/>
<field name="group_id"/>
<label for="product_uom_qty"/>
<div>
<field name="product_uom_qty"
on_change="onchange_quantity(product_id, product_uom_qty, product_uom, product_uos)"
class="oe_inline"/>
<field name="product_uom" groups="product.group_uom" class="oe_inline"/>
<button name="%(stock.move_scrap)d"
string="Scrap" type="action"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" colspan="1"/>
</div>
<label for="product_uos_qty" groups="product.group_uos"/>
<div groups="product.group_uos">
<field name="product_uos_qty"
on_change="onchange_uos_quantity(product_id, product_uos_qty, product_uos, product_uom)"
class="oe_inline"/>
<field name="product_uos" class="oe_inline"/>
</div>
<field name="name"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<group name="origin_grp" string="Origin">
<field name="origin"/>
<field name="picking_id" domain="[('picking_type_id','=',picking_type_id)]"/>
<field name="picking_type_id"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="create_date" groups="base.group_no_one"/>
</group>
<group name="destination_grp" string="Destination">
<field name="location_dest_id" groups="stock.group_locations"/>
<field name="partner_id" context="{'contact_display':'partner'}"
groups="stock.group_locations"/>
<field name="date_expected" on_change="onchange_date(date,date_expected)" attrs="{'invisible': [('state', '=', 'done')]}"/>
<field name="date" attrs="{'invisible': [('state', '!=', 'done')]}"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_move_picking_form" model="ir.ui.view">
<field name="name">stock.move.form</field>
<field name="model">stock.move</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<form string="Stock Moves" version="7.0">
<header>
<button name="force_assign" states="confirmed" string="Force Availability" type="object" groups="base.group_user"/>
<button name="action_confirm" states="draft" string="Confirm" type="object" groups="base.group_user"/>
<button name="cancel_assign" states="assigned" string="Cancel Availability" type="object" groups="base.group_user"/>
<field name="state" widget="statusbar" statusbar_visible="draft,assigned,done"/>
</header>
<group>
<group>
<field name="name" invisible="1"/>
<field name="product_id" on_change="onchange_product_id(product_id,location_id,location_dest_id, parent.partner_id)"/>
<field name="picking_type_id" invisible="1"/>
<field name="procure_method"/>
<label for="product_uom_qty"/>
<div>
<field name="product_uom_qty" on_change="onchange_quantity(product_id, product_uom_qty, product_uom, product_uos)" class="oe_inline"/>
<field name="product_uom" string="Unit Of Measure" groups="product.group_uom" class="oe_inline"/>
<button name="%(stock.move_scrap)d"
string="Scrap" type="action"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"
groups="base.group_user"/>
</div>
<label for="product_uos_qty" groups="product.group_uos"/>
<div groups="product.group_uos">
<field name="product_uos_qty" on_change="onchange_uos_quantity(product_id, product_uos_qty, product_uos, product_uom)" class="oe_inline"/>
<field name="product_uos" on_change="onchange_quantity(product_id, product_uom_qty, product_uom, product_uos)" class="oe_inline"/>
</div>
<field name="product_packaging" groups="product.group_stock_packaging" domain="[('product_id','=',product_id)]"/>
<field name="partner_id"/>
</group>
<group>
<field name="create_date" invisible="1"/>
<field name="date"/>
<field name="date_expected" on_change="onchange_date(date,date_expected)"/>
</group>
<group string="Locations" groups="stock.group_locations">
<field name="location_id" domain="[('usage','&lt;&gt;','view')]"/>
<field name="location_dest_id" domain="[('usage','=','internal')]" groups="stock.group_locations"/>
</group>
</group>
</form>
</field>
</record>
<record id="view_move_search" model="ir.ui.view">
<field name="name">stock.move.search</field>
<field name="model">stock.move</field>
<field eval="3" name="priority"/>
<field name="arch" type="xml">
<search string="Stock Moves">
<field name="origin" filter_domain="['|',('origin','ilike',self),('picking_id','ilike',self)]" string="Reference"/>
<field name="date" groups="base.group_no_one"/>
<filter icon="terp-camera_test" string="Ready" name="ready" domain="[('state','=','assigned')]" help="Stock moves that are Available (Ready to process)"/>
<filter icon="terp-stock" string="To Do" name="future" domain="[('state','in',('assigned','confirmed','waiting'))]" help="Stock moves that are Confirmed, Available or Waiting"/>
<filter icon="terp-dialog-close" string="Done" name="done" domain="[('state','=','done')]" help="Stock moves that have been processed"/>
<separator/>
<filter icon="terp-go-today" string="Today" domain="[('date','&lt;=',time.strftime('%%Y-%%m-%%d 23:59:59')),('date','&gt;=',time.strftime('%%Y-%%m-%%d 00:00:00'))]" help="Orders processed Today or planned for Today"/>
<field name="product_id"/>
<field name="name" string="Location" filter_domain="['|',('location_id','ilike',self),('location_dest_id','ilike',self)]"/>
<field name="partner_id" string="Partner" filter_domain="[('picking_id.partner_id','child_of',self)]"/>
<group expand="0" string="Group By...">
<filter string="Product" name="by_product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Picking" name="groupby_picking_id" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'picking_id'}"/>
<filter string="Source" name="groupby_location_id" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'location_id'}" groups="stock.group_locations"/>
<filter string="Destination" name="groupby_dest_location_id" icon="terp-gtk-jump-to-ltr" domain="[]" context="{'group_by':'location_dest_id'}" groups="stock.group_locations"/>
<filter icon="terp-stock_effects-object-colorize" string="Status" domain="[]" context="{'group_by':'state'}"/>
<filter string="Creation" name="groupby_create_date" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
<filter string="Scheduled" name="groupby_date" icon="terp-go-month" domain="[]" context="{'group_by':'date_expected'}"/>
</group>
</search>
</field>
</record>
<record id="action_move_form2" model="ir.actions.act_window">
<field name="name">Stock Moves</field>
<field name="res_model">stock.move</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_move_search"/>
<field name="context">{}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a stock movement.
</p><p>
This menu gives you the full traceability of inventory
operations on a specific product. You can filter on the product
to see all the past or future movements for the product.
</p>
</field>
</record>
<record model="ir.actions.act_window.view" id="action_stock_move_tree_all">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_move_tree"/>
<field name="act_window_id" ref="action_move_form2"/>
</record>
<record model="ir.actions.act_window.view" id="action_stock_move_form_all">
<field name="sequence" eval="3"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_move_form"/>
<field name="act_window_id" ref="action_move_form2"/>
</record>
<menuitem action="action_move_form2" id="menu_action_move_form2" parent="menu_traceability" sequence="3" groups="stock.group_locations"/>
<record id="action_stock_stock_ui" model="ir.actions.client">
<field name="name">Stock picking</field>
<field name="tag">stock.ui</field>
<field name="res_model">stock</field>
</record>
<!--
Reception Picking (By Stock Move)
From stock_partial_move_view
-->
<record id="view_move_tree_reception_picking" model="ir.ui.view">
<field name="name">stock.move.tree2</field>
<field name="model">stock.move</field>
<field name="priority" eval="6"/>
<field name="arch" type="xml">
<tree colors="grey:state == 'cancel'" string="Moves">
<field name="date" widget="date"/>
<field name="picking_id" string="Reference" invisible="1"/>
<field name="origin"/>
<field name="partner_id" string="Supplier"/>
<field name="product_id"/>
<field name="product_uom_qty"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="location_id" invisible="1"/>
<field name="location_dest_id" invisible="1"/>
<field name="create_date" invisible="1"/>
<field name="date_expected" invisible="1"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/>
<field name="state"/>
<button name="action_done" states="draft,assigned,confirmed"
icon="gtk-go-forward" type="object"
class="oe_highlight" help="Done"/>
</tree>
</field>
</record>
<!-- test -->
<record id="view_move_tree_reception_picking_board" model="ir.ui.view">
<field name="name">stock.move.tree3</field>
<field name="model">stock.move</field>
<field eval="6" name="priority"/>
<field name="arch" type="xml">
<tree string="Moves">
<field name="picking_id" string="Reference"/>
<field name="product_id"/>
<field name="product_uom_qty"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="date" groups="base.group_no_one"/>
</tree>
</field>
</record>
<record id="action_reception_picking_move" model="ir.actions.act_window">
<field name="name">Incoming Products</field>
<field name="res_model">stock.move</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain" eval="['|','&amp;',('picking_id','=',False),('location_dest_id.usage', 'in', ['customer','supplier']),'&amp;',('picking_id','!=',False),('picking_type_id','=',ref('picking_type_in'))]"/>
<field name="view_id" ref="view_move_tree_reception_picking"/>
<field name="context">{'product_receive': True, 'search_default_future': True}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to register a product reception.
</p><p>
Here you can receive individual products, no matter what
purchase order or picking order they come from. You will find
the list of all products you are waiting for. Once you receive
an order, you can filter based on the name of the supplier or
the purchase order reference. Then you can confirm all products
received using the buttons on the right of each line.
</p>
</field>
</record>
<record model="ir.actions.act_window.view" id="action_move_reception_picking_tree">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_move_tree_reception_picking"/>
<field name="act_window_id" ref="action_reception_picking_move"/>
</record>
<record model="ir.actions.act_window.view" id="action_move_reception_picking_form">
<field name="sequence" eval="2"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_move_form"/>
<field name="act_window_id" ref="action_reception_picking_move"/>
</record>
<!-- Stock incoterms -->
<record id="view_incoterms_tree" model="ir.ui.view">
<field name="name">stock.incoterms.tree</field>
<field name="model">stock.incoterms</field>
<field name="arch" type="xml">
<tree string="Incoterms">
<field name="code"/>
<field colspan="4" name="name"/>
</tree>
</field>
</record>
<record id="stock_incoterms_form" model="ir.ui.view">
<field name="name">stock.incoterms.form</field>
<field name="model">stock.incoterms</field>
<field name="arch" type="xml">
<form string="Incoterms" version="7.0">
<group>
<field name="name"/>
<field name="code"/>
<field name="active"/>
</group>
</form>
</field>
</record>
<record id="action_incoterms_tree" model="ir.actions.act_window">
<field name="name">Incoterms</field>
<field name="res_model">stock.incoterms</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem action="action_incoterms_tree" id="menu_action_incoterm_open" parent="menu_warehouse_config" sequence="1"/>
<act_window
context="{'location': active_id}"
domain="[('type','&lt;&gt;','service')]"
id="act_product_location_open"
name="Products"
res_model="product.product"
src_model="stock.location"/>
<record id="ir_act_product_location_open" model="ir.values">
<field name="key2">tree_but_open</field>
<field name="model">stock.location</field>
<field name="name">Products</field>
<field eval="'ir.actions.act_window,%d'%act_product_location_open" name="value"/>
</record>
<record id="ir_act_product_location_open" model="ir.values">
<field name="key2">tree_but_open</field>
<field name="model">stock.location</field>
<field name="name">Open Products</field>
<field eval="'ir.actions.act_window,%d'%action_view_stock_location_product" name="value"/>
</record>
<record id="action_out_picking_move" model="ir.actions.act_window">
<field name="name">Deliver Products</field>
<field name="res_model">stock.move</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain" eval="['|','&amp;',('picking_id','=',False),('location_dest_id.usage', 'in', ['customer','supplier']),'&amp;',('picking_id','!=',False),('picking_type_id','=',ref('picking_type_out'))]"/>
<field name="view_id" ref="view_move_tree_reception_picking"/>
<field name="context">{'search_default_future': True}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to register a product delivery.
</p>
<p>
You will find in this list all products you have to deliver to
your customers. You can process the deliveries directly from
this list using the buttons on the right of each line. You can
filter the products to deliver by customer, products or sale
order (using the Origin field).
</p>
</field>
</record>
<record model="ir.actions.act_window.view" id="action_move_out_picking_tree">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_move_tree_reception_picking"/>
<field name="act_window_id" ref="action_out_picking_move"/>
</record>
<record model="ir.actions.act_window.view" id="action_move_out_picking_form">
<field name="sequence" eval="2"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_move_form"/>
<field name="act_window_id" ref="action_out_picking_move"/>
</record>
<menuitem action="action_reception_picking_move" id="menu_action_pdct_in" parent="menu_stock_products_moves" sequence="1"/>
<menuitem action="action_out_picking_move" id="menu_action_pdct_out" parent="menu_stock_products_moves" sequence="2"/>
<record id="view_pickingtype_filter" model="ir.ui.view">
<field name="name">stock.picking.type.filter</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<search string="Picking Type">
<field name="name" string="Picking Type"/>
<field name="sequence_id"/>
<field name="warehouse_id"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_picking_type_tree">
<field name="name">Picking types</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<tree string="Picking Types">
<field name="complete_name"/>
<field name="sequence_id"/>
<field name="pack"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_picking_type_form">
<field name="name">Picking Types</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<form string="Picking Types" version="7.0">
<sheet>
<group>
<group>
<field name="name"/>
<field name="sequence_id"/>
<field name="warehouse_id"/>
<field name="pack"/>
</group>
<group>
<field name="code_id" on_change="onchange_picking_code(code_id)"/>
<field name="return_picking_type_id"/>
<field name="auto_force_assign"/>
<field name="delivery"/>
</group>
</group>
<separator string="Locations"/>
<group>
<field name="default_location_src_id" attrs="{'required': [('code_id', '=', 'internal')]}"/>
<field name="default_location_dest_id" attrs="{'required': [('code_id', 'in', ('internal', 'incoming'))]}"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="stock_picking_type_kanban" model="ir.ui.view">
<field name="name">stock.picking.type.kanban</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<kanban version="7.0" class="oe_background_grey">
<field name="complete_name"/>
<field name="color"/>
<field name="count_picking"/>
<field name="count_picking_waiting"/>
<field name="count_picking_late"/>
<field name="count_picking_backorders"/>
<field name="latest_picking_late"/>
<field name="latest_picking_waiting"/>
<field name="latest_picking_backorders"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_stock_picking_type">
<div class="oe_dropdown_toggle oe_dropdown_kanban" groups="stock.group_stock_manager">
<span class="oe_e">í</span>
<ul class="oe_dropdown_menu">
<li t-if="widget.view.is_action_enabled('edit')"><a type="edit">Settings</a></li>
<li t-if="widget.view.is_action_enabled('delete')"><a type="delete">Delete</a></li>
<li t-if="widget.view.is_action_enabled('edit')"><ul class="oe_kanban_colorpicker" data-field="color"/></li>
</ul>
</div>
<div class="oe_kanban_content">
<h4 class="oe_center"><field name="complete_name"/></h4>
<div class="oe_right">
<a name="%(action_stock_stock_ui)d" type="action">
<img src="/stock/static/src/img/scan.png"
alt="Click to launch the barcode interface"
class="oe_stock_scan_image" title="Click to launch the barcode interface"/>
</a>
</div>
<div class="oe_items_list oe_kanban_ellipsis">
<div>
<a name="%(action_picking_tree)d" type="action">
<field name="count_picking"/> Ready
</a>
<t t-if="record.count_picking.raw_value &gt; 0">
<a name="%(action_picking_tree)d" type="action">
<field name="weekly_picking" widget="stock_sparkline">Weekly Moves</field>
</a>
</t>
</div>
<div t-if="record.count_picking_waiting.raw_value &gt; 0">
<a name="%(action_picking_tree_waiting)d" type="action">
<field name="count_picking_waiting"/> Waiting
</a>
<a name="%(action_picking_tree_waiting)d" type="action" class="oe_sparkline_bar_link">
<field name="latest_picking_waiting" widget="stock_sparkline" options="{'type': 'tristate'}"/>
</a>
</div>
<div t-if="record.count_picking_late.raw_value &gt; 0">
<a name="%(action_picking_tree_late)d" type="action">
<field name="count_picking_late"/> Late
</a>
<a name="%(action_picking_tree_late)d" type="action" class="oe_sparkline_bar_link">
<field name="latest_picking_late" widget="stock_sparkline" options="{'type': 'tristate'}"/>
</a>
</div>
<div t-if="record.count_picking_backorders.raw_value &gt; 0">
<a name="%(action_picking_tree_backorder)d" type="action">
<field name="count_picking_backorders"/> Backorders
</a>
<a name="%(action_picking_tree_backorder)d" type="action" class="oe_sparkline_bar_link">
<field name="latest_picking_backorders" widget="stock_sparkline" options="{'type': 'tristate'}"/>
</a>
</div>
</div>
<div class="oe_center oe_stock_justgage">
<field name="rate_picking_late" widget="stock_gage" style="width:160px; height: 120px;">Late (%%)</field>
<field name="rate_picking_backorders" widget="stock_gage" style="width:160px; height: 120px;">Backorders (%%)</field>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id="action_picking_type_form" model="ir.actions.act_window">
<field name="name">Inventory Moves</field>
<field name="res_model">stock.picking.type</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,list,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a new picking type.
</p><p>
The picking type system allows you to assign each stock
operation a specific type which will alter its views accordingly.
On the picking type you could e.g. specify if packing is needed by default,
if it should show the customer.
</p>
</field>
</record>
<menuitem
action="action_picking_type_form"
id="menu_action_picking_type_form"
parent="menu_stock_warehouse_mgmt" sequence="1"/>
<!-- Order Point -->
<record id="view_warehouse_orderpoint_tree" model="ir.ui.view">
<field name="name">stock.warehouse.orderpoint.tree</field>
<field name="model">stock.warehouse.orderpoint</field>
<field name="arch" type="xml">
<tree string="Reordering Rules">
<field name="name"/>
<field name="warehouse_id" groups="stock.group_locations"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="product_id"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="product_min_qty"/>
<field name="product_max_qty"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="warehouse_orderpoint_search">
<field name="name">stock.warehouse.orderpoint.search</field>
<field name="model">stock.warehouse.orderpoint</field>
<field name="arch" type="xml">
<search string="Reordering Rules Search">
<field name="name" string="Reordering Rules"/>
<field name="warehouse_id"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="product_id"/>
<group expand="0" string="Group By...">
<filter string="Warehouse" icon="terp-go-home" domain="[]" context="{'group_by':'warehouse_id'}"/>
<filter string="Location" icon="terp-go-home" domain="[]" context="{'group_by':'location_id'}"/>
</group>
</search>
</field>
</record>
<record id="view_warehouse_orderpoint_form" model="ir.ui.view">
<field name="name">stock.warehouse.orderpoint.form</field>
<field name="model">stock.warehouse.orderpoint</field>
<field name="arch" type="xml">
<form string="Reordering Rules" version="7.0">
<sheet>
<group>
<group>
<field name="name" />
<field name="product_id" on_change="onchange_product_id(product_id)"/>
</group>
<group>
<field name="warehouse_id" on_change="onchange_warehouse_id(warehouse_id)" widget="selection" groups="stock.group_locations"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
</group>
<group>
<group string="Rules">
<field name="product_min_qty" />
<field name="product_max_qty" />
<field name="qty_multiple" string="Quantity Multiple"/>
</group>
<group string="Misc">
<field name="procurement_id" readonly="1"/>
<field name="active" />
</group>
</group>
<group string="Procurement Orders to Process">
<field name="procurement_draft_ids" nolabel="1"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_orderpoint_form" model="ir.actions.act_window">
<field name="name">Reordering Rules</field>
<field name="res_model">stock.warehouse.orderpoint</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_warehouse_orderpoint_tree"/>
<field name="search_view_id" ref="warehouse_orderpoint_search" />
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to add a reordering rule.
</p><p>You can define your minimum stock rules, so that OpenERP will automatically create draft manufacturing orders or request for quotations according to the stock level. Once the virtual stock of a product (= stock on hand minus all confirmed orders and reservations) is below the minimum quantity, OpenERP will generate a procurement request to increase the stock up to the maximum quantity.</p>
</field>
</record>
<act_window
context="{'search_default_warehouse_id': active_id, 'default_warehouse_id': active_id}"
id="act_stock_warehouse_2_stock_warehouse_orderpoint"
name="Reordering Rules"
res_model="stock.warehouse.orderpoint"
src_model="stock.warehouse"
groups="stock.group_stock_user"/>
<act_window
context="{'product_uom': locals().has_key('uom_id') and uom_id, 'default_procurement_id': active_id}"
id="act_procurement_2_stock_warehouse_orderpoint"
name="Reordering Rules"
res_model="stock.warehouse.orderpoint"
src_model="procurement.order"
groups="stock.group_stock_user"/>
<!-- Procurements -->
<record id="view_procurement_form_stock_inherit" model="ir.ui.view">
<field name="name">procurement.order.form.stock.inherit</field>
<field name="model">procurement.order</field>
<field name="inherit_id" ref="procurement.procurement_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='origin']" position="after">
<field name="location_id"/>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="view_procurement_rule_tree">
<field name="name">stock.procurement.tree</field>
<field name="model">procurement.rule</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<tree string="Procurement Rules">
<field name="location_src_id"/>
<field name="location_id"/>
<field name="action"/>
<field name="picking_type_id" attrs="{'required': [('action', '!=', 'manufacture')]}"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_procurement_rule_form">
<field name="name">stock.procurement.form</field>
<field name="model">procurement.rule</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<form string="Procurement Rules" version="7.0">
<sheet>
<div class="oe_title">
<h1>
<label string="Name"/>
<field name="name" class="oe_inline"/>
</h1>
</div>
<group>
<group>
<field name="location_src_id"/>
<field name="location_id"/>
<field name="route_id"/>
<field name="route_sequence"/>
<field name="sequence"/>
</group>
<group>
<field name="action"/>
<field name="picking_type_id" attrs="{'required': [('action', '!=', 'manufacture')]}"/>
<field name="procure_method" attrs="{'invisible': [('action', '!=', 'move')]}"/>
<field name="group_id"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="procrules">
<field name="context">{}</field>
<field name="name">Global procurement rules</field>
<field name="res_model">procurement.rule</field>
</record>
<record id="quant_search_view" model="ir.ui.view">
<field name="name">stock.quant.search</field>
<field name="model">stock.quant</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<search string="Quants">
<field name="product_id"/>
<field name="location_id"/>
<field name="package_id"/>
<field name="lot_id"/>
<group expand='0' string='Filters'>
<filter string="Internal Locations" domain="[('location_id.usage','=', 'internal')]"/>
</group>
<group expand='0' string='Group by...'>
<filter name="productgroup" string='Product' context="{'group_by' : 'product_id'}"/>
<filter string='Lot' context="{'group_by' : 'lot_id'}"/>
<filter name="locationgroup" string='Location' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'location_id'}"/>
<filter string='Packaging' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'package_id'}"/>
<filter string='Packaging Type' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'packaging_type_id'}"/>
<filter name="partnergroup" string='Partner' domain="[]" context="{'group_by': 'partner_id'}"/>
<filter string='Company' icon="terp-go-home" domain="[]" context="{'group_by' : 'company_id'}" groups="base.group_multi_company"/>
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="quantsact">
<field name="name">Quants</field>
<field name="context">{'search_default_productgroup':'1'}</field>
<field name="res_model">stock.quant</field>
</record>
<record model="ir.ui.view" id="view_stock_quant_form">
<field name="name">stock.quant.form</field>
<field name="model">stock.quant</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<form string="Quants">
<field name="product_id"/>
<field name="qty"/>
<field name="lot_id"/>
<field name="package_id"/>
<field name="location_id"/>
<field name="in_date"/>
<field name="reservation_id"/>
<field name="propagated_from_id"/>
<field name="history_ids"/>
<field name="owner_id"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_stock_quant_tree">
<field name="name">stock.quant.tree</field>
<field name="model">stock.quant</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<tree string="Quants">
<field name="product_id"/>
<field name="qty"/>
<field name="location_id"/>
<field name="lot_id"/>
<field name="package_id"/>
<field name="packaging_type_id" invisible="1"/>
<field name="in_date"/>
<field name="reservation_id" invisible='1'/>
<field name="propagated_from_id" invisible='1'/>
</tree>
</field>
</record>
<!-- Procurements are located in Warehouse menu hierarchy, MRP users should come to Stock application to use it. -->
<menuitem id="menu_stock_sched" name="Schedulers" parent="stock.menu_stock_root" sequence="4" groups="stock.group_stock_manager"/>
<menuitem action="action_procurement_compute" id="menu_procurement_compute" parent="menu_stock_sched" groups="base.group_no_one"/>
<menuitem action="procurement.action_compute_schedulers" id="menu_stock_proc_schedulers" parent="menu_stock_sched" sequence="20" groups="stock.group_stock_manager"/>
<menuitem action="procurement.procurement_exceptions" id="menu_stock_procurement_action" parent="menu_stock_sched" sequence="50" groups="stock.group_stock_manager"/>
<menuitem id="menu_stock_procurement" name="Automatic Procurements" parent="stock.menu_stock_configuration" sequence="5"/>
<menuitem action="action_orderpoint_form" id="menu_stock_order_points" parent="stock.menu_stock_configuration" sequence="10"/>
<menuitem id="menu_quants" name="Quants" parent="stock.menu_stock_configuration" action="quantsact" groups="base.group_no_one"/>
<menuitem id="menu_procurement_rules" name="Procurement Rules" parent="stock.menu_stock_configuration" action="procrules" groups="base.group_no_one"/>
<record model="ir.actions.act_window" id="product_open_orderpoint">
<field name="context">{'default_product_id': active_id, 'search_default_product_id': active_id}</field>
<field name="name">Orderpoints</field>
<field name="res_model">stock.warehouse.orderpoint</field>
</record>
<!-->
<record model="ir.ui.view" id="product_template_form_view_procurement">
<field name="name">product.template.procurement</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='standard_price']" position="after" >
<group name="procurement_help" col="1" groups="base.group_user">
<field name="route_ids" widget="many2many_tags"/>
</group>
</xpath>
</field>
</record>-->
<record id="product_search_form_view_procurment" model="ir.ui.view">
<field name="name">product.search.procurment.form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_search_form_view"/>
<field name="arch" type="xml">
<filter name="consumable" position="before">
<filter string="Products" icon="terp-accessories-archiver" domain="[('type','=','product')]" help="Stockable products"/>
</filter>
</field>
</record>
<record id="view_normal_procurement_locations_form" model="ir.ui.view">
<field name="name">product.normal.procurement.locations.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<xpath expr="//group[@name='general']" position="after" >
<newline/>
<group>
<field name="route_ids" widget="many2many_tags"/>
</group>
<newline/>
</xpath>
<xpath expr="//div[@name='buttons']" position="inside">
<button string="Inventory" name="%(action_product_location_tree)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_locations"/>
<button string="Moves" name= "%(act_product_stock_move_open)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_stock_user"/>
<button string="Orderpoints" name="%(product_open_orderpoint)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}"/>
</xpath>
<group name="procurement_uom" position="before">
<group name="delay" string="Delays">
<label for="produce_delay" attrs="{'invisible':[('type','=','service')]}"/>
<div attrs="{'invisible':[('type','=','service')]}">
<field name="produce_delay" class="oe_inline"/> days
</div>
<field name="active"/>
</group>
</group>
<xpath expr="//group[@string='Sale Conditions']" position="inside">
<label for="sale_delay"/>
<div>
<field name="sale_delay" class="oe_inline"/> days
</div>
</xpath>
<group name="status" position="after" version="7.0">
<group name="store" string="Storage Location" attrs="{'invisible':[('type','=','service')]}">
<field name="loc_rack"/>
<field name="loc_row"/>
<field name="loc_case"/>
</group>
</group>
<group name="Weights" position="before">
<group name="store" groups="stock.group_locations" string="Counter-Part Locations Properties">
<field name="property_stock_procurement" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','procurement')]"/>
<field name="property_stock_production" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','production')]"/>
<field name="property_stock_inventory" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','inventory')]"/>
</group>
</group>
</field>
</record>
<record model="ir.ui.view" id="product_form_view_procurement_button">
<field name="name">product.product.procurement</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="view_normal_procurement_locations_form"/>
<field name="arch" type="xml">
<group name="status" position="before" version="7.0">
<group string="Stock and Expected Variations" attrs="{'invisible': [('type', '=', 'service')]}" groups="base.group_user">
<label for="qty_available"/>
<div>
<field name="qty_available" class="oe_inline"/>
<button name="%(action_view_change_product_quantity)d" string="⇒ Update"
type="action"
class="oe_link"/>
</div>
<label for="incoming_qty"/>
<div>
<field name="incoming_qty" class="oe_inline"/>
<button string="⇒ Request Procurement" name="%(act_make_procurement)d" type="action" class="oe_link"/>
</div>
<field name="outgoing_qty" class="oe_inline"/>
<field name="virtual_available" class="oe_inline"/>
</group>
<group name="lot" groups="stock.group_tracking_lot,stock.group_production_lot" string="Lots">
<field name="track_production" groups="stock.group_production_lot"/>
<field name="track_incoming" groups="stock.group_tracking_lot"/>
<field name="track_outgoing" groups="stock.group_tracking_lot"/>
</group>
</group>
</field>
</record>
<record model="ir.ui.view" id="view_quant_package_form">
<field name="name">stock.quant.package.form</field>
<field name="model">stock.quant.package</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<form string="Package" version="7.0">
<sheet>
<div class="oe_right oe_button_box">
<button name="unpack" string="Unpack" type="object"/>
</div>
<div class="oe_title">
<h1>
<label string="Package Reference" class="oe_edit_only"/>
<field name="name" class="oe_inline"/>
</h1>
</div>
<group>
<group>
<field name="packaging_id"/>
<field name='company_id' groups="base.group_multi_company"/>
<field name='owner_id' groups="stock.group_tracking_owner"/>
</group>
<group>
<field name="location_id"/>
<field name="parent_id"/>
</group>
</group>
<notebook>
<page string="Content">
<separator string="Bulk Content" />
<field name="quant_ids">
<tree string="Quants">
<field name="product_id"/>
<field name="qty"/>
<field name="location_id"/>
<field name="in_date"/>
</tree>
</field>
<div class="oe_right oe_button_box" style="margin-top: 10px">
<button name="get_content_package" type="object" string="View Contained Packages content" icon="gtk-execute" attrs="{'invisible': [('children_ids','=',[])]}"/>
</div>
<separator string="Contained Packages"/>
<field name="children_ids">
<tree string="Contained Packages">
<field name="complete_name"/>
<field name="packaging_id"/>
<field name="location_id"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_quant_package_tree">
<field name="name">stock.quant.package.tree</field>
<field name="model">stock.quant.package</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<tree string="Package">
<field name="complete_name"/>
<field name="packaging_id"/>
<field name="location_id"/>
<field name="company_id"/>
</tree>
</field>
</record>
<record id="quant_package_search_view" model="ir.ui.view">
<field name="name">stock.quant.package.search</field>
<field name="model">stock.quant.package</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<search string="Package">
<field name="name" string="Package Name"/>
<field name="location_id"/>
<field name="packaging_id"/>
<group expand='0' string='Group by...'>
<filter string='Location' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'location_id'}"/>
<filter string='Packaging' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'packaging_id'}"/>
<filter string='Company' icon="terp-go-home" domain="[]" context="{'group_by' : 'company_id'}" groups="base.group_multi_company"/>
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_package_view">
<field name="context">{}</field>
<field name="name">Packages</field>
<field name="res_model">stock.quant.package</field>
</record>
<menuitem id="menu_package" name="Packages" parent="menu_stock_product" action="action_package_view"/>
<!--Routes-->
<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" version="7.0">
<sheet>
<div class="oe_title">
<h1>
<label string="Route name"/>
</h1>
<h2>
<field name="name" class="oe_inline"/>
</h2>
</div>
<field name="sequence" groups="base.group_no_one"/>
<group string="Pull Rules" colspan="4" >
<field name="pull_ids" colspan="4" nolabel="1"/>
</group>
</sheet>
</form>
</field>
</record>
</data>
</openerp>