[IMP] give higher sequence numbers (with wider gaps) to top menu items
[odoo/odoo.git] / addons / point_of_sale / point_of_sale_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4
5         <menuitem name="PoS Backend" id="menu_point_root" sequence="20"
6             icon="terp-partner"
7             groups="group_pos_manager"
8             web_icon="images/pos.png"
9             web_icon_hover="images/pos-hover.png"/>
10
11         <record id="categ_others" model="pos.category">
12             <field name="name">Others</field>
13         </record>
14
15         <record model="ir.ui.view" id="view_pos_pos_form">
16             <field name="name">pos.order</field>
17             <field name="model">pos.order</field>
18             <field name="type">form</field>
19             <field name="arch" type="xml">
20                 <form string="Point of Sale Orders" version="7.0">
21                     <div class="oe_form_topbar">
22                         <button name="%(action_pos_payment)d" string="Payment" icon="gtk-apply" type="action" states="draft" context="{'pos_session_id' : session_id}"/>
23                         <button name="action_invoice" string="Invoice" icon="gtk-apply" type="object" states="paid" attrs="{'readonly': [('partner_id','=',False)]}"/>
24                         <button name="refund" string="Return Products" type="object" icon="gtk-ok"
25                             attrs="{'invisible':[('state','=','draft')]}"/>
26                         <button name="%(action_report_pos_receipt)d" string="Reprint" icon="gtk-print" type="action" states="paid,done,invoiced"/>
27                             <div class="oe_right">
28                                 <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,paid,done" statusbar_colors='{"cancel":"red"}'/>
29                             </div>
30                     </div>
31                     <sheet>
32                     <group col="4" colspan="4">
33                         <field name="name"/>
34                         <field name="date_order"/>
35                         <field name="session_id" required="1" />
36                         <field name="partner_id" on_change="onchange_partner_id(partner_id)" context="{'search_default_customer':1}" attrs="{'readonly': [('state','=','invoiced')]}"/>
37                     </group>
38                     <notebook colspan="4">
39                         <page string="Products">
40                             <field name="lines" colspan="4" nolabel="1">
41                                 <tree string="Order lines" editable="bottom">
42                                     <field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,qty,parent.partner_id)"/>
43                                     <field name="qty" on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
44                                     <field name="price_unit" on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
45                                     <field name="discount"  on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
46                                     <field name="price_subtotal"/>
47                                     <field name="price_subtotal_incl"/>
48                                 </tree>
49                                 <form string="Order lines" version="7.0">
50                                     <group col="4">
51                                         <field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,qty,parent.partner_id)"/>
52                                         <field name="qty" on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
53                                         <field name="discount"  on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
54                                         <field name="price_unit" on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
55                                         <field name="price_subtotal" invisible="1"/>
56                                         <field name="price_subtotal_incl" invisible="1"/>
57                                         <field name="notice"/>
58                                     </group>
59                                 </form>
60                             </field>
61                             <group class="oe_subtotal_footer">
62                                 <field name="amount_tax"/>
63                                 <field name="amount_total"/>
64                                 <button name="button_dummy" string="Update" icon="gtk-execute" states="draft" />
65                             </group>
66                         </page>
67                         <page string="Payments">
68                             <field name="statement_ids" colspan="4" nolabel="1">
69                                 <tree editable="bottom" string="Statement lines">
70                                     <field name="journal_id"/>
71                                     <field name="statement_id" />
72                                     <field name="amount"/>
73                                 </tree>
74                                 <form string="Statement lines" version="7.0">
75                                     <group col="4">
76                                         <field name="account_id"/>
77                                         <field name="amount"/>
78                                         <field name="statement_id" domain="[('company_id','=',parent.company_id),('state','=','open')]"/>
79                                     </group>
80                                 </form>
81                             </field>
82                         </page>
83                         <page string="Extra Info">
84                             <group string="General Information">
85                                 <field name="company_id" groups="base.group_multi_company"/>
86                                 <field name="shop_id" widget="selection"/>
87                                 <field name="user_id"/>
88                                 <field name="pricelist_id" groups="product.group_sale_pricelist" domain="[('type','=','sale')]"/>
89                                 <field name="picking_id" readonly="1"/>
90                             </group>
91                             <group string="Accounting Information">
92                                 <field name="sale_journal" domain="[('type','=','sale')]"/>
93                                 <field name="invoice_id" readonly="1"
94                                     attrs="{'invisible':[('state','&lt;&gt;','invoiced')]}"/>
95                                 <button name="%(pos_invoice_report)d" string="Re-Print"
96                                     icon="gtk-print" type="action" attrs="{'invisible':[('state','&lt;&gt;','invoiced')]}"/>
97                                 <field name="account_move" readonly="1"
98                                     attrs="{'invisible':[('state','&lt;&gt;','done')]}"/>
99                             </group>
100                         </page>
101                         <page string="Notes" >
102                             <field name="note"/>
103                         </page>
104                     </notebook>
105                 </sheet>
106                 </form>
107             </field>
108         </record>
109         <record model="ir.actions.act_window" id="action_pos_pos_form">
110             <field name="name">Orders</field>
111             <field name="type">ir.actions.act_window</field>
112             <field name="res_model">pos.order</field>
113             <field name="view_type">form</field>
114             <field name="view_mode">tree,form</field>
115             <field name="view_id" eval="False"/>
116             <field name="domain">[]</field>
117         </record>
118         <record model="ir.ui.view" id="view_pos_order_tree">
119             <field name="name">Sales</field>
120             <field name="model">pos.order</field>
121             <field name="type">tree</field>
122             <field name="arch" type="xml">
123                 <tree string="POS Orders" colors="blue:state == 'draft';gray:state in ('done','cancel');black:state not in('done','cancel')">
124                     <field name="name"/>
125                     <field name="partner_id"/>
126                     <field name="date_order"/>
127                     <field name="user_id"/>
128                     <field name="invoice_id"/>
129                     <field name="amount_total" sum="Amount total"/>
130                     <field name="company_id" groups="base.group_multi_company"/>
131                     <field name="state"/>
132                 </tree>
133             </field>
134         </record>
135         <record id="view_pos_order_filter" model="ir.ui.view">
136             <field name="name">pos.order.list.select</field>
137             <field name="model">pos.order</field>
138             <field name="type">search</field>
139             <field name="arch" type="xml">
140                 <search string="Search Sales Order">
141                     <field name="name" string="Sales Order"/>
142                     <separator orientation="vertical"/>
143                     <field name="date_order"/>
144                     <separator orientation="vertical"/>
145                     <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/>
146                     <filter icon="gtk-apply" string="Done" domain="[('state','in',('paid','invoiced','done'))]"/>
147                     <filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
148                     <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
149                     <separator orientation="vertical"/>
150                     <field name="user_id"/>
151                     <group expand="0" string="Group By...">
152                         <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
153                         <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
154                         <separator string="" orientation="vertical"/>
155                         <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
156                         <separator string="" orientation="vertical"/>
157                         <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
158                     </group>
159                </search>
160             </field>
161         </record>
162
163         <menuitem name="Daily Operations" id="menu_point_of_sale" parent="menu_point_root" sequence="10" />
164         <menuitem parent="menu_point_of_sale" id="menu_point_ofsale" action="action_pos_pos_form" sequence="1" groups="group_pos_manager,group_pos_user"/>
165         <menuitem name="Products" id="menu_point_of_sale_product" parent="menu_point_root" sequence="15" />
166
167         <record id="product_normal_action" model="ir.actions.act_window">
168             <field name="name">Products</field>
169             <field name="type">ir.actions.act_window</field>
170             <field name="res_model">product.product</field>
171             <field name="view_type">form</field>
172             <field name="view_mode">tree,form,kanban</field>
173             <field name="context" eval="{'default_pos_categ_id': ref('point_of_sale.categ_others')}"/>
174             <field name="view_id" ref="product.product_product_tree_view"/>
175             <field name="search_view_id" ref="product.product_search_form_view"/>
176             <field name="help">You must define a Product for everything you buy or sell. Products can be raw materials, stockable products, consumables or services. The Product form contains detailed information about your products related to procurement logistics, sales price, product category, suppliers and so on.</field>
177         </record>
178         <menuitem
179             action="product_normal_action"
180             id="menu_pos_products"
181             parent="menu_point_of_sale_product" sequence="2"/>
182
183         <record model="ir.ui.view" id="view_pos_order_line">
184             <field name="name">Sale lines</field>
185             <field name="model">pos.order.line</field>
186             <field name="type">tree</field>
187             <field name="arch" type="xml">
188                 <tree string="POS Order lines">
189                     <field name="product_id" readonly="1"/>
190                     <field name="qty" readonly="1" sum="Total qty"/>
191                     <field name="discount" readonly="1"/>
192                     <field name="price_unit" readonly="1"/>
193                     <field name="price_subtotal" readonly="1" sum="Sum of subtotals"/>
194                     <field name="price_subtotal_incl" readonly="1" sum="Sum of subtotals"/>
195                     <field name="create_date" readonly="1"/>
196                 </tree>
197             </field>
198         </record>
199
200         <record model="ir.ui.view" id="view_pos_order_line_form">
201             <field name="name">Sale line</field>
202             <field name="model">pos.order.line</field>
203             <field name="type">form</field>
204             <field name="arch" type="xml">
205                 <form string="POS Order line" version="7.0">
206                     <group col="4">
207                         <field name="product_id" />
208                         <field name="qty" />
209                         <field name="discount" />
210                         <field name="price_unit" />
211                         <field name="create_date" />
212                     </group>
213                 </form>
214             </field>
215         </record>
216
217         <record model="ir.actions.act_window" id="action_pos_order_line">
218             <field name="name">Sale line</field>
219             <field name="type">ir.actions.act_window</field>
220             <field name="res_model">pos.order.line</field>
221             <field name="view_type">form</field>
222             <field name="view_mode">tree</field>
223             <field name="view_id" ref="view_pos_order_line"/>
224         </record>
225
226         <record model="ir.actions.act_window" id="action_pos_order_line_form">
227             <field name="name">Sale line</field>
228             <field name="type">ir.actions.act_window</field>
229             <field name="res_model">pos.order.line</field>
230             <field name="view_type">form</field>
231             <field name="view_mode">form,tree</field>
232             <field name="view_id" ref="view_pos_order_line_form"/>
233         </record>
234
235         <record model="ir.actions.act_window" id="action_pos_order_line_day">
236             <field name="name">Sale line</field>
237             <field name="type">ir.actions.act_window</field>
238             <field name="res_model">pos.order.line</field>
239             <field name="view_type">form</field>
240             <field name="view_mode">tree</field>
241             <field name="view_id" ref="view_pos_order_line"/>
242             <field name="domain">[('create_date', '&gt;=', time.strftime('%Y-%m-%d 00:00:00')),('create_date', '&lt;=', time.strftime('%Y-%m-%d 23:59:59'))]</field>
243         </record>
244
245
246
247         <!-- report -->
248
249         <record model="ir.ui.view" id="view_pos_trans_user_form">
250             <field name="name">report.trans.pos.user.form</field>
251             <field name="model">report.transaction.pos</field>
252             <field name="type">form</field>
253             <field name="arch" type="xml">
254                 <form string="POS " version="7.0">
255                     <group col="4">
256                         <field name="user_id"/>
257                         <field name="journal_id"/>
258                         <field name="jl_id"/>
259                         <field name="date_create" widget="date"/>
260                         <field name="no_trans"/>
261                         <field name="amount"/>
262                         <field name="invoice_id"/>
263                     </group>
264                 </form>
265             </field>
266         </record>
267
268
269         <record model="ir.ui.view" id="view_trans_pos_user_tree">
270             <field name="name">Sales by user</field>
271             <field name="model">report.transaction.pos</field>
272             <field name="type">tree</field>
273             <field name="arch" type="xml">
274                 <tree string="POS">
275                     <field name="date_create" widget="date" />
276                     <field name="user_id"/>
277                     <field name="journal_id"/>
278                     <field name="jl_id"/>
279                     <field name="no_trans" sum="Total Transaction"/>
280                     <field name="amount" sum="Amount total"/>
281                     <field name="product_nb" />
282                     <field name="invoice_id"/>
283                     <field name="disc"/>
284                 </tree>
285             </field>
286         </record>
287
288         <record model="ir.ui.view" id="view_report_transaction_pos_calendar">
289             <field name="name">report.transaction.pos.calendar</field>
290             <field name="model">report.transaction.pos</field>
291             <field name="type">calendar</field>
292             <field eval="2" name="priority"/>
293             <field name="arch" type="xml">
294                 <calendar color="user_id" date_start="date_create" string="POS Report">
295                     <field name="journal_id"/>
296                     <field name="amount"/>
297                 </calendar>
298             </field>
299          </record>
300
301          <record model="ir.ui.view" id="view_report_transaction_pos_graph">
302             <field name="name">report.transaction.pos.graph</field>
303             <field name="model">report.transaction.pos</field>
304             <field name="type">graph</field>
305             <field eval="2" name="priority"/>
306             <field name="arch" type="xml">
307                 <graph  type="bar" string="POS Report">
308                     <field name="user_id" />
309                     <field name="amount"/>
310                     <field group="True" name="journal_id"/>
311                 </graph>
312             </field>
313          </record>
314
315         <record model="ir.actions.act_window" id="action_trans_pos_tree_today">
316             <field name="name">Sales by day</field>
317             <field name="res_model">report.transaction.pos</field>
318             <field name="view_type">form</field>
319             <field name="view_mode">tree,calendar,form,graph</field>
320             <field name="domain">[('date_create','=',time.strftime('%Y-%m-%d'))]</field>
321         </record>
322
323
324         <record model="ir.actions.act_window" id="action_trans_pos_tree_month">
325             <field name="name">Sales by month</field>
326             <field name="res_model">report.transaction.pos</field>
327             <field name="view_type">form</field>
328             <field name="view_mode">tree,calendar,form,graph</field>
329             <field name="domain">[('date_create','like',time.strftime('%Y-%m'))]</field>
330         </record>
331
332
333         <record model="ir.actions.act_window" id="action_trans_pos_tree">
334             <field name="name">Sales by user</field>
335             <field name="res_model">report.transaction.pos</field>
336             <field name="view_type">form</field>
337             <field name="view_mode">tree,calendar,form,graph</field>
338             <field name="view_id" ref="view_trans_pos_user_tree"/>
339         </record>
340
341
342         <record model="ir.ui.view" id="view_report_sales_by_user_pos_form">
343             <field name="name">report.sales.by.user.pos.form</field>
344             <field name="model">report.sales.by.user.pos</field>
345             <field name="type">form</field>
346             <field name="arch" type="xml">
347                 <form string="POS " version="7.0">
348                     <group col="4">
349                         <field name="date_order" widget="date"/>
350                         <field name="qty"/>
351                         <field name="amount"/>
352                         <field name="user_id"/>
353                     </group>
354                 </form>
355             </field>
356         </record>
357
358
359         <record model="ir.ui.view" id="view_report_sales_by_user_pos_tree">
360             <field name="name">report.sales.by.user.pos.tree</field>
361             <field name="model">report.sales.by.user.pos</field>
362             <field name="type">tree</field>
363             <field name="arch" type="xml">
364                 <tree string="POS">
365                     <field name="date_order" widget="date"/>
366                     <field name="qty"/>
367                     <field name="amount"/>
368                     <field name="user_id"/>
369                 </tree>
370             </field>
371         </record>
372
373         <record model="ir.ui.view" id="view_report_sales_by_user_pos_calendar">
374             <field name="name">report.sales.by.user.pos.calendar</field>
375             <field name="model">report.sales.by.user.pos</field>
376             <field name="type">calendar</field>
377             <field eval="2" name="priority"/>
378             <field name="arch" type="xml">
379                 <calendar color="user_id" date_start="date_order" string="POS Report">
380                     <field name="qty"/>
381                     <field name="amount" />
382                 </calendar>
383             </field>
384          </record>
385
386         <record model="ir.ui.view" id="view_report_sales_by_user_pos_graph">
387             <field name="name">report.sales.by.user.pos.graph</field>
388             <field name="model">report.sales.by.user.pos</field>
389             <field name="type">graph</field>
390             <field eval="2" name="priority"/>
391             <field name="arch" type="xml">
392                 <graph  type="bar" string="Sales by User">
393                     <field name="user_id" />
394                     <field name="amount"/>
395                 </graph>
396             </field>
397          </record>
398
399          <record model="ir.actions.act_window" id="action_report_sales_by_user_pos_today">
400             <field name="name">Sales by User</field>
401             <field name="res_model">report.sales.by.user.pos</field>
402             <field name="view_type">form</field>
403             <field name="view_mode">tree,calendar,form,graph</field>
404             <field name="domain">[('date_order','=',time.strftime('%Y-%m-%d'))]</field>
405          </record>
406
407
408         <!-- Sales of user by month -->
409
410         <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_form">
411             <field name="name">report.sales.by.user.pos.month.form</field>
412             <field name="model">report.sales.by.user.pos.month</field>
413             <field name="type">form</field>
414             <field name="arch" type="xml">
415                 <form string="POS " version="7.0">
416                     <group col="4">
417                         <field name="date_order" widget="date"/>
418                         <field name="qty"/>
419                         <field name="amount"/>
420                         <field name="user_id"/>
421                     </group>
422                 </form>
423             </field>
424         </record>
425
426
427         <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_tree">
428             <field name="name">report.sales.by.user.pos.month.tree</field>
429             <field name="model">report.sales.by.user.pos.month</field>
430             <field name="type">tree</field>
431             <field name="arch" type="xml">
432                 <tree string="POS">
433                     <field name="date_order" widget="date"/>
434                     <field name="qty"/>
435                     <field name="amount"/>
436                     <field name="user_id"/>
437                 </tree>
438             </field>
439         </record>
440
441         <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_calendar">
442             <field name="name">report.sales.by.user.pos.month.calendar</field>
443             <field name="model">report.sales.by.user.pos.month</field>
444             <field name="type">calendar</field>
445             <field eval="2" name="priority"/>
446             <field name="arch" type="xml">
447                 <calendar color="user_id" date_start="date_order" string="POS Report">
448                     <field name="qty"/>
449                     <field name="amount" />
450                 </calendar>
451             </field>
452          </record>
453
454         <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_graph">
455             <field name="name">report.sales.by.user.pos.month.graph</field>
456             <field name="model">report.sales.by.user.pos.month</field>
457             <field name="type">graph</field>
458             <field eval="2" name="priority"/>
459             <field name="arch" type="xml">
460                 <graph  type="bar" string="Sales by User">
461                     <field name="user_id" />
462                     <field name="amount"/>
463                 </graph>
464             </field>
465          </record>
466
467
468          <record model="ir.actions.act_window" id="action_report_sales_by_user_pos_month">
469             <field name="name">Sales by User Monthly</field>
470             <field name="res_model">report.sales.by.user.pos.month</field>
471             <field name="view_type">form</field>
472             <field name="view_mode">tree,calendar,form,graph</field>
473             <field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
474         </record>
475
476         <!-- Sales by margin -->
477
478         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_form">
479             <field name="name">report.sales.by.margin.pos.form</field>
480             <field name="model">report.sales.by.margin.pos</field>
481             <field name="type">form</field>
482             <field name="arch" type="xml">
483                 <form string="POS " version="7.0">
484                     <group col="4">
485                         <field name="user_id"/>
486                         <field name="product_name"/>
487                         <field name="date_order" widget="date"/>
488                         <field name="qty"/>
489                         <field name="net_margin_per_qty"/>
490                         <field name="total"/>
491                     </group>
492                 </form>
493             </field>
494         </record>
495
496
497         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_tree">
498             <field name="name">report.sales.by.margin.pos.tree</field>
499             <field name="model">report.sales.by.margin.pos</field>
500             <field name="type">tree</field>
501             <field name="arch" type="xml">
502                 <tree string="POS">
503                     <field name="user_id"/>
504                     <field name="product_name"/>
505                     <field name="date_order" widget="date"/>
506                     <field name="qty"/>
507                     <field name="net_margin_per_qty"/>
508                     <field name="total"/>
509                 </tree>
510             </field>
511         </record>
512
513         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_calendar">
514             <field name="name">report.sales.by.margin.pos.calendar</field>
515             <field name="model">report.sales.by.margin.pos</field>
516             <field name="type">calendar</field>
517             <field eval="2" name="priority"/>
518             <field name="arch" type="xml">
519                 <calendar color="user_id" date_start="date_order" string="Sales by User Margin">
520                     <field name="product_name"/>
521                     <field name="total" />
522                 </calendar>
523             </field>
524          </record>
525
526         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_graph">
527             <field name="name">report.sales.by.margin.pos.graph</field>
528             <field name="model">report.sales.by.margin.pos</field>
529             <field name="type">graph</field>
530             <field eval="2" name="priority"/>
531             <field name="arch" type="xml">
532                 <graph  type="bar" string="Sales by User Margin" orientation="horizontal">
533                     <field name="product_name" />
534                     <field name="total" operator="+"/>
535                 </graph>
536             </field>
537          </record>
538
539         <record model="ir.actions.act_window" id="action_report_sales_by_margin_pos_today">
540             <field name="name">Sales by User Daily margin</field>
541             <field name="res_model">report.sales.by.margin.pos</field>
542             <field name="view_type">form</field>
543             <field name="view_mode">tree,calendar,form,graph</field>
544             <field name="domain">[('date_order','=',time.strftime('%Y-%m-%d'))]</field>
545          </record>
546
547          <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_form">
548             <field name="name">report.sales.by.margin.pos.month.form</field>
549             <field name="model">report.sales.by.margin.pos.month</field>
550             <field name="type">form</field>
551             <field name="arch" type="xml">
552                 <form string="POS " version="7.0">
553                     <group col="4">
554                         <field name="user_id"/>
555                         <field name="product_name"/>
556                         <field name="date_order" widget="date"/>
557                         <field name="qty"/>
558                         <field name="net_margin_per_qty"/>
559                         <field name="total"/>
560                     </group>
561                 </form>
562             </field>
563         </record>
564
565
566         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_tree">
567             <field name="name">report.sales.by.margin.pos.month.tree</field>
568             <field name="model">report.sales.by.margin.pos.month</field>
569             <field name="type">tree</field>
570             <field name="arch" type="xml">
571                 <tree string="POS">
572                     <field name="user_id"/>
573                     <field name="product_name"/>
574                     <field name="date_order" widget="date"/>
575                     <field name="qty"/>
576                     <field name="net_margin_per_qty"/>
577                     <field name="total"/>
578                 </tree>
579             </field>
580         </record>
581
582         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_calendar">
583             <field name="name">report.sales.by.margin.pos.month.calendar</field>
584             <field name="model">report.sales.by.margin.pos.month</field>
585             <field name="type">calendar</field>
586             <field eval="2" name="priority"/>
587             <field name="arch" type="xml">
588                 <calendar color="user_id" date_start="date_order" string="Sales by User Margin">
589                     <field name="product_name"/>
590                     <field name="total" />
591                 </calendar>
592             </field>
593          </record>
594
595         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_graph">
596             <field name="name">report.sales.by.margin.pos.month.graph</field>
597             <field name="model">report.sales.by.margin.pos.month</field>
598             <field name="type">graph</field>
599             <field eval="2" name="priority"/>
600             <field name="arch" type="xml">
601                 <graph  type="bar" string="Sales by User Margin" orientation="horizontal">
602                     <field name="product_name" />
603                     <field name="total" operator="+"/>
604                 </graph>
605             </field>
606          </record>
607
608          <record model="ir.actions.act_window" id="action_report_sales_by_margin_pos_month">
609             <field name="name">Sales by User Monthly margin</field>
610             <field name="res_model">report.sales.by.margin.pos.month</field>
611             <field name="view_type">form</field>
612             <field name="view_mode">tree,calendar,form,graph</field>
613             <field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
614         </record>
615
616         <record id="product_normal_form_pos_view" model="ir.ui.view">
617             <field name="name">product.normal.pos.form.inherit</field>
618             <field name="model">product.product</field>
619             <field name="type">form</field>
620             <field name="inherit_id" ref="product.product_normal_form_view"/>
621             <field name="arch" type="xml">
622                   <group name="status" position="after">
623                       <group name="pos" string="Point of Sale">
624                           <field name="pos_categ_id"/>
625                           <field name="to_weight" />
626                       </group>
627                   </group>
628             </field>
629         </record>
630
631
632         <record id="product_normal_form_view" model="ir.ui.view">
633             <field name="name">product.normal.form.inherit</field>
634             <field name="model">product.product</field>
635             <field name="type">form</field>
636             <field name="inherit_id" ref="product.product_normal_form_view"/>
637             <field name="arch" type="xml">
638                 <group name="misc" position="after">
639                     <group name="pos" colspan="2" col="2">
640                         <separator string="Point of Sale" colspan="2"/>
641                         <field name="income_pdt"/>
642                         <field name="expense_pdt"/>
643                     </group>
644                 </group>
645             </field>
646         </record>
647
648         <!-- Categories tree view -->
649         <record id="pos_category_form_view" model="ir.ui.view">
650             <field name="name">pos.category.form</field>
651             <field name="model">pos.category</field>
652             <field name="type">form</field>
653             <field name="arch" type="xml">
654                 <form string="Product PoS Categories" version="7.0">
655                     <sheet>
656                         <field name="category_image" widget='image' class="oe_avatar oe_right"/>
657                         <div class="oe_left">
658                             <group>
659                                 <field name="name"/>
660                                 <field name="parent_id"/>
661                                 <field name="sequence"/>
662                             </group>
663                         </div>
664                     </sheet>
665                 </form>
666             </field>
667         </record>
668         <record id="pos_category_tree_view" model="ir.ui.view">
669             <field name="name">pos.category.tree</field>
670             <field name="model">pos.category</field>
671             <field name="type">tree</field>
672             <field name="field_parent" eval="False"/>
673             <field name="arch" type="xml">
674                 <tree string="Product PoS Categories">
675                     <field name="sequence" invisible="1"/>
676                     <field name="complete_name"/>
677                 </tree>
678             </field>
679         </record>
680         <record id="pos_category_action" model="ir.actions.act_window">
681             <field name="name">Product Categories</field>
682             <field name="type">ir.actions.act_window</field>
683             <field name="res_model">pos.category</field>
684             <field name="view_type">form</field>
685             <field name="view_mode">tree,form</field>
686             <field name="view_id" eval="False"/>
687         </record>
688         <menuitem action="pos_category_action" id="menu_pos_category" parent="menu_point_of_sale_product" sequence="0" />
689         <!-- END -->
690
691         <menuitem name="Configuration" parent="menu_point_root"
692             id="menu_point_config_product" sequence="25" groups="group_pos_manager"/>
693
694         <record id="action_account_journal_form" model="ir.actions.act_window">
695             <field name="name">Payment Methods</field>
696             <field name="res_model">account.journal</field>
697             <field name="view_type">form</field>
698             <field name="view_mode">tree,form</field>
699             <field name="context" eval="{'default_journal_user': 1, 'default_type': 'cash'}"/>
700             <field name="domain">[('journal_user','=', 1)]</field>
701             <field name="help">Payment methods are defined by accounting journals having the field Payment Method checked.</field>
702         </record>
703
704         <menuitem action="action_account_journal_form"
705             id="menu_action_account_journal_form_open"
706             parent="menu_point_config_product"
707             sequence="20"/>
708
709         <record model="ir.ui.view" id="view_pos_order_tree_all_sales_lines">
710             <field name="name">POS Sales Lines</field>
711             <field name="model">pos.order.line</field>
712             <field name="type">tree</field>
713             <field name="arch" type="xml">
714                 <tree string="POS Orders lines">
715                     <field name="order_id" />
716                     <field name="create_date" />
717                     <field name="product_id" />
718                     <field name="qty" />
719                     <field name="price_unit" />
720                 </tree>
721             </field>
722         </record>
723          <record model="ir.actions.act_window" id="action_pos_all_sales_lines">
724             <field name="name">All sales lines</field>
725             <field name="type">ir.actions.act_window</field>
726             <field name="res_model">pos.order.line</field>
727             <field name="view_type">form</field>
728             <field name="view_id" ref="view_pos_order_tree_all_sales_lines" />
729         </record>
730
731         <!--  Miscellaneous Operations/Reporting -->
732         <menuitem name="Point of Sale" parent="base.menu_reporting" id="menu_point_rep" sequence="50" groups="group_pos_manager"/>
733         <!-- Invoice -->
734
735         <record model="ir.actions.act_window" id="action_pos_invoice">
736             <field name="name">Invoices</field>
737             <field name="type">ir.actions.act_window</field>
738             <field name="res_model">account.invoice</field>
739             <field name="view_type">form</field>
740             <field name="view_mode">tree,form</field>
741             <field name="domain">[('origin','like','POS')]</field>
742         </record>
743
744         <menuitem icon="STOCK_PRINT" action="action_report_pos_details"
745                 id="menu_pos_details" parent="menu_point_rep" sequence="6" />
746
747         <record model="ir.actions.client" id="action_pos_pos">
748             <field name="name">Start Point of Sale</field>
749             <field name="tag">pos.ui</field>
750         </record>
751
752         <!--
753             right now it's not possible to directly call a client action
754             from a menuitem, so we can't use this shortcut element and
755             use an explicit record element instead
756         -->
757         <record id="menu_point_root_touchscreen" model="ir.ui.menu">
758             <field name="name">Point of Sale</field>
759             <field name="sequence">160</field>
760             <field name="action" ref="action_pos_pos"/>
761         </record>
762
763         <!-- use menuitem to add web_icon and web_icon_hover above -->
764         <menuitem id="menu_point_root_touchscreen"
765             web_icon="images/pos.png" web_icon_hover="images/pos-hover.png" groups="point_of_sale.group_pos_manager,point_of_sale.group_pos_user"/>
766
767         <record model="ir.ui.view" id="view_pos_config_form">
768             <field name="name">pos.config.form.view</field>
769             <field name="model">pos.config</field>
770             <field name="type">form</field>
771             <field name="arch" type="xml">
772                 <form string="Point of Sale Configuration" version="7.0">
773                     <header>
774                         <button string="Set to Active" name="set_active" type="object" states="inactive,deprecated"/>
775                         <button string="Set to Inactive" name="set_inactive" type="object" states="active" />
776                         <button string="Set to Deprecated" name="set_deprecate" type="object" states="active,inactive" />
777                         <div class="oe_right">
778                             <field name="state" widget="statusbar" statusbar_visible="active,inactive,deprecated" statusbar_colors='{"deprecated" : "red"}' nolabel="1"/>
779                         </div>
780                     </header>
781
782                     <sheet>
783                         <group>
784                         <field name="name"/>
785                         <field name="shop_id" widget="selection" />
786                         <field name="journal_id" widget="selection" />
787                         <field name="sequence_id" readonly="1"/>
788                         <field name="group_by" />
789                         </group>
790                         <separator string="Available Payment Methods" colspan="4"/>
791                         <field name="journal_ids" colspan="4" nolabel="1">
792                             <tree string="Journals">
793                                 <field name="code" />
794                                 <field name="name" />
795                                 <field name="type" />
796                                 <field name="opening_control" />
797                                 <field name="closing_control" />
798                             </tree>
799                         </field>
800                         <group string="Material Interfaces" >
801                             <group>
802                                 <field name="iface_self_checkout" />
803                                 <field name="iface_websql" />
804                                 <field name="iface_led" />
805                                 <field name="iface_cashdrawer" />
806                                 <field name="iface_payment_terminal" />
807                             </group>
808                             <group>
809                                 <field name="iface_electronic_scale" />
810                                 <field name="iface_barscan" />
811                                 <field name="iface_vkeyboard" />
812                                 <field name="iface_print_via_proxy" />
813                             </group>
814                         </group>
815                     </sheet>
816
817                 </form>
818             </field>
819         </record>
820
821         <record model="ir.ui.view" id="view_pos_config_tree">
822             <field name="name">pos.config.tree.view</field>
823             <field name="model">pos.config</field>
824             <field name="type">tree</field>
825             <field name="arch" type="xml">
826                 <tree string="Point of Sale Configuration" colors="grey:state == 'inactive'">
827                     <field name="name" />
828                     <field name="shop_id" />
829                     <field name="state" />
830                 </tree>
831             </field>
832         </record>
833
834         <record model="ir.ui.view" id="view_pos_config_search">
835             <field name="name">pos.config.search.view</field>
836             <field name="model">pos.config</field>
837             <field name="type">search</field>
838             <field name="arch" type="xml">
839                 <search string="Point of Sale Config">
840                     <filter string="Active" domain="[('state', '=', 'active')]" />
841                     <filter string="Inactive" domain="[('state', '=', 'inactive')]" />
842                     <separator orientation="vertical"/>
843                     <field name="name" />
844                     <field name="shop_id" />
845
846                 </search>
847             </field>
848         </record>
849
850
851         <act_window
852             id="act_pos_config_sessions"
853             name="Sessions"
854             src_model="pos.config"
855             res_model="pos.session"
856             domain="[('config_id', '=', active_id)]" />
857
858         <record model="ir.actions.act_window" id="action_pos_config_pos">
859             <field name="name">Point of Sales</field>
860             <field name="type">ir.actions.act_window</field>
861             <field name="res_model">pos.config</field>
862             <field name="view_type">form</field>
863             <field name="view_mode">tree,form</field>
864             <field name="search_view_id" ref="view_pos_config_search" />
865         </record>
866
867         <menuitem
868             parent="menu_point_config_product"
869             action="action_pos_config_pos"
870             id="menu_pos_config_pos"
871             groups="group_pos_manager"/>
872
873         <act_window
874             id="act_pos_session_orders"
875             name="Orders"
876             src_model="pos.session"
877             res_model="pos.order"
878             context="{'search_default_session_id': active_id, 'default_session_id' : active_id }" />
879
880
881
882         <record model="ir.ui.view" id="view_pos_session_form">
883             <field name="name">pos.session.form.view</field>
884             <field name="model">pos.session</field>
885             <field name="type">form</field>
886             <field name="arch" type="xml">
887                 <form string="Point of Sale Session" version="7.0">
888                     <header>
889                         <button name="open" type="workflow" string="Validate &amp; Open Session" states="opening_control" />
890                         <button name="cashbox_control" type="workflow" string="End of Session" states="opened" />
891                         <button name="close" type="workflow" string="Validate &amp; Close" states="closing_control,opened" />
892
893                         <div class="oe_right">
894                             <field name="state" widget="statusbar" statusbar_visible="opening_control,opened,closing_control,closed" nolabel="1"/>
895                         </div>
896                     </header>
897                     <sheet>
898
899                     <group>
900                         <field name="config_id"/>
901                         <field name="has_opening_control" invisible="1" />
902                         <field name="has_closing_control" invisible="1" />
903                                 <group>
904                                         <button name="%(action_pos_box_in)d" string="Put Money In" type="action" states="opened"/>
905                                         <button name="%(action_pos_box_out)d" string="Take Money Out" type="action" states="opened"/>
906                             <button name="open_frontend_cb" type="object" string="Open Point Of Sale" states="opened" />
907                                 </group>
908                         <newline/>
909                         <field name="user_id" />
910                         <field name="name" />
911                         <newline/>
912                         <field name="start_at" attrs="{'insivible' : [('state', '=', 'opening_control')]}"/>
913                         <field name="stop_at" attrs="{'insivible' : [('state', '=', 'opening_control')]}"/>
914                         <separator string="Cash Control" colspan="4"/>
915                             <field name="cash_register_id" invisible="1" />
916                             <field name="opening_details_ids" colspan="4" nolabel="1" attrs="{'invisible' : [('state', 'not in', ('opening_control',))]}">
917                                 <tree string="Opening Cashbox Lines" editable="bottom">
918                                     <field name="pieces" readonly="1" />
919                                     <field name="number_opening" string="Opening Unit Numbers" on_change="on_change_sub_opening(pieces, number_opening, parent.balance_end)" />
920                                     <field name="subtotal_opening" string="Opening Subtotal" sum="Total"/>
921                                 </tree>
922                             </field>
923
924                             <field name="details_ids" colspan="4" nolabel="1" attrs="{'invisible': [('state', '=', 'opening_control')]}">
925                                 <tree string="Cashbox Lines" editable="bottom">
926                                     <field name="pieces" readonly="1" />
927                                     <field name="number_opening" readonly="1"/>
928                                     <field name="subtotal_opening"/>
929                                     <field name="number_closing"/>
930                                     <field name="subtotal_closing"/>
931                                 </tree>
932                             </field>
933
934
935                             <group col="4" colspan="4">
936                                 <group col="2" colspan="2">
937                                     <separator string="Cash Balance" colspan="2"/>
938                                     <field name="cash_register_balance_start" readonly="1" string="Opening Cash Control"/>
939                                     <field name="cash_register_total_entry_encoding"  attrs="{'invisible' : [('state', '=', 'opening_control')]}" string="+ Transactions"/>
940                                     <field name="cash_register_balance_end" attrs="{'invisible' : [('state', '=', 'opening_control')]}" string="= Theorical Cash Closing"/>
941                                 </group>
942                                 <group col="2" colspan="2" attrs="{'invisible' : [('state', '=', 'opening_control')]}">
943                                     <separator string="Cash Closing Balance" colspan="2"/>
944                                     <field name="cash_register_balance_end_real"/>
945                                     <field name="cash_register_difference" />
946                                 </group>
947                             </group>
948
949                             <separator string="Summary by Payment Methods" colspan="4" attrs="{'invisible' : [('state', '=', 'opening_control')]}"/>
950                             <field name="statement_ids" colspan="4" nolabel="1" attrs="{'invisible' : [('state', '=', 'opening_control')]}">
951                                 <tree string="Statements">
952                                     <field name="name" />
953                                     <field name="journal_id" />
954                                     <field name="balance_start" />
955                                     <field name="total_entry_encoding" />
956                                     <field name="balance_end_real" />
957                                     <field name="difference" />
958                                     <field name="currency" />
959                                     <field name="state" />
960                                 </tree>
961                             </field>
962                         </group>
963
964                     </sheet>
965                 </form>
966             </field>
967         </record>
968
969         <record model="ir.ui.view" id="view_pos_session_tree">
970             <field name="name">pos.session.tree.view</field>
971             <field name="model">pos.session</field>
972             <field name="type">tree</field>
973             <field name="arch" type="xml">
974                 <tree string="Point of Sale Session">
975                     <field name="config_id" />
976                     <field name="name" />
977                     <field name="user_id" />
978                     <field name="start_at" />
979                     <field name="stop_at" />
980                 </tree>
981             </field>
982         </record>
983
984         <record model="ir.ui.view" id="view_pos_session_search">
985             <field name="name">pos.session.search.view</field>
986             <field name="model">pos.session</field>
987             <field name="type">search</field>
988             <field name="arch" type="xml">
989                 <search string="Point of Sale Session">
990                     <filter string="Open" domain="[('state', '=', 'opened')]" />
991                     <separator orientation="vertical"/>
992                     <filter string="Today" domain="[('start_at', '>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" />
993                     <separator orientation="vertical"/>
994                     <field name="config_id" />
995                     <field name="name" />
996                     <field name="user_id" />
997
998                     <newline />
999                     <group expand="0" string="Group By...">
1000                         <filter string="User" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
1001                         <filter string="Point of Sales" domain="[]" context="{'group_by': 'user_id'}" />
1002                     </group>
1003                 </search>
1004             </field>
1005         </record>
1006
1007
1008         <record model="ir.actions.act_window" id="action_pos_session">
1009             <field name="name">All Sessions</field>
1010             <field name="type">ir.actions.act_window</field>
1011             <field name="res_model">pos.session</field>
1012             <field name="view_type">form</field>
1013             <field name="view_mode">tree,form</field>
1014             <field name="search_view_id" ref="view_pos_session_search" />
1015         </record>
1016
1017         <menuitem
1018             parent="menu_point_rep"
1019             action="action_pos_session"
1020             id="menu_pos_session"
1021             sequence="0"
1022             groups="group_pos_manager"/>
1023
1024         <menuitem
1025             parent="menu_point_of_sale"
1026             action="action_pos_session"
1027             id="menu_pos_session_all"
1028             sequence="0"
1029             groups="group_pos_manager"/>
1030
1031         <record id="view_pos_order_filter" model="ir.ui.view">
1032             <field name="name">pos.order.list.select</field>
1033             <field name="model">pos.order</field>
1034             <field name="type">search</field>
1035             <field name="arch" type="xml">
1036                 <search string="Search Sales Order">
1037                     <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/>
1038                     <filter icon="gtk-apply" string="Done" domain="[('state','in',('paid','invoiced','done'))]"/>
1039                     <separator orientation="vertical"/>
1040                     <filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
1041                     <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
1042                     <separator orientation="vertical"/>
1043                     <field name="name"/>
1044                     <field name="user_id"/>
1045                     <field name="date_order"/>
1046                     <field name="session_id"/>
1047                     <newline/>
1048                     <group expand="0" string="Group By..." groups="base.group_extended">
1049                         <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
1050                         <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
1051                         <filter string="Session" icon="terp-personal" domain="[]" context="{'group_by':'session_id'}"/>
1052                         <separator string="" orientation="vertical"/>
1053                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
1054                         <separator string="" orientation="vertical"/>
1055                         <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
1056                     </group>
1057                </search>
1058             </field>
1059         </record>
1060
1061         <menuitem action="action_pos_session_opening" parent="menu_point_of_sale" id="menu_pos_session_opening" sequence="0" />
1062
1063     </data>
1064 </openerp>