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