1 <?xml version="1.0" encoding="utf-8"?>
4 <menuitem icon="terp-partner" id="base.menu_base_partner" name="Sales" sequence="0" groups="sale.group_sale_user"/>
5 <menuitem id="base.menu_sales" name="Sales" parent="base.menu_base_partner" sequence="1"/>
7 <menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
8 <menuitem action="product.product_normal_action" id="product.menu_products" parent="base.menu_product" sequence="1"/>
10 <record id="view_shop_form" model="ir.ui.view">
11 <field name="name">sale.shop</field>
12 <field name="model">sale.shop</field>
13 <field name="type">form</field>
14 <field name="arch" type="xml">
15 <form string="Sale Shop">
16 <field name="name" select="1"/>
17 <field name="warehouse_id" required="1" select="1" widget="selection"/>
18 <field name="company_id" 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"/>
49 <menuitem action="action_shop_form" id="menu_action_shop_form"
50 parent="product.prod_config_main" sequence="0"
51 groups="base.group_extended"/>
53 <record id="view_sale_order_calendar" model="ir.ui.view">
54 <field name="name">sale.order.calendar</field>
55 <field name="model">sale.order</field>
56 <field name="type">calendar</field>
57 <field name="arch" type="xml">
58 <calendar string="Sales orders" color="state" date_start="date_order">
59 <field name="partner_id"/>
60 <field name="amount_total"/>
64 <record model="ir.ui.view" id="view_sale_order_graph">
65 <field name="name">sale.order.graph</field>
66 <field name="model">sale.order</field>
67 <field name="type">graph</field>
68 <field name="arch" type="xml">
69 <graph string="Sales orders" type="bar">
70 <field name="partner_id"/>
71 <field name="amount_total" operator="+"/>
76 <record id="view_order_tree" model="ir.ui.view">
77 <field name="name">sale.order.tree</field>
78 <field name="model">sale.order</field>
79 <field name="type">tree</field>
80 <field name="arch" type="xml">
81 <tree string="Sales orders">
82 <field name="date_order"/>
84 <field name="partner_id"/>
85 <field name="partner_shipping_id"/>
86 <field name="user_id" />
87 <field name="picked_rate" widget="progressbar"/>
88 <field name="invoiced_rate" widget="progressbar"/>
89 <field name="amount_untaxed" sum="Total Untaxed amount"/>
90 <field name="amount_total" sum="Total amount"/>
96 <act_window name="Partial Invoice"
97 res_model="sale.advance.payment.inv"
98 src_model="sale.order"
101 key2="client_action_multi"
102 id="action_view_sale_advance_payment_inv"/>
105 <record id="view_order_form" model="ir.ui.view">
106 <field name="name">sale.order.form</field>
107 <field name="model">sale.order</field>
108 <field name="type">form</field>
109 <field name="arch" type="xml">
110 <form string="Sales order">
111 <group col="6" colspan="4">
113 <field name="date_order"/>
114 <field name="shipped"/>
115 <field name="client_order_ref"/>
116 <field name="shop_id" on_change="onchange_shop_id(shop_id)" widget="selection"/>
117 <field name="invoiced"/>
119 <notebook colspan="5">
120 <page string="Sale Order">
121 <field name="partner_id" on_change="onchange_partner_id(partner_id)" required="1"/>
122 <field domain="[('partner_id','=',partner_id)]" name="partner_order_id"/>
123 <field domain="[('partner_id','=',partner_id)]" name="partner_invoice_id"/>
124 <field domain="[('partner_id','=',partner_id)]" name="partner_shipping_id"/>
125 <field domain="[('type','=','sale')]" name="pricelist_id" groups="base.group_extended"/>
126 <field name="project_id"
127 context="{'partner_id':partner_id, 'contact_id':partner_order_id, 'pricelist_id':pricelist_id, 'default_name':name}"
128 groups="base.group_extended"/>
130 <field colspan="4" mode="tree,form,graph" name="order_line" nolabel="1" widget="one2many_list">
131 <form string="Sale Order Lines">
133 <page string="Order Line">
135 context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
137 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, False)"
140 context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
141 name="product_uom_qty"
142 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)"
144 <field groups="product.group_uos" name="product_uos_qty"/>
145 <field name="product_uom"
146 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)"/>
148 name="product_packaging"
149 context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
150 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, False)"
151 domain="[('product_id','=',product_id)]"
152 groups="base.group_extended"/>
154 <field name="company_id" groups="base.group_multi_company" widget="selection"/>
155 <field colspan="4" name="name"/>
156 <field name="price_unit"/>
157 <field name="discount"/>
158 <field name="type" groups="base.group_extended"/>
159 <field name="delay" groups="base.group_extended"/>
161 <separator colspan="5" string="Taxes"/>
162 <field colspan="4" name="tax_id" nolabel="1" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
163 <group colspan="4" col="5" groups="base.group_extended">
164 <separator colspan="5" string="States"/>
165 <field name="state"/>
166 <field name="invoiced"/>
168 name="%(action_view_sale_order_line_make_invoice)d"
170 string="Make Invoice"
172 icon="terp-document-new" />
175 <page groups="base.group_extended" string="Extra Info">
176 <field name="th_weight"/>
177 <field name="address_allotment_id"/>
178 <!-- <separator colspan="4" string="Properties"/>-->
179 <!-- <field colspan="4" name="property_ids" nolabel="1"/>-->
181 <page string="Notes">
182 <field colspan="4" name="notes" nolabel="1"/>
184 <page string="History" groups="base.group_extended">
185 <separator colspan="4" string="Invoice Lines"/>
186 <field colspan="4" name="invoice_lines" nolabel="1"/>
187 <separator colspan="4" string="Stock Moves"/>
188 <field colspan="4" name="move_ids" nolabel="1" widget="many2many"/>
192 <tree string="Sales order lines">
193 <field colspan="4" name="name"/>
194 <field name="product_uom_qty" string="Qty"/>
195 <field name="product_uom" string="UoM"/>
196 <field name="discount"/>
197 <field name="price_unit"/>
198 <field name="price_subtotal"/>
202 <group col="13" colspan="10">
203 <field name="amount_untaxed" sum="Untaxed amount"/>
204 <field name="amount_tax"/>
205 <field name="amount_total"/>
206 <button name="button_dummy" states="draft" string="Compute" type="object" icon="gtk-execute"/>
207 <button name="%(action_view_sale_advance_payment_inv)d" string="Deposit" type="action" icon="gtk-execute"/>
209 <group col="13" colspan="4">
210 <field name="state"/>
211 <button name="order_confirm" states="draft" string="Confirm Order" icon="gtk-apply"/>
212 <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" icon="gtk-print"/>
213 <button name="invoice_corrected" states="invoice_except" string="Invoice Corrected" icon="gtk-apply"/>
214 <button name="ship_recreate" states="shipping_except" string="Recreate Procurement" icon="gtk-ok"/>
215 <button name="ship_corrected" states="shipping_except" string="Procurement Corrected" icon="gtk-apply"/>
216 <button name="manual_invoice" states="manual" string="Create Invoice" icon="terp-document-new"/>
217 <button name="ship_cancel" states="shipping_except" string="Cancel Order" icon="gtk-cancel"/>
218 <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="gtk-convert"/>
219 <button name="action_cancel" states="manual,progress" string="Cancel Order" type="object" icon="gtk-cancel"/>
220 <button name="cancel" states="draft" string="Cancel Order" icon="gtk-cancel"/>
221 <button name="invoice_cancel" states="invoice_except" string="Cancel Order" icon="gtk-cancel"/>
224 <page string="Other Information">
225 <group colspan="2" col="2" groups="base.group_extended" name="logistic">
226 <separator string="Logistic" colspan="2"/>
227 <field name="incoterm"/>
228 <field name="picking_policy" required="True"/>
229 <field name="order_policy" on_change="shipping_policy_change(order_policy)"/>
230 <field name="invoice_quantity" attrs="{'readonly':[('order_policy','=','prepaid'),('order_policy','=','picking')]}"/>
232 <group colspan="2" col="2">
233 <separator string="References" colspan="2"/>
234 <field name="user_id"/>
235 <field groups="base.group_extended" name="origin"/>
237 <group colspan="2" col="2" groups="base.group_extended">
238 <separator string="Conditions" colspan="2"/>
239 <field name="payment_term" widget="selection"/>
240 <field name="fiscal_position" widget="selection"/>
241 <field name="company_id" widget="selection" groups="base.group_multi_company"/>
243 <group colspan="2" col="2" groups="base.group_extended">
244 <separator string="Dates" colspan="2"/>
245 <field name="create_date" widget="datetime"/>
246 <field name="date_confirm"/>
248 <separator colspan="4" string="Notes"/>
249 <field colspan="4" name="note" nolabel="1"/>
251 <page string="History" groups="base.group_extended">
252 <separator colspan="4" string="Related Invoices"/>
253 <field colspan="4" name="invoice_ids" nolabel="1" context="{'form_view_ref':'account.invoice_form'}"/>
254 <field colspan="4" name="picking_ids" nolabel="1"/>
261 <record id="view_sales_order_filter" model="ir.ui.view">
262 <field name="name">sale.order.list.select</field>
263 <field name="model">sale.order</field>
264 <field name="type">search</field>
265 <field name="arch" type="xml">
266 <search string="Search Sales Order">
267 <filter icon="terp-document-new" string="Quotations" domain="[('state','=','draft')]"/>
268 <filter icon="terp-check" string="Sales" domain="[('state','in',('manual','progress'))]"/>
269 <separator orientation="vertical"/>
270 <filter icon="terp-gtk-go-back-rtl" string="To Invoice" domain="[('state','=','manual')]"/>
271 <separator orientation="vertical"/>
272 <field name="name" select="1"/>
273 <field name="partner_id" select="1"/>
274 <field name="user_id" select="1"/>
275 <field name="date_order" select="1" string="Order date" />
277 <group expand="0" string="Group By..." colspan="11" col="11" groups="base.group_extended">
278 <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
279 <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
280 <separator orientation="vertical"/>
281 <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
282 <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
288 <record id="action_order_form" model="ir.actions.act_window">
289 <field name="name">Sales Orders</field>
290 <field name="type">ir.actions.act_window</field>
291 <field name="res_model">sale.order</field>
292 <field name="view_type">form</field>
293 <field name="view_mode">tree,form,calendar,graph</field>
294 <field name="search_view_id" ref="view_sales_order_filter"/>
296 <menuitem action="action_order_form" id="menu_sale_order" parent="base.menu_sales" sequence="3"/>
298 <record id="action_order_tree2" model="ir.actions.act_window">
299 <field name="name">Sales in Exception</field>
300 <field name="type">ir.actions.act_window</field>
301 <field name="res_model">sale.order</field>
302 <field name="view_type">form</field>
303 <field name="view_mode">tree,form,calendar,graph</field>
304 <field name="domain">[('state','in',('shipping_except','invoice_except'))]</field>
305 <field name="filter" eval="True"/>
306 <field name="search_view_id" ref="view_sales_order_filter"/>
309 <record id="action_order_tree4" model="ir.actions.act_window">
310 <field name="name">Sales Order in Progress</field>
311 <field name="type">ir.actions.act_window</field>
312 <field name="res_model">sale.order</field>
313 <field name="view_type">form</field>
314 <field name="view_mode">tree,form,calendar,graph</field>
315 <field name="domain">[('state','in',('progress','waiting_date','manual'))]</field>
316 <field name="search_view_id" ref="view_sales_order_filter"/>
320 <record id="action_order_tree5" model="ir.actions.act_window">
321 <field name="name">All Quotations</field>
322 <field name="type">ir.actions.act_window</field>
323 <field name="res_model">sale.order</field>
324 <field name="view_type">form</field>
325 <field name="view_mode">tree,form,calendar,graph</field>
326 <field name="domain">[('state','=','draft')]</field>
327 <field name="search_view_id" ref="view_sales_order_filter"/>
330 <record id="action_order_tree" model="ir.actions.act_window">
331 <field name="name">Old Quotations</field>
332 <field name="type">ir.actions.act_window</field>
333 <field name="res_model">sale.order</field>
334 <field name="view_type">form</field>
335 <field name="view_mode">tree,form,calendar,graph</field>
336 <field name="domain">[('state','=','draft'),('date_order','<',time.strftime('%Y-%m-%d %H:%M:%S'))]</field>
337 <field name="filter" eval="True"/>
338 <field name="search_view_id" ref="view_sales_order_filter"/>
341 <record id="view_order_line_graph" model="ir.ui.view">
342 <field name="name">sale.order.line.graph</field>
343 <field name="model">sale.order.line</field>
344 <field name="type">graph</field>
345 <field name="arch" type="xml">
346 <graph string="Sales order lines">
347 <field name="product_id"/>
348 <field name="price_subtotal" operator="+"/>
353 <record id="view_order_line_tree" model="ir.ui.view">
354 <field name="name">sale.order.line.tree</field>
355 <field name="model">sale.order.line</field>
356 <field name="type">tree</field>
357 <field name="arch" type="xml">
358 <tree string="Sales order lines">
359 <field name="order_id"/>
360 <field name="order_partner_id"/>
361 <field name="product_id"/>
362 <field name="product_uom_qty" string="Qty"/>
363 <field name="product_uom" string="UoM"/>
364 <field name="salesman_id"/>
365 <field name="price_subtotal"/>
366 <field name="state"/>
370 <record id="view_order_line_form2" model="ir.ui.view">
371 <field name="name">sale.order.line.form2</field>
372 <field name="model">sale.order.line</field>
373 <field name="type">form</field>
374 <field name="arch" type="xml">
375 <form string="Sales Order Lines">
377 <page string="Order Lines">
378 <separator colspan="4" string="General Information"/>
379 <field name="order_id"/>
380 <field name="order_partner_id" readonly="1" invisible="1"/>
381 <field name="product_uom_qty" readonly="1"/>
382 <field groups="product.group_uos" name="product_uos_qty"/>
383 <field name="product_uom"/>
384 <field name="product_id" readonly="1"/>
385 <field name="invoiced"/>
386 <field name="company_id" groups="base.group_multi_company" widget="selection"/>
387 <separator colspan="4" string="Manual Designation"/>
388 <field colspan="4" name="name"/>
389 <field name="price_unit"/>
390 <field name="discount"/>
391 <field name="type" groups="base.group_extended"/>
392 <field name="delay" groups="base.group_extended"/>
393 <field name="price_subtotal"/>
394 <field name="th_weight"/>
395 <separator colspan="4" string="Taxes"/>
396 <field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]" nolabel="1"/>
397 <separator colspan="4" string="States"/>
398 <field name="state"/>
399 <group col="3" colspan="2">
401 name="call_make_invoices"
403 string="Create Invoice"
405 icon="terp-document-new"
406 attrs="{'invisible': [('invoiced', '=', 1)]}" />
407 <button name="button_done"
408 states="confirmed,exception"
409 string="Done" type="object"
411 attrs="{'invisible': [('invoiced', '=', 0)]}"/>
412 <button name="button_cancel"
413 states="confirmed,exception"
414 string="Cancel" type="object"
416 attrs="{'invisible': [('invoiced', '=', 1)]}" />
419 <!-- <page string="Properties" groups="base.group_extended">-->
420 <!-- <field name="property_ids" nolabel="1"/>-->
422 <page string="Invoice Lines" groups="base.group_extended">
423 <field colspan="4" name="invoice_lines" nolabel="1"/>
425 <page string="Notes">
426 <field colspan="4" name="notes" nolabel="1"/>
433 <record id="view_sales_order_line_filter" model="ir.ui.view">
434 <field name="name">sale.order.line.select</field>
435 <field name="model">sale.order.line</field>
436 <field name="type">search</field>
437 <field name="arch" type="xml">
438 <search string="Search Sales Order">
439 <filter icon="terp-gtk-go-back-rtl" string="To Invoice" domain="[('invoiced','<>', 1),('state','=','done')]" separator="1"/>
440 <separator orientation="vertical"/>
441 <field name="order_id"/>
442 <field name="order_partner_id"/>
443 <field name="product_id"/>
444 <field name="salesman_id">
445 <filter icon="terp-dolar" domain="[('salesman_id','=',uid)]" help="My Sale Order Lines"/>
448 <group expand="context.get('report',False)" string="Group By..." colspan="9" col="8">
449 <filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
450 <filter string="Order" icon="terp-sale" domain="[]" context="{'group_by':'order_id'}"/>
451 <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'salesman_id'}"/>
452 <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
458 <record id="view_sales_order_uninvoiced_line_filter" model="ir.ui.view">
459 <field name="name">sale.order.uninvoiced.line</field>
460 <field name="model">sale.order.line</field>
461 <field name="type">search</field>
462 <field name="arch" type="xml">
463 <search string="Search Uninvoiced Lines">
464 <filter icon="terp-accessories-archiver" string="Shipped"
465 domain="[('state','=','done')]"
468 <filter icon="terp-dolar_ok!" string="Uninvoiced" name="uninvoiced"
469 domain="[('invoiced','<>', 1),('state','<>','draft'),('state','<>','cancel')]"
471 <filter icon="terp-dolar" string="Sale Order"
472 domain="[('state','=','confirmed')]"
475 <separator orientation="vertical"/>
476 <field name="order_id"/>
477 <field name="order_partner_id"/>
478 <field name="product_id"/>
479 <field name="salesman_id">
480 <filter icon="terp-dolar" domain="[('salesman_id','=',uid)]" help="My Sale Order Lines"/>
483 <group expand="0" string="Group By..." colspan="9" col="8">
484 <filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
485 <filter string="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'order_id'}"/>
486 <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
492 <record id="action_order_line_tree2" model="ir.actions.act_window">
493 <field name="name">Lines to Invoice</field>
494 <field name="type">ir.actions.act_window</field>
495 <field name="res_model">sale.order.line</field>
496 <field name="view_type">form</field>
497 <field name="view_mode">tree,form,graph</field>
498 <field name="search_view_id" ref="view_sales_order_uninvoiced_line_filter" />
499 <field name="context">{"search_default_uninvoiced":1}</field>
500 <field name="filter" eval="True"/>
503 <record id="action_order_line_tree3" model="ir.actions.act_window">
504 <field name="name">Uninvoiced and Delivered Lines</field>
505 <field name="type">ir.actions.act_window</field>
506 <field name="res_model">sale.order.line</field>
507 <field name="view_type">form</field>
508 <field name="view_mode">tree,form,graph</field>
509 <field name="domain">[('invoiced','<>', 1),('state','=','done')]</field>
510 <field name="filter" eval="True"/>
513 <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"/>
515 <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" groups="base.group_extended"/>
517 <menuitem id="menu_invoiced" name="Billing" parent="base.menu_base_partner" sequence="5"/>
518 <menuitem action="action_order_line_tree2" id="menu_invoicing_sales_order_lines" parent="menu_invoiced" sequence="2"/>
519 <!-- configartion view -->
521 <record id="view_config_picking_policy" model="ir.ui.view">
522 <field name="name">Configure Picking Policy for Sale Order </field>
523 <field name="model">sale.config.picking_policy</field>
524 <field name="type">form</field>
525 <field name="inherit_id" ref="base.res_config_view_base"/>
526 <field name="arch" type="xml">
528 <form position="attributes">
529 <attribute name="string">Sales Configuration</attribute>
531 <separator string="title" position="attributes">
532 <attribute name="string"
533 >Configure Sale Order Logistic</attribute>
535 <xpath expr="//label[@string='description']" position="attributes">
536 <attribute name="string">Setup your sales workflow and default values.</attribute>
538 <xpath expr='//separator[@string="vsep"]' position='attributes'>
539 <attribute name='rowspan'>15</attribute>
540 <attribute name='string'></attribute>
542 <group string="res_config_contents" position="replace">
543 <field name="picking_policy" groups="base.group_extended"/>
545 <field name="order_policy"/>
549 <xpath expr='//button[@name="action_skip"]' position='replace'/>
554 <record id="action_config_picking_policy" model="ir.actions.act_window">
555 <field name="name">Configure Picking Policy for Sale Order</field>
556 <field name="type">ir.actions.act_window</field>
557 <field name="res_model">sale.config.picking_policy</field>
558 <field name="view_id" ref="view_config_picking_policy"/>
559 <field name="view_type">form</field>
560 <field name="view_mode">form</field>
561 <field name="target">new</field>
564 <!-- register configuration wizard -->
565 <record id="config_wizard_step_sale_picking_policy" model="ir.actions.todo">
566 <field name="action_id" ref="action_config_picking_policy"/>
567 <field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>