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