1 <?xml version="1.0" encoding="utf-8"?>
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"/>
8 <menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="4"/>
9 <menuitem action="product.product_normal_action" id="product.menu_products" parent="base.menu_product" sequence="1"/>
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"/>
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">
33 <field name="warehouse_id"/>
34 <field name="pricelist_id"/>
35 <field name="project_id"/>
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"/>
48 <menuitem action="action_shop_form" id="menu_action_shop_form" parent="base.menu_base_config" sequence="70"/>
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"/>
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="+"/>
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" string="Order date"/>
80 <field name="name" string="Reference"/>
81 <field name="partner_id"/>
82 <field name="partner_shipping_id"/>
83 <field name="user_id" />
84 <field name="picked_rate" widget="progressbar"/>
85 <field name="invoiced_rate" widget="progressbar"/>
86 <field name="amount_untaxed" sum="Total Untaxed amount"/>
87 <field name="amount_total" sum="Total amount"/>
93 <record id="view_order_form" model="ir.ui.view">
94 <field name="name">sale.order.form</field>
95 <field name="model">sale.order</field>
96 <field name="type">form</field>
97 <field name="arch" type="xml">
98 <form string="Sales order">
99 <group col="6" colspan="4">
100 <field name="name" select="1"/>
101 <field name="client_order_ref" select="2"/>
102 <field name="shipped" select="2"/>
103 <field name="shop_id" on_change="onchange_shop_id(shop_id)" select="2" widget="selection"/>
104 <field name="date_order" select="1" string="Order date" />
105 <field name="invoiced" select="2"/>
107 <notebook colspan="4">
108 <page string="Sale Order">
109 <field name="partner_id" on_change="onchange_partner_id(partner_id)" required="1" select="1"/>
110 <field domain="[('partner_id','=',partner_id)]" name="partner_order_id"/>
111 <field domain="[('partner_id','=',partner_id)]" name="partner_invoice_id"/>
112 <field domain="[('partner_id','=',partner_id)]" name="partner_shipping_id"/>
113 <field domain="[('type','=','sale')]" name="pricelist_id"/>
114 <field name="project_id" select="2" context="{'partner_id':partner_id, 'contact_id':partner_order_id, 'pricelist_id':pricelist_id, 'default_name':name}"/>
116 <field colspan="4" mode="tree,form,graph" name="order_line" nolabel="1" widget="one2many_list">
117 <form string="Sale Order Lines">
119 <page string="Order Line">
120 <separator colspan="4" string="Automatic Declaration"/>
122 context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
124 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)"
127 context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
128 name="product_uom_qty"
129 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)"
131 <field name="product_uom"
132 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)"/>
134 name="product_packaging"
135 context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
136 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)"
137 domain="[('product_id','=',product_id)]"
138 groups="base.group_extended"/>
140 <field name="company_id" groups="base.group_multi_company" widget="selection"/>
141 <separator colspan="4" string="Manual Description"/>
142 <field colspan="4" name="name" select="2"/>
143 <field name="price_unit" select="2"/>
144 <field name="discount"/>
146 <field name="delay" select="2"/>
148 <field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
149 <separator colspan="4" string="States"/>
150 <field name="state" select="2"/>
151 <group col="3" colspan="2">
152 <field name="invoiced" select="2"/>
153 <button colspan="1" name="%(wizard_sale_order_line_invoice)d" states="confirmed" string="Make Invoice" type="action" icon="gtk-print"/>
156 <page groups="base.group_extended" string="Extra Info">
157 <field groups="product.group_uos" name="product_uos_qty" on_change="uos_change(product_uos, product_uos_qty, product_id)"/>
158 <field groups="product.group_uos" name="product_uos"/>
159 <field name="th_weight"/>
160 <field name="address_allotment_id" select="2"/>
161 <separator colspan="4" string="Properties"/>
162 <field colspan="4" name="property_ids" nolabel="1"/>
164 <page string="Notes">
165 <field colspan="4" name="notes" nolabel="1"/>
167 <page string="History" groups="base.group_extended">
168 <separator colspan="4" string="Invoice Lines"/>
169 <field colspan="4" name="invoice_lines" nolabel="1"/>
170 <separator colspan="4" string="Stock Moves"/>
171 <field colspan="4" name="move_ids" nolabel="1" widget="many2many"/>
175 <tree string="Sales order lines">
176 <field colspan="4" name="name"/>
177 <field name="product_uom_qty" string="Qty"/>
178 <field name="product_uom" string="UoM"/>
179 <field name="discount"/>
180 <field name="price_unit"/>
181 <field name="price_net"/>
182 <field name="price_subtotal"/>
186 <group col="7" colspan="4">
187 <field name="amount_untaxed" sum="Untaxed amount"/>
188 <field name="amount_tax"/>
189 <field name="amount_total" sum="Total amount"/>
190 <button name="button_dummy" states="draft" string="Compute" type="object" icon="gtk-execute"/>
192 <group col="13" colspan="4">
193 <field name="state" select="2"/>
194 <button name="order_confirm" states="draft" string="Confirm Order" icon="gtk-apply"/>
195 <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" icon="gtk-print"/>
196 <button name="invoice_corrected" states="invoice_except" string="Invoice Corrected" icon="gtk-apply"/>
197 <button name="ship_recreate" states="shipping_except" string="Recreate Requisition" icon="gtk-ok"/>
198 <button name="ship_corrected" states="shipping_except" string="Requisition Corrected" icon="gtk-apply"/>
199 <button name="manual_invoice" states="manual" string="Create Invoice" icon="gtk-print"/>
200 <button name="ship_cancel" states="shipping_except" string="Cancel Order" icon="gtk-cancel"/>
201 <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="gtk-convert"/>
202 <button name="action_cancel" states="manual,progress" string="Cancel Order" type="object" icon="gtk-cancel"/>
203 <button name="cancel" states="draft" string="Cancel Order" icon="gtk-cancel"/>
204 <button name="invoice_cancel" states="invoice_except" string="Cancel Order" icon="gtk-cancel"/>
207 <page string="Other data">
208 <group colspan="2" col="2">
209 <separator string="Logistic" colspan="2"/>
210 <field groups="base.group_extended" name="incoterm"/>
211 <field groups="base.group_extended" name="picking_policy" required="True"/>
212 <field name="order_policy" on_change="shipping_policy_change(order_policy)"/>
213 <field groups="base.group_extended" name="invoice_quantity" attrs="{'readonly':[('order_policy','=','prepaid'),('order_policy','=','picking')]}"/>
215 <group colspan="2" col="2">
216 <separator string="References" colspan="2"/>
217 <field name="user_id"/>
218 <field groups="base.group_extended" name="origin"/>
220 <group colspan="2" col="2">
221 <separator string="Conditions" colspan="2"/>
222 <field name="payment_term" widget="selection"/>
223 <field name="fiscal_position" groups="base.group_extended" widget="selection"/>
224 <field name="company_id" groups="base.group_multi_company" widget="selection"/>
226 <group colspan="2" col="2">
227 <separator string="Dates" colspan="2"/>
228 <field name="create_date" widget="datetime"/>
229 <field name="date_confirm"/>
231 <separator colspan="4" string="Notes"/>
232 <field colspan="4" name="note" nolabel="1"/>
234 <page string="History">
235 <separator colspan="4" string="Related invoices"/>
236 <field colspan="4" name="invoice_ids" nolabel="1"/>
237 <field colspan="4" name="picking_ids" nolabel="1"/>
244 <record id="view_sales_order_filter" model="ir.ui.view">
245 <field name="name">sale.order.list.select</field>
246 <field name="model">sale.order</field>
247 <field name="type">search</field>
248 <field name="arch" type="xml">
249 <search string="Search Sales Order">
250 <filter icon="terp-sale" string="Quotations" domain="[('state','=','draft')]"/>
251 <filter icon="terp-sale" string="Running" domain="[('state','in',('manual','progress'))]"/>
252 <filter icon="terp-sale" string="Sales To Invoice" domain="[('state','=','manual')]"/>
253 <separator orientation="vertical"/>
254 <field name="name" select="1"/>
255 <field name="partner_id" select="1"/>
256 <field name="user_id" select="1" widget="selection">
257 <filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Sale Orders" default="1"/>
259 <field name="date_order" select="1" string="Order date" />
261 <group expand="1" string="Group By..." colspan="11" col="11">
262 <filter string="Customer" icon="terp-sale" domain="[]" context="{'group_by':'partner_id'}"/>
263 <filter string="State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
264 <filter string="Order Date" icon="terp-sale" domain="[]" context="{'group_by':'date_order'}"/>
270 <record id="action_order_form" model="ir.actions.act_window">
271 <field name="name">Sales Orders</field>
272 <field name="type">ir.actions.act_window</field>
273 <field name="res_model">sale.order</field>
274 <field name="view_type">form</field>
275 <field name="view_mode">tree,form,calendar,graph</field>
276 <field name="search_view_id" ref="view_sales_order_filter"/>
278 <menuitem action="action_order_form" id="menu_sale_order" parent="base.menu_sales" sequence="3"/>
280 <record id="action_order_tree2" model="ir.actions.act_window">
281 <field name="name">Sales in Exception</field>
282 <field name="type">ir.actions.act_window</field>
283 <field name="res_model">sale.order</field>
284 <field name="view_type">form</field>
285 <field name="view_mode">tree,form,calendar,graph</field>
286 <field name="domain">[('state','in',('shipping_except','invoice_except'))]</field>
287 <field name="filter" eval="True"/>
288 <field name="search_view_id" ref="view_sales_order_filter"/>
291 <record id="action_order_tree4" model="ir.actions.act_window">
292 <field name="name">Sales Order in Progress</field>
293 <field name="type">ir.actions.act_window</field>
294 <field name="res_model">sale.order</field>
295 <field name="view_type">form</field>
296 <field name="view_mode">tree,form,calendar,graph</field>
297 <field name="domain">[('state','in',('progress','waiting_date','manual'))]</field>
298 <field name="search_view_id" ref="view_sales_order_filter"/>
302 <record id="action_order_tree5" model="ir.actions.act_window">
303 <field name="name">All Quotations</field>
304 <field name="type">ir.actions.act_window</field>
305 <field name="res_model">sale.order</field>
306 <field name="view_type">form</field>
307 <field name="view_mode">tree,form,calendar,graph</field>
308 <field name="domain">[('state','=','draft')]</field>
309 <field name="search_view_id" ref="view_sales_order_filter"/>
312 <record id="action_order_tree" model="ir.actions.act_window">
313 <field name="name">Old Quotations</field>
314 <field name="type">ir.actions.act_window</field>
315 <field name="res_model">sale.order</field>
316 <field name="view_type">form</field>
317 <field name="view_mode">tree,form,calendar,graph</field>
318 <field name="domain">[('state','=','draft'),('date_order','<',time.strftime('%Y-%m-%d %H:%M:%S'))]</field>
319 <field name="filter" eval="True"/>
320 <field name="search_view_id" ref="view_sales_order_filter"/>
323 <record id="view_order_line_graph" model="ir.ui.view">
324 <field name="name">sale.order.line.graph</field>
325 <field name="model">sale.order.line</field>
326 <field name="type">graph</field>
327 <field name="arch" type="xml">
328 <graph string="Sales order lines">
329 <field name="product_id"/>
330 <field name="price_subtotal" operator="+"/>
335 <record id="view_order_line_tree" model="ir.ui.view">
336 <field name="name">sale.order.line.tree</field>
337 <field name="model">sale.order.line</field>
338 <field name="type">tree</field>
339 <field name="arch" type="xml">
340 <tree string="Sales order lines">
341 <field name="order_id"/>
342 <field name="order_partner_id"/>
343 <field name="product_id"/>
344 <field name="product_uom_qty" string="Qty"/>
345 <field name="product_uom" string="UoM"/>
346 <field name="discount"/>
347 <field name="price_unit"/>
348 <field name="price_net"/>
349 <field name="price_subtotal"/>
350 <field name="th_weight"/>
351 <field name="state"/>
355 <record id="view_order_line_form2" model="ir.ui.view">
356 <field name="name">sale.order.line.form2</field>
357 <field name="model">sale.order.line</field>
358 <field name="type">form</field>
359 <field name="arch" type="xml">
360 <form string="Sales Order Lines">
362 <page string="Order Lines">
363 <separator colspan="4" string="Automatic Declaration"/>
364 <field name="order_id" select="1"/>
365 <field name="order_partner_id" readonly="1" select="1" invisible="1"/>
366 <field name="product_uom_qty" readonly="1" select="2"/>
367 <field name="product_uom"/>
368 <field name="product_id" readonly="1" select="1"/>
369 <field name="invoiced" select="2"/>
370 <field name="company_id" groups="base.group_multi_company" widget="selection"/>
371 <separator colspan="4" string="Manual Designation"/>
372 <field colspan="4" name="name" select="2"/>
373 <field name="price_unit" select="2"/>
374 <field name="discount"/>
376 <field name="delay" select="2"/>
377 <field name="price_subtotal"/>
378 <field name="th_weight"/>
379 <field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
380 <separator colspan="4" string="States"/>
381 <field name="state" select="2"/>
382 <group col="2" colspan="2">
383 <button name="button_done" states="confirmed,exception" string="Done" type="object" icon="gtk-jump-to"/>
384 <button name="button_cancel" states="confirmed,exception" string="Cancel" type="object" icon="gtk-cancel" />
387 <page string="Properties">
388 <field name="property_ids" nolabel="1"/>
390 <page string="Notes">
391 <field colspan="4" name="notes" nolabel="1"/>
393 <page string="Invoice Lines">
394 <field colspan="4" name="invoice_lines" nolabel="1"/>
401 <record id="view_sales_order_line_filter" model="ir.ui.view">
402 <field name="name">sale.order.line.select</field>
403 <field name="model">sale.order.line</field>
404 <field name="type">search</field>
405 <field name="arch" type="xml">
406 <search string="Search Sales Order">
407 <filter icon="terp-purchase" string="To Invoice" domain="[('invoiced','<>', 1),('state','=','done')]" separator="1"/>
408 <separator orientation="vertical"/>
409 <field name="order_id" select="1"/>
410 <field name="order_partner_id" select="1"/>
411 <field name="product_id" select="1"/>
412 <field name="salesman_id" select="1" widget="selection">
413 <filter icon="terp-sale" domain="[('salesman_id','=',uid)]" help="My Sale Order Lines"/>
414 <filter icon="terp-sale" domain="[('salesman_id','child_of',[uid])]" help="My Departments Sale Order Lines"/>
417 <group expand="context.get('report',False)" string="Group By..." colspan="9" col="8">
418 <filter string="Product" icon="terp-sale" default="1" domain="[]" context="{'group_by':'product_id'}"/>
419 <filter string="Order" icon="terp-sale" domain="[]" context="{'group_by':'order_id'}"/>
420 <filter string="State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
426 <record id="view_sales_order_uninvoiced_line_filter" model="ir.ui.view">
427 <field name="name">sale.order.uninvoiced.line</field>
428 <field name="model">sale.order.line</field>
429 <field name="type">search</field>
430 <field name="arch" type="xml">
431 <search string="Search Uninvoiced Lines">
432 <filter icon="terp-purchase" string="Shipped"
433 domain="[('state','=','done')]"
435 <filter icon="terp-purchase" string="Uninvoiced"
436 domain="[('invoiced','<>', 1),('state','<>','draft'),('state','<>','cancel')]" default="1"
438 <separator orientation="vertical"/>
439 <field name="product_id" select="1"/>
440 <field name="order_id" select="1"/>
441 <field name="order_partner_id" select="1"/>
442 <field name="state" select="1"/>
444 <group expand="1" string="Group By..." colspan="9" col="8">
445 <filter string="Product" icon="terp-sale" domain="[]" context="{'group_by':'product_id'}"/>
446 <!-- <filter string="Customer" icon="terp-sale" domain="[]" context="{'group_by':'order_partner_id'}"/>-->
447 <filter string="Order" icon="terp-sale" domain="[]" context="{'group_by':'order_id'}"/>
453 <record id="action_order_line_tree2" model="ir.actions.act_window">
454 <field name="name">Uninvoiced Lines</field>
455 <field name="type">ir.actions.act_window</field>
456 <field name="res_model">sale.order.line</field>
457 <field name="view_type">form</field>
458 <field name="view_mode">tree,form,graph</field>
459 <field name="search_view_id" ref="view_sales_order_uninvoiced_line_filter" />
460 <field name="filter" eval="True"/>
463 <record id="action_order_line_tree3" model="ir.actions.act_window">
464 <field name="name">Uninvoiced and Delivered Lines</field>
465 <field name="type">ir.actions.act_window</field>
466 <field name="res_model">sale.order.line</field>
467 <field name="view_type">form</field>
468 <field name="view_mode">tree,form,graph</field>
469 <field name="domain">[('invoiced','<>', 1),('state','=','done')]</field>
470 <field name="filter" eval="True"/>
473 <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"/>
475 <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"/>
477 <menuitem id="menu_invoiced" name="Invoicing" parent="base.menu_base_partner" sequence="6"/>
478 <menuitem action="action_order_line_tree2" id="menu_invoicing_sales_order_lines" parent="menu_invoiced" sequence="2"/>
479 <!-- configartion view -->
481 <record id="view_config_picking_policy" model="ir.ui.view">
482 <field name="name">Configure Picking Policy for Sale Order </field>
483 <field name="model">sale.config.picking_policy</field>
484 <field name="type">form</field>
485 <field name="inherit_id" ref="base.res_config_view_base"/>
486 <field name="arch" type="xml">
488 <form position="attributes">
489 <attribute name="string">Sales Configuration</attribute>
491 <group string="res_config_contents" position="replace">
492 <label colspan="4" align="0.0"
493 string="Set the policies selected by default when creating a new sale order."/>
494 <separator colspan="4"
495 string="Configure Sale Order Logistic"/>
497 <field name="picking_policy"/>
499 <field name="order_policy"/>
503 <xpath expr='//button[@name="action_skip"]' position='replace'/>
508 <record id="action_config_picking_policy" model="ir.actions.act_window">
509 <field name="name">Configure Picking Policy for Sale Order</field>
510 <field name="type">ir.actions.act_window</field>
511 <field name="res_model">sale.config.picking_policy</field>
512 <field name="view_id" ref="view_config_picking_policy"/>
513 <field name="view_type">form</field>
514 <field name="view_mode">form</field>
515 <field name="target">new</field>
518 <!-- register configuration wizard -->
519 <record id="config_wizard_step_sale_picking_policy" model="ir.actions.todo">
520 <field name="action_id" ref="action_config_picking_policy"/>