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