Project management improvements
[odoo/odoo.git] / addons / sale / sale_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4 <!--        <menuitem icon="terp-sale" id="menu_sale_root" name="Sales Management"-->
5 <!--            groups="group_sale_user"/>-->
6                 <menuitem id="base.menu_sales" name="Sales" parent="base.menu_base_partner" sequence="1"/>
7
8                 <menuitem id="menu_product" name="Products" parent="base.menu_base_partner" sequence="4"/>
9                 <menuitem action="product.product_normal_action" id="product.menu_products" parent="menu_product" sequence="1"/>
10
11         <record id="view_shop_form" model="ir.ui.view">
12             <field name="name">sale.shop</field>
13             <field name="model">sale.shop</field>
14             <field name="type">form</field>
15             <field name="arch" type="xml">
16                 <form string="Sale Shop">
17                     <field name="name" select="1"/>
18                     <field name="warehouse_id" required="1" select="1" widget="selection"/>
19                     <separator colspan="4" string="Accounting"/>
20                     <field name="payment_default_id"/>
21                     <field domain="[('type','=','sale')]" name="pricelist_id" select="1"/>
22                     <field name="project_id" select="1"/>
23                 </form>
24             </field>
25         </record>
26         <record id="view_shop_tree" model="ir.ui.view">
27             <field name="name">sale.shop</field>
28             <field name="model">sale.shop</field>
29             <field name="type">tree</field>
30             <field name="arch" type="xml">
31                 <tree string="Sale Shop">
32                     <field name="name"/>
33                     <field name="pricelist_id"/>
34                     <field name="project_id"/>
35                     <field name="warehouse_id"/>
36                 </tree>
37             </field>
38         </record>
39
40         <record id="action_shop_form" model="ir.actions.act_window">
41             <field name="name">Shop</field>
42             <field name="type">ir.actions.act_window</field>
43             <field name="res_model">sale.shop</field>
44             <field name="view_type">form</field>
45             <field name="view_mode">tree,form</field>
46             <field name="view_id" ref="view_shop_tree"/>
47         </record>
48         <menuitem action="action_shop_form" id="menu_action_shop_form" parent="base.menu_base_config" sequence="60"/>
49
50         <record id="view_sale_order_calendar" model="ir.ui.view">
51             <field name="name">sale.order.calendar</field>
52             <field name="model">sale.order</field>
53             <field name="type">calendar</field>
54             <field name="arch" type="xml">
55                 <calendar string="Sales orders" color="state" date_start="date_order">
56                     <field name="partner_id"/>
57                     <field name="amount_total"/>
58                 </calendar>
59             </field>
60         </record>
61         <record model="ir.ui.view" id="view_sale_order_graph">
62             <field name="name">sale.order.graph</field>
63             <field name="model">sale.order</field>
64             <field name="type">graph</field>
65             <field name="arch" type="xml">
66                 <graph string="Sales orders" type="bar">
67                     <field name="partner_id"/>
68                     <field name="amount_total" operator="+"/>
69                 </graph>
70             </field>
71         </record>
72
73         <record id="view_order_tree" model="ir.ui.view">
74             <field name="name">sale.order.tree</field>
75             <field name="model">sale.order</field>
76             <field name="type">tree</field>
77             <field name="arch" type="xml">
78                 <tree string="Sales orders">
79                     <field name="date_order"/>
80                     <field name="name" string="Reference"/>
81                     <field name="partner_id"/>
82                     <field name="partner_shipping_id"/>
83                     <field name="picked_rate" widget="progressbar"/>
84                     <field name="invoiced_rate" widget="progressbar"/>
85                     <field name="amount_untaxed"/>
86                     <field name="state"/>
87                 </tree>
88             </field>
89         </record>
90
91         <record id="view_order_form" model="ir.ui.view">
92             <field name="name">sale.order.form</field>
93             <field name="model">sale.order</field>
94             <field name="type">form</field>
95             <field name="arch" type="xml">
96                 <form string="Sales order">
97                     <group col="6" colspan="4">
98                         <field name="name" select="1"/>
99                         <field name="client_order_ref" select="2"/>
100                         <field name="shipped" select="2"/>
101                         <field name="shop_id" on_change="onchange_shop_id(shop_id)" select="2" widget="selection"/>
102                         <field name="date_order" select="1"/>
103                         <field name="invoiced" select="2"/>
104                     </group>
105                     <notebook colspan="4">
106                         <page string="Sale Order">
107                             <field name="partner_id" on_change="onchange_partner_id(partner_id)" required="1" select="1"/>
108                             <field domain="[('partner_id','=',partner_id)]" name="partner_order_id"/>
109                             <field domain="[('partner_id','=',partner_id)]" name="partner_invoice_id"/>
110                             <field domain="[('partner_id','=',partner_id)]" name="partner_shipping_id"/>
111                             <field domain="[('type','=','sale')]" name="pricelist_id"/>
112                             <field name="project_id" select="2" context="{'partner_id':partner_id, 'contact_id':partner_order_id, 'pricelist_id':pricelist_id, 'default_name':name}"/>
113                             <newline/>
114                             <field colspan="4" mode="tree,form,graph" name="order_line" nolabel="1" widget="one2many_list">
115                                 <form string="Sale Order Lines">
116                                     <notebook>
117                                         <page string="Order Line">
118                                             <separator colspan="4" string="Automatic Declaration"/>
119                                             <field colspan="4"
120                                                 context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
121                                                 name="product_id"
122                                                 on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], True, parent.date_order, product_packaging, parent.fiscal_position)"
123                                                 select="1"/>
124                                             <field
125                                                 context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
126                                                 name="product_uom_qty"
127                                                 on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position, True)"
128                                                 select="1"/>
129                                             <field name="product_uom"
130                                                 on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order)"/>
131                                             <field
132                                                 name="product_packaging"
133                                                 context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
134                                                 on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position)"
135                                                 domain="[('product_id','=',product_id)]"
136                                                 groups="base.group_extended"/>
137
138                                             <field name="company_id" groups="base.group_multi_company" widget="selection"/>
139                                             <separator colspan="4" string="Manual Description"/>
140                                             <field colspan="4" name="name" select="2"/>
141                                             <field name="price_unit" select="2"/>
142                                             <field name="discount"/>
143                                             <field name="type"/>
144                                             <field name="delay" select="2"/>
145                                             <newline/>
146                                             <field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','&lt;&gt;','purchase')]"/>
147                                             <separator colspan="4" string="States"/>
148                                             <field name="state" select="2"/>
149                                             <group col="3" colspan="2">
150                                                 <field name="invoiced" select="2"/>
151                                                 <button colspan="1" name="%(wizard_sale_order_line_invoice)d" states="confirmed" string="Make Invoice" type="action" icon="gtk-print"/>
152                                             </group>
153                                         </page>
154                                         <page groups="base.group_extended" string="Extra Info">
155                                             <field groups="product.group_uos" name="product_uos_qty" on_change="uos_change(product_uos, product_uos_qty, product_id)"/>
156                                             <field groups="product.group_uos" name="product_uos"/>
157                                             <field name="th_weight"/>
158                                             <field name="address_allotment_id" select="2"/>
159                                             <separator colspan="4" string="Properties"/>
160                                             <field colspan="4" name="property_ids" nolabel="1"/>
161                                         </page>
162                                         <page string="Notes">
163                                             <field colspan="4" name="notes" nolabel="1"/>
164                                         </page>
165                                         <page string="History" groups="base.group_extended">
166                                             <separator colspan="4" string="Invoice Lines"/>
167                                             <field colspan="4" name="invoice_lines" nolabel="1"/>
168                                             <separator colspan="4" string="Stock Moves"/>
169                                             <field colspan="4" name="move_ids" nolabel="1" widget="many2many"/>
170                                         </page>
171                                     </notebook>
172                                 </form>
173                                 <tree string="Sales order lines">
174                                     <field colspan="4" name="name"/>
175                                     <field name="product_uom_qty" string="Qty"/>
176                                     <field name="product_uom" string="UoM"/>
177                                     <field name="discount"/>
178                                     <field name="price_unit"/>
179                                     <field name="price_net"/>
180                                     <field name="price_subtotal"/>
181                                 </tree>
182                             </field>
183                             <newline/>
184                             <group col="7" colspan="4">
185                                 <field name="amount_untaxed" sum="Untaxed amount"/>
186                                 <field name="amount_tax"/>
187                                 <field name="amount_total" sum="Total amount"/>
188                                 <button name="button_dummy" states="draft" string="Compute" type="object" icon="gtk-execute"/>
189                             </group>
190                             <group col="13" colspan="4">
191                                 <field name="state" select="2"/>
192                                 <button name="order_confirm" states="draft" string="Confirm Order" icon="gtk-apply"/>
193                                 <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" icon="gtk-print"/>
194                                 <button name="invoice_corrected" states="invoice_except" string="Invoice Corrected" icon="gtk-apply"/>
195                                 <button name="ship_recreate" states="shipping_except" string="Recreate Requisition" icon="gtk-ok"/>
196                                 <button name="ship_corrected" states="shipping_except" string="Requisition Corrected" icon="gtk-apply"/>
197                                 <button name="manual_invoice" states="manual" string="Create Invoice" icon="gtk-print"/>
198                                 <button name="ship_cancel" states="shipping_except" string="Cancel Order" icon="gtk-cancel"/>
199                                 <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="gtk-convert"/>
200                                 <button name="action_cancel" states="manual,progress" string="Cancel Order" type="object" icon="gtk-cancel"/>
201                                 <button name="cancel" states="draft" string="Cancel Order" icon="gtk-cancel"/>
202                                 <button name="invoice_cancel" states="invoice_except" string="Cancel Order" icon="gtk-cancel"/>
203                             </group>
204                         </page>
205                         <page string="Other data">
206                             <field groups="base.group_extended" name="incoterm"/>
207                             <field groups="base.group_extended" name="picking_policy" required="True"/>
208                             <field name="user_id"/>
209                             <field name="order_policy" on_change="shipping_policy_change(order_policy)"/>
210                             <field groups="base.group_extended" name="origin"/>
211                             <field groups="base.group_extended" name="invoice_quantity" attrs="{'readonly':[('order_policy','=','prepaid'),('order_policy','=','picking')]}"/>
212                             <field name="payment_term" widget="selection"/>
213                             <field name="fiscal_position" groups="base.group_extended" widget="selection"/>
214                             <field name="company_id" groups="base.group_multi_company" widget="selection"/>
215                             <separator colspan="4" string="Notes"/>
216                             <field colspan="4" name="note" nolabel="1"/>
217                         </page>
218                         <page string="History">
219                             <separator colspan="4" string="Related invoices"/>
220                             <field colspan="4" name="invoice_ids" nolabel="1"/>
221                             <field colspan="4" name="picking_ids" nolabel="1"/>
222                         </page>
223                     </notebook>
224                 </form>
225             </field>
226         </record>
227
228         <record id="view_sales_order_filter" model="ir.ui.view">
229             <field name="name">sale.order.list.select</field>
230             <field name="model">sale.order</field>
231             <field name="type">search</field>
232             <field name="arch" type="xml">
233                 <search string="Search Sales Order">
234                     <group col='8' colspan='4'>
235                         <filter icon="terp-sale" string="Quotation" domain="[('state','=','draft')]"/>
236                         <filter icon="terp-sale" string="Running" domain="[('state','in',('manual','progress'))]"/>
237                         <separator orientation="vertical"/>
238                         <field name="name" select="1"/>
239                         <field name="partner_id" select="1"/>
240                         <field name="user_id" select="1" widget="selection">
241                             <filter icon="terp-sale" domain="[('user_id','=',uid)]" help="My Sale Orders"/>
242                             <filter icon="terp-sale" domain="[('user_id','child_of',[uid])]" help="My Departments Sale Orders"/>
243                         </field>
244                         <field name="date_order" select="1"/>
245                    </group>
246                </search>
247             </field>
248         </record>
249
250         <record id="action_order_form" model="ir.actions.act_window">
251             <field name="name">Sales Orders</field>
252             <field name="type">ir.actions.act_window</field>
253             <field name="res_model">sale.order</field>
254             <field name="view_type">form</field>
255             <field name="view_mode">tree,form,calendar,graph</field>
256             <field name="search_view_id" ref="view_sales_order_filter"/>
257         </record>
258         <menuitem action="action_order_form" id="menu_sale_order" parent="base.menu_sales" sequence="3"/>
259
260         <record id="action_order_tree2" model="ir.actions.act_window">
261             <field name="name">Sales in Exception</field>
262             <field name="type">ir.actions.act_window</field>
263             <field name="res_model">sale.order</field>
264             <field name="view_type">form</field>
265             <field name="view_mode">tree,form,calendar,graph</field>
266             <field name="domain">[('state','in',('shipping_except','invoice_except'))]</field>
267             <field name="filter" eval="True"/>
268             <field name="search_view_id" ref="view_sales_order_filter"/>
269         </record>
270
271         <record id="action_order_tree3" model="ir.actions.act_window">
272             <field name="name">Sales To Invoice</field>
273             <field name="type">ir.actions.act_window</field>
274             <field name="res_model">sale.order</field>
275             <field name="view_type">form</field>
276             <field name="view_mode">tree,form,calendar,graph</field>
277             <field name="domain">[('state','=','manual')]</field>
278             <field name="filter" eval="True"/>
279             <field name="search_view_id" ref="view_sales_order_filter"/>
280         </record>
281
282         <record id="action_order_tree4" model="ir.actions.act_window">
283             <field name="name">Sales Order in Progress</field>
284             <field name="type">ir.actions.act_window</field>
285             <field name="res_model">sale.order</field>
286             <field name="view_type">form</field>
287             <field name="view_mode">tree,form,calendar,graph</field>
288             <field name="domain">[('state','in',('progress','waiting_date','manual'))]</field>
289             <field name="search_view_id" ref="view_sales_order_filter"/>
290         </record>
291
292
293         <record id="action_order_tree5" model="ir.actions.act_window">
294             <field name="name">All Quotations</field>
295             <field name="type">ir.actions.act_window</field>
296             <field name="res_model">sale.order</field>
297             <field name="view_type">form</field>
298             <field name="view_mode">tree,form,calendar,graph</field>
299             <field name="domain">[('state','=','draft')]</field>
300             <field name="search_view_id" ref="view_sales_order_filter"/>
301         </record>
302
303                 <record id="action_order_tree" model="ir.actions.act_window">
304             <field name="name">Old Quotations</field>
305             <field name="type">ir.actions.act_window</field>
306             <field name="res_model">sale.order</field>
307             <field name="view_type">form</field>
308             <field name="view_mode">tree,form,calendar,graph</field>
309             <field name="domain">[('state','=','draft'),('date_order','&lt;',time.strftime('%Y-%m-%d %H:%M:%S'))]</field>
310             <field name="filter" eval="True"/>
311             <field name="search_view_id" ref="view_sales_order_filter"/>
312         </record>
313
314         <record id="view_order_line_graph" model="ir.ui.view">
315             <field name="name">sale.order.line.graph</field>
316             <field name="model">sale.order.line</field>
317             <field name="type">graph</field>
318             <field name="arch" type="xml">
319                 <graph string="Sales order lines">
320                     <field name="product_id"/>
321                     <field name="price_subtotal" operator="+"/>
322                 </graph>
323             </field>
324         </record>
325
326         <record id="view_order_line_tree" model="ir.ui.view">
327             <field name="name">sale.order.line.tree</field>
328             <field name="model">sale.order.line</field>
329             <field name="type">tree</field>
330             <field name="arch" type="xml">
331                 <tree string="Sales order lines">
332                     <field name="order_id"/>
333                     <field name="order_partner_id"/>
334                     <field name="name"/>
335                     <field name="product_id"/>
336                     <field name="product_uom_qty" string="Qty"/>
337                     <field name="product_uom" string="UoM"/>
338                     <field name="discount"/>
339                     <field name="price_unit"/>
340                     <field name="price_net"/>
341                     <field name="price_subtotal"/>
342                     <field name="th_weight"/>
343                     <field name="state"/>
344                 </tree>
345             </field>
346         </record>
347         <record id="view_order_line_form2" model="ir.ui.view">
348             <field name="name">sale.order.line.form2</field>
349             <field name="model">sale.order.line</field>
350             <field name="type">form</field>
351             <field name="arch" type="xml">
352                 <form string="Sales Order Lines">
353                     <notebook>
354                         <page string="Order Lines">
355                             <separator colspan="4" string="Automatic Declaration"/>
356                             <field name="order_id" select="1"/>
357                             <field name="order_partner_id" readonly="1" select="1" invisible="1"/>
358                             <field name="product_uom_qty" readonly="1" select="2"/>
359                             <field name="product_uom"/>
360                             <field name="product_id" readonly="1" select="1"/>
361                             <field name="invoiced" select="2"/>
362                             <field name="company_id" groups="base.group_multi_company" widget="selection"/>
363                             <separator colspan="4" string="Manual Designation"/>
364                             <field colspan="4" name="name" select="2"/>
365                             <field name="price_unit" select="2"/>
366                             <field name="discount"/>
367                             <field name="type"/>
368                             <field name="delay" select="2"/>
369                             <field name="price_subtotal"/>
370                             <field name="th_weight"/>
371                             <field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','&lt;&gt;','purchase')]"/>
372                             <separator colspan="4" string="States"/>
373                             <field name="state" select="2"/>
374                             <group col="2" colspan="2">
375                                 <button name="button_done" states="confirmed,exception" string="Done" type="object" icon="gtk-no"/>
376                                 <button name="button_cancel" states="confirmed,exception" string="Cancel" type="object" icon="gtk-cancel" />
377                             </group>
378                         </page>
379                         <page string="Properties">
380                             <field name="property_ids" nolabel="1"/>
381                         </page>
382                         <page string="Notes">
383                             <field colspan="4" name="notes" nolabel="1"/>
384                         </page>
385                         <page string="Invoice Lines">
386                             <field colspan="4" name="invoice_lines" nolabel="1"/>
387                         </page>
388                     </notebook>
389                 </form>
390             </field>
391         </record>
392
393         <record id="view_sales_order_line_filter" model="ir.ui.view">
394             <field name="name">sale.order.line.select</field>
395             <field name="model">sale.order.line</field>
396             <field name="type">search</field>
397             <field name="arch" type="xml">
398                 <search string="Search Sales Order">
399                     <group col='8' colspan='4'>
400                         <filter icon="terp-purchase" string="To Invoice" domain="[('invoiced','&lt;&gt;', 1),('state','=','done')]" separator="1"/>
401                         <separator orientation="vertical"/>
402                         <field name="order_id" select="1"/>
403                         <field name="order_partner_id" select="1"/>
404                         <field name="product_id" select="1"/>
405                         <field name="salesman_id" select="1" widget="selection">
406                             <filter icon="terp-sale" domain="[('salesman_id','=',uid)]" help="My Sale Order Lines"/>
407                             <filter icon="terp-sale" domain="[('salesman_id','child_of',[uid])]" help="My Departments Sale Order Lines"/>
408                         </field>
409                     </group>
410                 </search>
411             </field>
412         </record>
413
414         <record id="action_order_line_tree1" model="ir.actions.act_window">
415             <field name="name">Sales Order Lines</field>
416             <field name="type">ir.actions.act_window</field>
417             <field name="res_model">sale.order.line</field>
418             <field name="view_type">form</field>
419             <field name="view_id" eval="False"/>
420             <field name="search_view_id" ref="view_sales_order_line_filter"/>
421         </record>
422         <menuitem action="action_order_line_tree1" id="menu_action_order_line_tree1" parent="base.menu_sales"
423             groups="base.group_extended" sequence="4"/>
424
425         <record id="action_order_line_tree2" model="ir.actions.act_window">
426             <field name="name">Uninvoiced Lines</field>
427             <field name="type">ir.actions.act_window</field>
428             <field name="res_model">sale.order.line</field>
429             <field name="view_type">form</field>
430             <field name="view_mode">tree,form,graph</field>
431             <field name="domain">[('invoiced','&lt;&gt;', 1),('state','&lt;&gt;','draft'),('state','&lt;&gt;','cancel')]</field>
432             <field name="filter" eval="True"/>
433         </record>
434
435         <record id="action_order_line_tree3" model="ir.actions.act_window">
436             <field name="name">Uninvoiced and Delivered Lines</field>
437             <field name="type">ir.actions.act_window</field>
438             <field name="res_model">sale.order.line</field>
439             <field name="view_type">form</field>
440             <field name="view_mode">tree,form,graph</field>
441             <field name="domain">[('invoiced','&lt;&gt;', 1),('state','=','done')]</field>
442             <field name="filter" eval="True"/>
443         </record>
444
445         <act_window context="{'partner_id': active_id}" domain="[('partner_id', '=', active_id)]" id="act_res_partner_2_sale_order" name="Sales" res_model="sale.order" src_model="res.partner"/>
446
447         <act_window domain="[('product_id','=',active_id)]" id="action_order_line_product_tree" name="Product sales" res_model="sale.order.line" src_model="product.product"/>
448
449                 <menuitem id="menu_invoiced" name="Invoicing" parent="base.menu_base_partner" sequence="6"/>
450                 <menuitem action="action_order_tree3" id="menu_invoicing_sales_order" parent="menu_invoiced" sequence="1"/>
451                 <menuitem action="action_order_line_tree2" id="menu_invoicing_sales_order_lines" parent="menu_invoiced" sequence="2"/>
452         <!-- configartion view -->
453
454         <record id="view_config_picking_policy" model="ir.ui.view">
455             <field name="name">Configure Picking Policy for Sale Order </field>
456             <field name="model">sale.config.picking_policy</field>
457             <field name="type">form</field>
458             <field name="inherit_id" ref="base.res_config_view_base"/>
459             <field name="arch" type="xml">
460               <data>
461                 <form position="attributes"><attribute name="string">
462                   Sales Configuration
463                 </attribute></form>
464                 <group string="res_config_contents" position="replace">
465                   <label colspan="4" align="0.0" string="
466                     Set the policies selected by default when creating a new
467                     sale order."/>
468                   <separator colspan="4"
469                              string="Configure Sale Order Logistic"/>
470                   <newline/>
471                   <field name="picking_policy"/>
472                   <newline/>
473                   <field name="order_policy"/>
474                   <newline/>
475                   <field name="step"/>
476                 </group>
477                 <xpath expr='//button[@name="action_skip"]' position='replace'/>
478               </data>
479             </field>
480         </record>
481
482         <record id="action_config_picking_policy" model="ir.actions.act_window">
483             <field name="name">Configure Picking Policy for Sale Order</field>
484             <field name="type">ir.actions.act_window</field>
485             <field name="res_model">sale.config.picking_policy</field>
486             <field name="view_id" ref="view_config_picking_policy"/>
487             <field name="view_type">form</field>
488             <field name="view_mode">form</field>
489             <field name="target">new</field>
490         </record>
491
492         <!-- register configuration wizard -->
493         <record id="config_wizard_step_sale_picking_policy" model="ir.actions.todo">
494             <field name="action_id" ref="action_config_picking_policy"/>
495         </record>
496
497     </data>
498 </openerp>