1 <?xml version="1.0" encoding="utf-8"?>
5 <record id="product_search_form_view_stock" model="ir.ui.view">
6 <field name="name">product.search.stock.form</field>
7 <field name="model">product.product</field>
8 <field name="inherit_id" ref="product.product_search_form_view"/>
9 <field name="arch" type="xml">
10 <field name="pricelist_id" position="before">
11 <field name="location_id" context="{'location': self}"/>
12 <field name="warehouse_id" context="{'warehouse': self}"/>
17 <record id="view_category_property_form" model="ir.ui.view">
18 <field name="name">product.category.stock.property.form.inherit</field>
19 <field name="model">product.category</field>
20 <field name="inherit_id" ref="account.view_category_property_form"/>
21 <field name="arch" type="xml">
23 <group name="account_property" position="after">
24 <group name="account_stock_property" string="Account Stock Properties" colspan="2">
25 <field name="property_stock_account_input_categ" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
26 <field name="property_stock_account_output_categ" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
27 <field name="property_stock_valuation_account_id" domain="[('type','<>','view'), ('type','<>','consolidation')]"/>
28 <field name="property_stock_journal"/>
35 <record id="view_template_property_form" model="ir.ui.view">
36 <field name="name">product.template.stock.property.form.inherit</field>
37 <field name="model">product.template</field>
38 <field name="inherit_id" ref="product.product_template_form_view"/>
39 <field name="arch" type="xml">
40 <group name="delay" position="inside">
41 <field name="sale_delay" attrs="{'readonly':[('sale_ok','=',False)]}"/>
43 <group name="delay" position="after">
44 <group name="store" string="Storage Location">
45 <field name="loc_rack"/>
46 <field name="loc_row"/>
47 <field name="loc_case"/>
50 <page position="after" string="Information">
51 <page string="Properties">
52 <group string="Counter-Part Locations Properties" groups="stock.group_locations">
53 <field name="property_stock_procurement" domain="[('usage','=','procurement')]"/>
54 <field name="property_stock_production" domain="[('usage','=','production')]"/>
55 <field name="property_stock_inventory" domain="[('usage','=','inventory')]"/>
57 <group string="Accounting Entries">
58 <field name="property_stock_account_input" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
59 <field name="property_stock_account_output" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
63 <field name="product_manager" position="attributes" version="7.0">
64 <attribute name="context">{'default_groups_ref': ['base.group_user', 'base.group_sale_manager', 'stock.group_stock_manager']}</attribute>
69 <record id="view_normal_procurement_locations_form" model="ir.ui.view">
70 <field name="name">product.normal.procurement.locations.inherit</field>
71 <field name="model">product.product</field>
72 <field name="inherit_id" ref="product.product_normal_form_view"/>
73 <field name="arch" type="xml">
74 <xpath expr="//div[@name='buttons']" position="inside">
75 <button string="Inventory" name="%(action_product_location_tree)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_locations"/>
76 <button string="Moves" name= "%(act_product_stock_move_open)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_stock_user"/>
78 <group name="procurement_uom" position="before">
79 <group name="delay" string="Delays">
80 <label for="produce_delay" attrs="{'invisible':[('type','=','service')]}"/>
81 <div attrs="{'invisible':[('type','=','service')]}">
82 <field name="produce_delay" class="oe_inline"/> days
84 <field name="active"/>
87 <xpath expr="//group[@string='Sale Conditions']" position="inside">
88 <label for="sale_delay"/>
90 <field name="sale_delay" class="oe_inline"/> days
93 <group name="status" position="before" version="7.0">
94 <group string="Stock and Expected Variations" attrs="{'invisible': [('type', '=', 'service')]}" groups="base.group_user">
95 <label for="qty_available"/>
97 <field name="qty_available" class="oe_inline"/>
98 <button name="%(action_view_change_product_quantity)d" string="⇒ Update"
102 <label for="incoming_qty"/>
104 <field name="incoming_qty" class="oe_inline"/>
106 <field name="outgoing_qty" class="oe_inline"/>
107 <field name="virtual_available" class="oe_inline"/>
109 <group name="lot" groups="stock.group_tracking_lot,stock.group_production_lot" string="Lots">
110 <field name="track_production" groups="stock.group_production_lot"/>
111 <field name="track_incoming" groups="stock.group_tracking_lot"/>
112 <field name="track_outgoing" groups="stock.group_tracking_lot"/>
115 <group name="status" position="after" version="7.0">
116 <group name="store" string="Storage Location" attrs="{'invisible':[('type','=','service')]}">
117 <field name="loc_rack"/>
118 <field name="loc_row"/>
119 <field name="loc_case"/>
122 <group name="Weights" position="after">
123 <group name="store" groups="stock.group_locations" string="Counter-Part Locations Properties">
124 <field name="property_stock_procurement" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','procurement')]"/>
125 <field name="property_stock_production" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','production')]"/>
126 <field name="property_stock_inventory" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','inventory')]"/>
129 <field name="product_manager" position="attributes" version="7.0">
130 <attribute name="context">{'default_groups_ref': ['base.group_user', 'base.group_sale_manager', 'stock.group_stock_manager']}</attribute>
135 <record id="view_product_standard_price_form" model="ir.ui.view">
136 <field name="name">product.product.standard.price.form.inherit</field>
137 <field name="model">product.product</field>
138 <field name="inherit_id" ref="product.product_normal_form_view"/>
139 <field name="arch" type="xml">
140 <field name="standard_price" position="replace" version="7.0">
141 <label string="Cost Price" for="standard_price" align="1.0" groups="base.group_user"/>
142 <div groups="base.group_user">
143 <field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}" nolabel="1"/>
144 <button name="%(action_view_change_standard_price)d" string="- update"
145 type="action" attrs="{'invisible':[('cost_method','<>','average')]}"
146 class="oe_link" groups="product.group_costing_method"/>
152 <record id="view_normal_property_acc_form" model="ir.ui.view">
153 <field name="name">product.normal.stock.acc.property.form.inherit</field>
154 <field name="model">product.product</field>
155 <field name="inherit_id" ref="product.product_normal_form_view"/>
156 <field name="priority">26</field>
157 <field name="arch" type="xml">
158 <xpath expr="//group[@name='properties']" position="before">
159 <group groups="stock.group_inventory_valuation">
160 <separator string="Inventory Valuation" colspan="4"/>
161 <group colspan="2" col="2">
162 <field name="valuation" attrs="{'readonly':[('type', '=', 'service')]}"/>
164 <group colspan="2" col="2">
165 <field name="property_stock_account_input" attrs="{'invisible':[('valuation', '!=', 'real_time')]}"
166 domain="[('type','<>','view'),('type','<>','consolidation')]"/>
167 <field name="property_stock_account_output" attrs="{'invisible':[('valuation', '!=', 'real_time')]}"
168 domain="[('type','<>','view'),('type','<>','consolidation')]"/>
177 <record id="action_receive_move" model="ir.actions.act_window">
178 <field name="name">Receptions</field>
179 <field name="res_model">stock.move</field>
180 <field name="type">ir.actions.act_window</field>
181 <field name="view_type">form</field>
182 <field name="view_mode">tree,form</field>
183 <field name="domain">[('picking_id.type','=','in')]</field>
184 <field name="view_id" ref="view_move_tree_reception_picking"/>
185 <field name="context" eval="'{\'search_default_product_id\': [active_id]}'"/>
186 <field name="help" type="html">
187 <p class="oe_view_nocontent_create">
188 Click to register a reception for this product.
190 Here you will find the history of all receptions related to
191 this product, as well as all future receptions you are waiting
197 <record id="action_deliver_move" model="ir.actions.act_window">
198 <field name="name">Deliveries</field>
199 <field name="res_model">stock.move</field>
200 <field name="type">ir.actions.act_window</field>
201 <field name="view_type">form</field>
202 <field name="view_mode">tree,form</field>
203 <field name="domain">[('picking_id.type','=','out')]</field>
204 <field name="view_id" ref="view_move_tree_reception_picking"/>
205 <field name="context" eval="'{\'search_default_product_id\': [active_id]}'"/>
206 <field name="help" type="html">
207 <p class="oe_view_nocontent_create">
208 Click to add a delivery order for this product.
210 Here you will find the history of all past deliveries related to
211 this product, as well as all the products you must deliver to
217 <record model="ir.ui.view" id="product_kanban_stock_view">
218 <field name="name">Product Kanban Stock</field>
219 <field name="model">product.product</field>
220 <field name="inherit_id" ref="product.product_kanban_view"/>
221 <field name="arch" type="xml">
222 <field name="list_price" position="after">
223 <field name="reception_count"/>
224 <field name="delivery_count"/>
226 <xpath expr="//div[@name='tags']" position="inside">
227 <a name="%(action_receive_move)d" type="action" t-if="record.reception_count.raw_value>0">
228 <t t-esc="record.reception_count.value"/> Receptions
230 <a name="%(action_deliver_move)d" type="action" t-if="record.delivery_count.raw_value>0">
231 <t t-esc="record.delivery_count.value"/> Deliveries
234 <ul position="inside">
235 <li t-if="record.type.raw_value != 'service'">On hand: <field name="qty_available"/> <field name="uom_id"/></li>
236 <li t-if="record.type.raw_value != 'service'">Forecasted: <field name="virtual_available"/> <field name="uom_id"/></li>