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