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