[MERGE] latust trunk
[odoo/odoo.git] / addons / point_of_sale / point_of_sale_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4
5         <!-- Top menu item -->
6         <menuitem name="Point of Sale"
7             id="menu_point_root"
8             groups="group_pos_manager,group_pos_user"
9             sequence="140"/>
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                     <field name="date_order"/>
143                     <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/>
144                     <filter icon="gtk-apply" string="Done" domain="[('state','in',('paid','invoiced','done'))]"/>
145                     <filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
146                     <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
147                     <field name="user_id"/>
148                     <group expand="0" string="Group By...">
149                         <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
150                         <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
151                         <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
152                         <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
153                     </group>
154                 </search>
155             </field>
156         </record>
157
158         <menuitem name="Daily Operations" id="menu_point_of_sale" parent="menu_point_root" sequence="10"/>
159         <menuitem parent="menu_point_of_sale" id="menu_point_ofsale" action="action_pos_pos_form" sequence="2" groups="group_pos_manager,group_pos_user"/>
160         <menuitem name="Products" id="menu_point_of_sale_product" parent="menu_point_root" sequence="15" />
161
162         <record id="product_normal_action" model="ir.actions.act_window">
163             <field name="name">Products</field>
164             <field name="type">ir.actions.act_window</field>
165             <field name="res_model">product.product</field>
166             <field name="view_type">form</field>
167             <field name="view_mode">tree,form,kanban</field>
168             <field name="context" eval="{'default_pos_categ_id': ref('point_of_sale.categ_others')}"/>
169             <field name="view_id" ref="product.product_product_tree_view"/>
170             <field name="search_view_id" ref="product.product_search_form_view"/>
171             <field name="help" type="html">
172               <p class="oe_view_nocontent_create">
173                 Click to add a new product.
174               </p><p>
175                 You must define a product for everything you sell through
176                 the point of sale interface.
177               </p><p>
178                 Do not forget to set the price and the point of sale category
179                 in which it should appear. If a product has no point of sale
180                 category, you can not sell it through the point of sale
181                 interface.
182               </p>
183             </field>
184         </record>
185         <menuitem
186             action="product_normal_action"
187             id="menu_pos_products"
188             parent="menu_point_of_sale_product" sequence="2"/>
189
190         <record model="ir.ui.view" id="view_pos_order_line">
191             <field name="name">Sale lines</field>
192             <field name="model">pos.order.line</field>
193             <field name="type">tree</field>
194             <field name="arch" type="xml">
195                 <tree string="POS Order lines">
196                     <field name="product_id" readonly="1"/>
197                     <field name="qty" readonly="1" sum="Total qty"/>
198                     <field name="discount" readonly="1"/>
199                     <field name="price_unit" readonly="1"/>
200                     <field name="price_subtotal" readonly="1" sum="Sum of subtotals"/>
201                     <field name="price_subtotal_incl" readonly="1" sum="Sum of subtotals"/>
202                     <field name="create_date" readonly="1"/>
203                 </tree>
204             </field>
205         </record>
206
207         <record model="ir.ui.view" id="view_pos_order_line_form">
208             <field name="name">Sale line</field>
209             <field name="model">pos.order.line</field>
210             <field name="type">form</field>
211             <field name="arch" type="xml">
212                 <form string="POS Order line" version="7.0">
213                     <group col="4">
214                         <field name="product_id" />
215                         <field name="qty" />
216                         <field name="discount" />
217                         <field name="price_unit" />
218                         <field name="create_date" />
219                     </group>
220                 </form>
221             </field>
222         </record>
223
224         <record model="ir.actions.act_window" id="action_pos_order_line">
225             <field name="name">Sale line</field>
226             <field name="type">ir.actions.act_window</field>
227             <field name="res_model">pos.order.line</field>
228             <field name="view_type">form</field>
229             <field name="view_mode">tree</field>
230             <field name="view_id" ref="view_pos_order_line"/>
231         </record>
232
233         <record model="ir.actions.act_window" id="action_pos_order_line_form">
234             <field name="name">Sale line</field>
235             <field name="type">ir.actions.act_window</field>
236             <field name="res_model">pos.order.line</field>
237             <field name="view_type">form</field>
238             <field name="view_mode">form,tree</field>
239             <field name="view_id" ref="view_pos_order_line_form"/>
240         </record>
241
242         <record model="ir.actions.act_window" id="action_pos_order_line_day">
243             <field name="name">Sale line</field>
244             <field name="type">ir.actions.act_window</field>
245             <field name="res_model">pos.order.line</field>
246             <field name="view_type">form</field>
247             <field name="view_mode">tree</field>
248             <field name="view_id" ref="view_pos_order_line"/>
249             <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>
250         </record>
251
252
253
254         <!-- report -->
255
256         <record model="ir.ui.view" id="view_pos_trans_user_form">
257             <field name="name">report.trans.pos.user.form</field>
258             <field name="model">report.transaction.pos</field>
259             <field name="type">form</field>
260             <field name="arch" type="xml">
261                 <form string="POS " version="7.0">
262                     <group col="4">
263                         <field name="user_id"/>
264                         <field name="journal_id"/>
265                         <field name="jl_id"/>
266                         <field name="date_create" widget="date"/>
267                         <field name="no_trans"/>
268                         <field name="amount"/>
269                         <field name="invoice_id"/>
270                     </group>
271                 </form>
272             </field>
273         </record>
274
275
276         <record model="ir.ui.view" id="view_trans_pos_user_tree">
277             <field name="name">Sales by user</field>
278             <field name="model">report.transaction.pos</field>
279             <field name="type">tree</field>
280             <field name="arch" type="xml">
281                 <tree string="POS">
282                     <field name="date_create" widget="date" />
283                     <field name="user_id"/>
284                     <field name="journal_id"/>
285                     <field name="jl_id"/>
286                     <field name="no_trans" sum="Total Transaction"/>
287                     <field name="amount" sum="Amount total"/>
288                     <field name="product_nb" />
289                     <field name="invoice_id"/>
290                     <field name="disc"/>
291                 </tree>
292             </field>
293         </record>
294
295         <record model="ir.ui.view" id="view_report_transaction_pos_calendar">
296             <field name="name">report.transaction.pos.calendar</field>
297             <field name="model">report.transaction.pos</field>
298             <field name="type">calendar</field>
299             <field eval="2" name="priority"/>
300             <field name="arch" type="xml">
301                 <calendar color="user_id" date_start="date_create" string="POS Report">
302                     <field name="journal_id"/>
303                     <field name="amount"/>
304                 </calendar>
305             </field>
306          </record>
307
308          <record model="ir.ui.view" id="view_report_transaction_pos_graph">
309             <field name="name">report.transaction.pos.graph</field>
310             <field name="model">report.transaction.pos</field>
311             <field name="type">graph</field>
312             <field eval="2" name="priority"/>
313             <field name="arch" type="xml">
314                 <graph  type="bar" string="POS Report">
315                     <field name="user_id" />
316                     <field name="amount"/>
317                     <field group="True" name="journal_id"/>
318                 </graph>
319             </field>
320          </record>
321
322         <record model="ir.actions.act_window" id="action_trans_pos_tree_today">
323             <field name="name">Sales by day</field>
324             <field name="res_model">report.transaction.pos</field>
325             <field name="view_type">form</field>
326             <field name="view_mode">tree,calendar,form,graph</field>
327             <field name="domain">[('date_create','=',time.strftime('%Y-%m-%d'))]</field>
328         </record>
329
330
331         <record model="ir.actions.act_window" id="action_trans_pos_tree_month">
332             <field name="name">Sales by month</field>
333             <field name="res_model">report.transaction.pos</field>
334             <field name="view_type">form</field>
335             <field name="view_mode">tree,calendar,form,graph</field>
336             <field name="domain">[('date_create','like',time.strftime('%Y-%m'))]</field>
337         </record>
338
339
340         <record model="ir.actions.act_window" id="action_trans_pos_tree">
341             <field name="name">Sales by user</field>
342             <field name="res_model">report.transaction.pos</field>
343             <field name="view_type">form</field>
344             <field name="view_mode">tree,calendar,form,graph</field>
345             <field name="view_id" ref="view_trans_pos_user_tree"/>
346         </record>
347
348
349         <record model="ir.ui.view" id="view_report_sales_by_user_pos_form">
350             <field name="name">report.sales.by.user.pos.form</field>
351             <field name="model">report.sales.by.user.pos</field>
352             <field name="type">form</field>
353             <field name="arch" type="xml">
354                 <form string="POS " version="7.0">
355                     <group col="4">
356                         <field name="date_order" widget="date"/>
357                         <field name="qty"/>
358                         <field name="amount"/>
359                         <field name="user_id"/>
360                     </group>
361                 </form>
362             </field>
363         </record>
364
365
366         <record model="ir.ui.view" id="view_report_sales_by_user_pos_tree">
367             <field name="name">report.sales.by.user.pos.tree</field>
368             <field name="model">report.sales.by.user.pos</field>
369             <field name="type">tree</field>
370             <field name="arch" type="xml">
371                 <tree string="POS">
372                     <field name="date_order" widget="date"/>
373                     <field name="qty"/>
374                     <field name="amount"/>
375                     <field name="user_id"/>
376                 </tree>
377             </field>
378         </record>
379
380         <record model="ir.ui.view" id="view_report_sales_by_user_pos_calendar">
381             <field name="name">report.sales.by.user.pos.calendar</field>
382             <field name="model">report.sales.by.user.pos</field>
383             <field name="type">calendar</field>
384             <field eval="2" name="priority"/>
385             <field name="arch" type="xml">
386                 <calendar color="user_id" date_start="date_order" string="POS Report">
387                     <field name="qty"/>
388                     <field name="amount" />
389                 </calendar>
390             </field>
391          </record>
392
393         <record model="ir.ui.view" id="view_report_sales_by_user_pos_graph">
394             <field name="name">report.sales.by.user.pos.graph</field>
395             <field name="model">report.sales.by.user.pos</field>
396             <field name="type">graph</field>
397             <field eval="2" name="priority"/>
398             <field name="arch" type="xml">
399                 <graph  type="bar" string="Sales by User">
400                     <field name="user_id" />
401                     <field name="amount"/>
402                 </graph>
403             </field>
404          </record>
405
406          <record model="ir.actions.act_window" id="action_report_sales_by_user_pos_today">
407             <field name="name">Sales by User</field>
408             <field name="res_model">report.sales.by.user.pos</field>
409             <field name="view_type">form</field>
410             <field name="view_mode">tree,calendar,form,graph</field>
411             <field name="domain">[('date_order','=',time.strftime('%Y-%m-%d'))]</field>
412          </record>
413
414
415         <!-- Sales of user by month -->
416
417         <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_form">
418             <field name="name">report.sales.by.user.pos.month.form</field>
419             <field name="model">report.sales.by.user.pos.month</field>
420             <field name="type">form</field>
421             <field name="arch" type="xml">
422                 <form string="POS " version="7.0">
423                     <group col="4">
424                         <field name="date_order" widget="date"/>
425                         <field name="qty"/>
426                         <field name="amount"/>
427                         <field name="user_id"/>
428                     </group>
429                 </form>
430             </field>
431         </record>
432
433
434         <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_tree">
435             <field name="name">report.sales.by.user.pos.month.tree</field>
436             <field name="model">report.sales.by.user.pos.month</field>
437             <field name="type">tree</field>
438             <field name="arch" type="xml">
439                 <tree string="POS">
440                     <field name="date_order" widget="date"/>
441                     <field name="qty"/>
442                     <field name="amount"/>
443                     <field name="user_id"/>
444                 </tree>
445             </field>
446         </record>
447
448         <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_calendar">
449             <field name="name">report.sales.by.user.pos.month.calendar</field>
450             <field name="model">report.sales.by.user.pos.month</field>
451             <field name="type">calendar</field>
452             <field eval="2" name="priority"/>
453             <field name="arch" type="xml">
454                 <calendar color="user_id" date_start="date_order" string="POS Report">
455                     <field name="qty"/>
456                     <field name="amount" />
457                 </calendar>
458             </field>
459          </record>
460
461         <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_graph">
462             <field name="name">report.sales.by.user.pos.month.graph</field>
463             <field name="model">report.sales.by.user.pos.month</field>
464             <field name="type">graph</field>
465             <field eval="2" name="priority"/>
466             <field name="arch" type="xml">
467                 <graph  type="bar" string="Sales by User">
468                     <field name="user_id" />
469                     <field name="amount"/>
470                 </graph>
471             </field>
472          </record>
473
474
475          <record model="ir.actions.act_window" id="action_report_sales_by_user_pos_month">
476             <field name="name">Sales by User Monthly</field>
477             <field name="res_model">report.sales.by.user.pos.month</field>
478             <field name="view_type">form</field>
479             <field name="view_mode">tree,calendar,form,graph</field>
480             <field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
481         </record>
482
483         <!-- Sales by margin -->
484
485         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_form">
486             <field name="name">report.sales.by.margin.pos.form</field>
487             <field name="model">report.sales.by.margin.pos</field>
488             <field name="type">form</field>
489             <field name="arch" type="xml">
490                 <form string="POS " version="7.0">
491                     <group col="4">
492                         <field name="user_id"/>
493                         <field name="product_name"/>
494                         <field name="date_order" widget="date"/>
495                         <field name="qty"/>
496                         <field name="net_margin_per_qty"/>
497                         <field name="total"/>
498                     </group>
499                 </form>
500             </field>
501         </record>
502
503
504         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_tree">
505             <field name="name">report.sales.by.margin.pos.tree</field>
506             <field name="model">report.sales.by.margin.pos</field>
507             <field name="type">tree</field>
508             <field name="arch" type="xml">
509                 <tree string="POS">
510                     <field name="user_id"/>
511                     <field name="product_name"/>
512                     <field name="date_order" widget="date"/>
513                     <field name="qty"/>
514                     <field name="net_margin_per_qty"/>
515                     <field name="total"/>
516                 </tree>
517             </field>
518         </record>
519
520         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_calendar">
521             <field name="name">report.sales.by.margin.pos.calendar</field>
522             <field name="model">report.sales.by.margin.pos</field>
523             <field name="type">calendar</field>
524             <field eval="2" name="priority"/>
525             <field name="arch" type="xml">
526                 <calendar color="user_id" date_start="date_order" string="Sales by User Margin">
527                     <field name="product_name"/>
528                     <field name="total" />
529                 </calendar>
530             </field>
531          </record>
532
533         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_graph">
534             <field name="name">report.sales.by.margin.pos.graph</field>
535             <field name="model">report.sales.by.margin.pos</field>
536             <field name="type">graph</field>
537             <field eval="2" name="priority"/>
538             <field name="arch" type="xml">
539                 <graph  type="bar" string="Sales by User Margin" orientation="horizontal">
540                     <field name="product_name" />
541                     <field name="total" operator="+"/>
542                 </graph>
543             </field>
544          </record>
545
546         <record model="ir.actions.act_window" id="action_report_sales_by_margin_pos_today">
547             <field name="name">Sales by User Daily margin</field>
548             <field name="res_model">report.sales.by.margin.pos</field>
549             <field name="view_type">form</field>
550             <field name="view_mode">tree,calendar,form,graph</field>
551             <field name="domain">[('date_order','=',time.strftime('%Y-%m-%d'))]</field>
552          </record>
553
554          <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_form">
555             <field name="name">report.sales.by.margin.pos.month.form</field>
556             <field name="model">report.sales.by.margin.pos.month</field>
557             <field name="type">form</field>
558             <field name="arch" type="xml">
559                 <form string="POS " version="7.0">
560                     <group col="4">
561                         <field name="user_id"/>
562                         <field name="product_name"/>
563                         <field name="date_order" widget="date"/>
564                         <field name="qty"/>
565                         <field name="net_margin_per_qty"/>
566                         <field name="total"/>
567                     </group>
568                 </form>
569             </field>
570         </record>
571
572
573         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_tree">
574             <field name="name">report.sales.by.margin.pos.month.tree</field>
575             <field name="model">report.sales.by.margin.pos.month</field>
576             <field name="type">tree</field>
577             <field name="arch" type="xml">
578                 <tree string="POS">
579                     <field name="user_id"/>
580                     <field name="product_name"/>
581                     <field name="date_order" widget="date"/>
582                     <field name="qty"/>
583                     <field name="net_margin_per_qty"/>
584                     <field name="total"/>
585                 </tree>
586             </field>
587         </record>
588
589         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_calendar">
590             <field name="name">report.sales.by.margin.pos.month.calendar</field>
591             <field name="model">report.sales.by.margin.pos.month</field>
592             <field name="type">calendar</field>
593             <field eval="2" name="priority"/>
594             <field name="arch" type="xml">
595                 <calendar color="user_id" date_start="date_order" string="Sales by User Margin">
596                     <field name="product_name"/>
597                     <field name="total" />
598                 </calendar>
599             </field>
600          </record>
601
602         <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_graph">
603             <field name="name">report.sales.by.margin.pos.month.graph</field>
604             <field name="model">report.sales.by.margin.pos.month</field>
605             <field name="type">graph</field>
606             <field eval="2" name="priority"/>
607             <field name="arch" type="xml">
608                 <graph  type="bar" string="Sales by User Margin" orientation="horizontal">
609                     <field name="product_name" />
610                     <field name="total" operator="+"/>
611                 </graph>
612             </field>
613          </record>
614
615          <record model="ir.actions.act_window" id="action_report_sales_by_margin_pos_month">
616             <field name="name">Sales by User Monthly margin</field>
617             <field name="res_model">report.sales.by.margin.pos.month</field>
618             <field name="view_type">form</field>
619             <field name="view_mode">tree,calendar,form,graph</field>
620             <field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
621         </record>
622
623         <record id="product_normal_form_pos_view" model="ir.ui.view">
624             <field name="name">product.normal.pos.form.inherit</field>
625             <field name="model">product.product</field>
626             <field name="type">form</field>
627             <field name="inherit_id" ref="product.product_normal_form_view"/>
628             <field name="arch" type="xml">
629                   <group name="status" position="after">
630                       <group name="pos" string="Point of Sale">
631                           <field name="pos_categ_id"/>
632                           <field name="to_weight" />
633                       </group>
634                   </group>
635             </field>
636         </record>
637
638
639         <record id="product_normal_form_view" model="ir.ui.view">
640             <field name="name">product.normal.form.inherit</field>
641             <field name="model">product.product</field>
642             <field name="type">form</field>
643             <field name="inherit_id" ref="product.product_normal_form_view"/>
644             <field name="arch" type="xml">
645                 <group name="misc" position="after">
646                     <group name="pos" colspan="2" col="2">
647                         <separator string="Point of Sale" colspan="2"/>
648                         <field name="income_pdt"/>
649                         <field name="expense_pdt"/>
650                     </group>
651                 </group>
652             </field>
653         </record>
654
655         <!-- Categories tree view -->
656         <record id="pos_category_form_view" model="ir.ui.view">
657             <field name="name">pos.category.form</field>
658             <field name="model">pos.category</field>
659             <field name="type">form</field>
660             <field name="arch" type="xml">
661                 <form string="Product PoS Categories" version="7.0">
662                     <sheet>
663                         <field name="image_medium" widget='image' class="oe_avatar oe_right"/>
664                         <div class="oe_left">
665                             <group>
666                                 <field name="name"/>
667                                 <field name="parent_id"/>
668                                 <field name="sequence"/>
669                             </group>
670                         </div>
671                     </sheet>
672                 </form>
673             </field>
674         </record>
675         <record id="pos_category_tree_view" model="ir.ui.view">
676             <field name="name">pos.category.tree</field>
677             <field name="model">pos.category</field>
678             <field name="type">tree</field>
679             <field name="field_parent" eval="False"/>
680             <field name="arch" type="xml">
681                 <tree string="Product PoS Categories">
682                     <field name="sequence" invisible="1"/>
683                     <field name="complete_name"/>
684                 </tree>
685             </field>
686         </record>
687         <record id="pos_category_action" model="ir.actions.act_window">
688             <field name="name">Product Categories</field>
689             <field name="type">ir.actions.act_window</field>
690             <field name="res_model">pos.category</field>
691             <field name="view_type">form</field>
692             <field name="view_mode">tree,form</field>
693             <field name="view_id" eval="False"/>
694         </record>
695         <menuitem action="pos_category_action" id="menu_pos_category" parent="menu_point_of_sale_product" sequence="0" />
696         <!-- END -->
697
698         <menuitem name="Configuration" parent="menu_point_root"
699             id="menu_point_config_product" sequence="25" groups="group_pos_manager"/>
700
701         <record id="action_account_journal_form" model="ir.actions.act_window">
702             <field name="name">Payment Methods</field>
703             <field name="res_model">account.journal</field>
704             <field name="view_type">form</field>
705             <field name="view_mode">tree,form</field>
706             <field name="context" eval="{'default_journal_user': 1, 'default_type': 'cash'}"/>
707             <field name="domain">[('journal_user','=', 1)]</field>
708             <field name="help" type="html">
709               <p class="oe_view_nocontent_create">
710                 Click to add a payment method.
711               </p><p>
712                 Payment methods are defined by accounting journals having the
713                 field <i>Payment Method</i> checked.
714               </p>
715             </field>
716         </record>
717
718         <menuitem action="action_account_journal_form"
719             id="menu_action_account_journal_form_open"
720             parent="menu_point_config_product"
721             sequence="20"/>
722
723         <record model="ir.ui.view" id="view_pos_order_tree_all_sales_lines">
724             <field name="name">POS Sales Lines</field>
725             <field name="model">pos.order.line</field>
726             <field name="type">tree</field>
727             <field name="arch" type="xml">
728                 <tree string="POS Orders lines">
729                     <field name="order_id" />
730                     <field name="create_date" />
731                     <field name="product_id" />
732                     <field name="qty" />
733                     <field name="price_unit" />
734                 </tree>
735             </field>
736         </record>
737          <record model="ir.actions.act_window" id="action_pos_all_sales_lines">
738             <field name="name">All sales lines</field>
739             <field name="type">ir.actions.act_window</field>
740             <field name="res_model">pos.order.line</field>
741             <field name="view_type">form</field>
742             <field name="view_id" ref="view_pos_order_tree_all_sales_lines" />
743         </record>
744
745         <!--  Miscellaneous Operations/Reporting -->
746         <menuitem name="Point of Sale" parent="base.menu_reporting" id="menu_point_rep" sequence="50" groups="group_pos_manager"/>
747         <!-- Invoice -->
748
749         <record model="ir.actions.act_window" id="action_pos_invoice">
750             <field name="name">Invoices</field>
751             <field name="type">ir.actions.act_window</field>
752             <field name="res_model">account.invoice</field>
753             <field name="view_type">form</field>
754             <field name="view_mode">tree,form</field>
755             <field name="domain">[('origin','like','POS')]</field>
756         </record>
757
758         <menuitem icon="STOCK_PRINT" action="action_report_pos_details"
759                 id="menu_pos_details" parent="menu_point_rep" sequence="6" />
760
761         <record model="ir.actions.client" id="action_pos_pos">
762             <field name="name">Start Point of Sale</field>
763             <field name="tag">pos.ui</field>
764         </record>
765
766         <!-- Top menu item -->
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                     <field name="name" />
841                     <filter string="Active" domain="[('state', '=', 'active')]" />
842                     <filter string="Inactive" domain="[('state', '=', 'inactive')]" />
843                     <field name="shop_id" />
844                 </search>
845             </field>
846         </record>
847
848
849         <act_window
850             id="act_pos_config_sessions"
851             name="Sessions"
852             src_model="pos.config"
853             res_model="pos.session"
854             domain="[('config_id', '=', active_id)]" />
855
856         <record model="ir.actions.act_window" id="action_pos_config_pos">
857             <field name="name">Point of Sales</field>
858             <field name="type">ir.actions.act_window</field>
859             <field name="res_model">pos.config</field>
860             <field name="view_type">form</field>
861             <field name="view_mode">tree,form</field>
862             <field name="search_view_id" ref="view_pos_config_search" />
863         </record>
864
865         <menuitem
866             parent="menu_point_config_product"
867             action="action_pos_config_pos"
868             id="menu_pos_config_pos"
869             groups="group_pos_manager"/>
870
871         <act_window
872             id="act_pos_session_orders"
873             name="Orders"
874             src_model="pos.session"
875             res_model="pos.order"
876             context="{'search_default_session_id': active_id, 'default_session_id' : active_id }" />
877
878
879
880         <record model="ir.ui.view" id="view_pos_session_form">
881             <field name="name">pos.session.form.view</field>
882             <field name="model">pos.session</field>
883             <field name="type">form</field>
884             <field name="arch" type="xml">
885                 <form string="Point of Sale Session" version="7.0">
886                     <header>
887                         <button name="open" type="workflow" string="Validate &amp; Open Session" states="opening_control" class="oe_highlight"/>
888                         <button name="cashbox_control" type="workflow" string="End of Session" states="opened"
889                             class="oe_highlight"/>
890                         <button name="close" type="workflow" string="Validate Closing &amp; Post Entries" states="closing_control"
891                             class="oe_highlight"/>
892                         <button name="open_frontend_cb" type="object" string="Start Selling" states="opened"/>
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                         <div class="oe_right oe_button_box">
899                             <button name="%(action_pos_box_in)d" string="Put Money In" type="action" states="opened,closing_control"/>
900                             <button name="%(action_pos_box_out)d" string="Take Money Out" type="action" states="opened,closing_control"/>
901                         </div>
902                         <h1 class="oe_title">
903                             Point of Sale Session:
904                             <field name="name" attrs="{'invisible': [('name','=','/')]}" class="oe_inline"/>
905                         </h1>
906                         <field name="config_id" invisible="1"/>
907                         <field name="has_opening_control" invisible="1" />
908                         <field name="has_closing_control" invisible="1" />
909                         <group>
910                             <group>
911                                 <field name="user_id"/>
912                             </group>
913                             <group>
914                                 <field name="start_at" attrs="{'invisible' : [('state', '=', 'opening_control')]}"/>
915                                 <field name="stop_at" attrs="{'invisible' : [('state', '&lt;&gt;', 'closed')]}"/>
916                             </group>
917                             <newline/>
918
919                             <group string="Opening Cash Control">
920                                 <field name="opening_details_ids" nolabel="1" colspan="2" attrs="{'readonly' : [('state', 'not in', ('opening_control',))]}">
921                                     <tree string="Opening Cashbox Lines" editable="bottom">
922                                         <field name="pieces" readonly="1" />
923                                         <field name="number_opening" string="Opening Unit Numbers" on_change="on_change_sub_opening(pieces, number_opening)" />
924                                         <field name="subtotal_opening" string="Opening Subtotal" sum="Total"/>
925                                     </tree>
926                                 </field>
927                             </group>
928                             <group string="Closing Cash Control" attrs="{'invisible': [('state', '=', 'opening_control')]}">
929                                 <field name="details_ids" nolabel="1" colspan="2">
930                                     <tree string="Cashbox Lines" editable="bottom">
931                                         <field name="pieces" readonly="1" />
932                                         <field name="number_closing"/>
933                                         <field name="subtotal_closing"/>
934                                     </tree>
935                                 </field>
936                             </group>
937
938                             <div>
939                                 <group class="oe_subtotal_footer oe_right">
940                                     <field name="cash_register_balance_start" readonly="1" string="Opening Balance" class="oe_subtotal_footer_separator"/>
941                                     <field name="cash_register_total_entry_encoding"  attrs="{'invisible' : [('state', '=', 'opening_control')]}" string="+ Transactions"/>
942                                     <field name="cash_register_balance_end" attrs="{'invisible' : [('state', '=', 'opening_control')]}" string="= Theorical Balance"/>
943                                 </group>
944                                 <div attrs="{'invisible' : [('state', '&lt;&gt;', 'opening_control')]}" class="oe_view_nocontent" groups="point_of_sale.group_pos_manager">
945                                     <p class="oe_view_nocontent_create">
946                                     You can define another list of available currencies on the
947                                     <i>Cash Registers</i> tab of the <b><field name="cash_register_id" class="oe_inline"/></b>
948                                     payment method.
949                                     </p>
950                                 </div>
951                             </div>
952
953
954                             <group class="oe_subtotal_footer oe_right" attrs="{'invisible' : [('state', '=', 'opening_control')]}">
955                                 <field name="cash_register_balance_end_real" class="oe_subtotal_footer_separator"/>
956                                 <field name="cash_register_difference"  class="oe_subtotal_footer_separator"/>
957                             </group>
958                         </group>
959
960                         <separator string="Summary by Payment Methods" attrs="{'invisible' : [('state', '=', 'opening_control')]}"/>
961                         <field name="statement_ids" attrs="{'invisible' : [('state', '=', 'opening_control')]}">
962                             <tree string="Statements">
963                                 <field name="name" />
964                                 <field name="journal_id" />
965                                 <field name="balance_start" />
966                                 <field name="total_entry_encoding" />
967                                 <field name="balance_end_real" />
968                                 <field name="difference" />
969                                 <field name="currency" />
970                                 <field name="state" />
971                             </tree>
972                         </field>
973
974                     </sheet>
975                 </form>
976             </field>
977         </record>
978
979         <record model="ir.ui.view" id="view_pos_session_tree">
980             <field name="name">pos.session.tree.view</field>
981             <field name="model">pos.session</field>
982             <field name="type">tree</field>
983             <field name="arch" type="xml">
984                 <tree string="Point of Sale Session">
985                     <field name="config_id" />
986                     <field name="name" />
987                     <field name="user_id" />
988                     <field name="start_at" />
989                     <field name="stop_at" />
990                     <field name="state" />
991                 </tree>
992             </field>
993         </record>
994
995         <record model="ir.ui.view" id="view_pos_session_search">
996             <field name="name">pos.session.search.view</field>
997             <field name="model">pos.session</field>
998             <field name="type">search</field>
999             <field name="arch" type="xml">
1000                 <search string="Point of Sale Session">
1001                     <field name="name" />
1002                     <filter string="Open" domain="[('state', '=', 'opened')]" />
1003                     <separator/>
1004                     <filter string="Today" domain="[('start_at', '>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" />
1005                     <field name="config_id" />
1006                     <field name="user_id" />
1007                     <group expand="0" string="Group By...">
1008                         <filter string="User" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
1009                         <filter string="Point of Sales" domain="[]" context="{'group_by': 'user_id'}" />
1010                     </group>
1011                 </search>
1012             </field>
1013         </record>
1014
1015
1016         <record model="ir.actions.act_window" id="action_pos_session">
1017             <field name="name">All Sessions</field>
1018             <field name="type">ir.actions.act_window</field>
1019             <field name="res_model">pos.session</field>
1020             <field name="view_type">form</field>
1021             <field name="view_mode">tree,form</field>
1022             <field name="search_view_id" ref="view_pos_session_search" />
1023         </record>
1024
1025         <menuitem
1026             parent="menu_point_of_sale"
1027             action="action_pos_session"
1028             id="menu_pos_session_all"
1029             sequence="1"
1030             groups="group_pos_manager"/>
1031
1032         <record id="view_pos_order_filter" model="ir.ui.view">
1033             <field name="name">pos.order.list.select</field>
1034             <field name="model">pos.order</field>
1035             <field name="type">search</field>
1036             <field name="arch" type="xml">
1037                 <search string="Search Sales Order">
1038                     <field name="name"/>
1039                     <field name="date_order"/>
1040                     <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/>
1041                     <filter icon="gtk-apply" string="Done" domain="[('state','in',('paid','invoiced','done'))]"/>
1042                     <filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
1043                     <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
1044                     <field name="user_id"/>
1045                     <field name="session_id"/>
1046                     <group expand="0" string="Group By..." groups="base.group_extended">
1047                         <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
1048                         <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
1049                         <filter string="Session" icon="terp-personal" domain="[]" context="{'group_by':'session_id'}"/>
1050                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
1051                         <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
1052                     </group>
1053                 </search>
1054             </field>
1055         </record>
1056
1057         <menuitem action="action_pos_session_opening"
1058             parent="menu_point_of_sale"
1059             id="menu_pos_session_opening" sequence="0"/>
1060
1061     </data>
1062 </openerp>