6 <menuitem name="Point of Sale"
8 groups="group_pos_manager,group_pos_user"
11 <record id="categ_others" model="pos.category">
12 <field name="name">Others</field>
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">
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"}'/>
29 <group col="4" colspan="4">
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)" context="{'search_default_customer':1}" attrs="{'readonly': [('state','=','invoiced')]}"/>
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"/>
46 <form string="Order lines" version="7.0">
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"/>
58 <group class="oe_subtotal_footer oe_right" colspan="2" name="order_total">
59 <field name="amount_tax"/>
60 <div class="oe_subtotal_footer_separator oe_inline">
61 <label for="amount_total" />
62 <button name="button_dummy"
63 states="draft" string="(update)" type="object" class="oe_edit_only oe_link"/>
65 <field name="amount_total" nolabel="1" class="oe_subtotal_footer_separator"/>
68 <page string="Payments">
69 <field name="statement_ids" colspan="4" nolabel="1">
70 <tree editable="bottom" string="Statement lines">
71 <field name="journal_id"/>
72 <field name="statement_id"/>
73 <field name="amount"/>
75 <form string="Statement lines" version="7.0">
77 <field name="account_id"/>
78 <field name="amount"/>
79 <field name="statement_id" domain="[('company_id','=',parent.company_id),('state','=','open')]"/>
84 <page string="Extra Info">
85 <group string="General Information">
86 <field name="company_id" groups="base.group_multi_company"/>
87 <field name="warehouse_id" widget="selection" groups="stock.group_locations"/>
88 <field name="user_id" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'point_of_sale.group_pos_user']}"/>
89 <field name="pricelist_id" groups="product.group_sale_pricelist" domain="[('type','=','sale')]"/>
90 <field name="picking_id" readonly="1"/>
91 <field name="pos_reference"/>
93 <group string="Accounting Information">
94 <field name="sale_journal" domain="[('type','=','sale')]"/>
95 <field name="invoice_id" readonly="1"
96 attrs="{'invisible':[('state','<>','invoiced')]}"/>
97 <button name="%(pos_invoice_report)d" string="Re-Print"
98 icon="gtk-print" type="action" attrs="{'invisible':[('state','<>','invoiced')]}"/>
99 <field name="account_move" readonly="1"
100 attrs="{'invisible':[('state','<>','done')]}"/>
103 <page string="Notes" >
111 <record model="ir.actions.act_window" id="action_pos_pos_form">
112 <field name="name">Orders</field>
113 <field name="type">ir.actions.act_window</field>
114 <field name="res_model">pos.order</field>
115 <field name="view_type">form</field>
116 <field name="view_mode">tree,form</field>
117 <field name="view_id" eval="False"/>
118 <field name="domain">[]</field>
119 <field name="help" type="html">
120 <p class="oe_view_nocontent_create">
121 Click to create a new order.
123 Use this menu to browse your preceeding orders. To record new
124 orders, you should better use the menu <i>Your Session</i> for
125 the touchscreen interface.
129 <record model="ir.ui.view" id="view_pos_order_tree">
130 <field name="name">Orders</field>
131 <field name="model">pos.order</field>
132 <field name="arch" type="xml">
133 <tree string="POS Orders" colors="blue:state == 'draft';gray:state in ('done','cancel');black:state not in('done','cancel')">
135 <field name="pos_reference"/>
136 <field name="partner_id"/>
137 <field name="date_order"/>
138 <field name="user_id"/>
139 <field name="invoice_id"/>
140 <field name="amount_total" sum="Amount total"/>
141 <field name="company_id" groups="base.group_multi_company"/>
142 <field name="state"/>
143 <field name="session_id" />
147 <record id="view_pos_order_filter" model="ir.ui.view">
148 <field name="name">pos.order.list.select</field>
149 <field name="model">pos.order</field>
150 <field name="arch" type="xml">
151 <search string="Search Sales Order">
152 <field name="name" string="Sales Order"/>
153 <field name="date_order"/>
154 <field name="pos_reference"/>
155 <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/>
156 <filter icon="gtk-apply" string="Done" domain="[('state','in',('paid','invoiced','done'))]"/>
157 <filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
158 <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
159 <field name="user_id"/>
160 <group expand="0" string="Group By...">
161 <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
162 <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
163 <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
164 <filter string="Order Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
170 <menuitem name="Daily Operations" id="menu_point_of_sale" parent="menu_point_root" sequence="10"/>
171 <menuitem parent="menu_point_of_sale" id="menu_point_ofsale" action="action_pos_pos_form" sequence="2" groups="group_pos_manager,group_pos_user"/>
172 <menuitem name="Products" id="menu_point_of_sale_product" parent="menu_point_root" sequence="15" />
174 <record id="product_normal_action" model="ir.actions.act_window">
175 <field name="name">Products</field>
176 <field name="type">ir.actions.act_window</field>
177 <field name="res_model">product.product</field>
178 <field name="view_type">form</field>
179 <field name="view_mode">tree,form,kanban</field>
180 <field name="context" eval="{'default_pos_categ_id': ref('point_of_sale.categ_others')}"/>
181 <field name="domain" eval="[('pos_categ_id','<>',False)]"/>
182 <field name="view_id" ref="product.product_product_tree_view"/>
183 <field name="search_view_id" ref="product.product_search_form_view"/>
184 <field name="help" type="html">
185 <p class="oe_view_nocontent_create">
186 Click to add a new product.
188 You must define a product for everything you sell through
189 the point of sale interface.
191 Do not forget to set the price and the point of sale category
192 in which it should appear. If a product has no point of sale
193 category, you can not sell it through the point of sale
199 action="product_normal_action"
200 id="menu_pos_products"
201 parent="menu_point_of_sale_product" sequence="2"/>
203 <record model="ir.ui.view" id="view_pos_order_line">
204 <field name="name">Sale lines</field>
205 <field name="model">pos.order.line</field>
206 <field name="arch" type="xml">
207 <tree string="POS Order lines">
208 <field name="product_id" readonly="1"/>
209 <field name="qty" readonly="1" sum="Total qty"/>
210 <field name="discount" readonly="1"/>
211 <field name="price_unit" readonly="1"/>
212 <field name="price_subtotal" readonly="1" sum="Sum of subtotals"/>
213 <field name="price_subtotal_incl" readonly="1" sum="Sum of subtotals"/>
214 <field name="create_date" readonly="1"/>
219 <record model="ir.ui.view" id="view_pos_order_line_form">
220 <field name="name">Sale line</field>
221 <field name="model">pos.order.line</field>
222 <field name="arch" type="xml">
223 <form string="POS Order line" version="7.0">
225 <field name="product_id" />
227 <field name="discount" />
228 <field name="price_unit" />
229 <field name="create_date" />
235 <record model="ir.actions.act_window" id="action_pos_order_line">
236 <field name="name">Sale line</field>
237 <field name="type">ir.actions.act_window</field>
238 <field name="res_model">pos.order.line</field>
239 <field name="view_type">form</field>
240 <field name="view_mode">tree</field>
241 <field name="view_id" ref="view_pos_order_line"/>
244 <record model="ir.actions.act_window" id="action_pos_order_line_form">
245 <field name="name">Sale line</field>
246 <field name="type">ir.actions.act_window</field>
247 <field name="res_model">pos.order.line</field>
248 <field name="view_type">form</field>
249 <field name="view_mode">form,tree</field>
250 <field name="view_id" ref="view_pos_order_line_form"/>
253 <record model="ir.actions.act_window" id="action_pos_order_line_day">
254 <field name="name">Sale line</field>
255 <field name="type">ir.actions.act_window</field>
256 <field name="res_model">pos.order.line</field>
257 <field name="view_type">form</field>
258 <field name="view_mode">tree</field>
259 <field name="view_id" ref="view_pos_order_line"/>
260 <field name="domain">[('create_date', '>=', time.strftime('%Y-%m-%d 00:00:00')),('create_date', '<=', time.strftime('%Y-%m-%d 23:59:59'))]</field>
267 <record model="ir.ui.view" id="view_pos_trans_user_form">
268 <field name="name">report.trans.pos.user.form</field>
269 <field name="model">report.transaction.pos</field>
270 <field name="arch" type="xml">
271 <form string="POS " version="7.0">
273 <field name="user_id"/>
274 <field name="journal_id"/>
275 <field name="jl_id"/>
276 <field name="date_create" widget="date"/>
277 <field name="no_trans"/>
278 <field name="amount"/>
279 <field name="invoice_id"/>
286 <record model="ir.ui.view" id="view_trans_pos_user_tree">
287 <field name="name">Sales by user</field>
288 <field name="model">report.transaction.pos</field>
289 <field name="arch" type="xml">
291 <field name="date_create" widget="date" />
292 <field name="user_id"/>
293 <field name="journal_id"/>
294 <field name="jl_id"/>
295 <field name="no_trans" sum="Total Transaction"/>
296 <field name="amount" sum="Amount total"/>
297 <field name="product_nb" />
298 <field name="invoice_id"/>
304 <record model="ir.ui.view" id="view_report_transaction_pos_calendar">
305 <field name="name">report.transaction.pos.calendar</field>
306 <field name="model">report.transaction.pos</field>
307 <field eval="2" name="priority"/>
308 <field name="arch" type="xml">
309 <calendar color="user_id" date_start="date_create" string="POS Report">
310 <field name="journal_id"/>
311 <field name="amount"/>
316 <record model="ir.ui.view" id="view_report_transaction_pos_graph">
317 <field name="name">report.transaction.pos.graph</field>
318 <field name="model">report.transaction.pos</field>
319 <field eval="2" name="priority"/>
320 <field name="arch" type="xml">
321 <graph type="bar" string="POS Report">
322 <field name="user_id" />
323 <field name="amount"/>
324 <field group="True" name="journal_id"/>
329 <record model="ir.actions.act_window" id="action_trans_pos_tree_today">
330 <field name="name">Sales by day</field>
331 <field name="res_model">report.transaction.pos</field>
332 <field name="view_type">form</field>
333 <field name="view_mode">tree,calendar,form,graph</field>
334 <field name="domain">[('date_create','=',time.strftime('%Y-%m-%d'))]</field>
338 <record model="ir.actions.act_window" id="action_trans_pos_tree_month">
339 <field name="name">Sales by month</field>
340 <field name="res_model">report.transaction.pos</field>
341 <field name="view_type">form</field>
342 <field name="view_mode">tree,calendar,form,graph</field>
343 <field name="domain">[('date_create','like',time.strftime('%Y-%m'))]</field>
347 <record model="ir.actions.act_window" id="action_trans_pos_tree">
348 <field name="name">Sales by user</field>
349 <field name="res_model">report.transaction.pos</field>
350 <field name="view_type">form</field>
351 <field name="view_mode">tree,calendar,form,graph</field>
352 <field name="view_id" ref="view_trans_pos_user_tree"/>
356 <record model="ir.ui.view" id="view_report_sales_by_user_pos_form">
357 <field name="name">report.sales.by.user.pos.form</field>
358 <field name="model">report.sales.by.user.pos</field>
359 <field name="arch" type="xml">
360 <form string="POS " version="7.0">
362 <field name="date_order" widget="date"/>
364 <field name="amount"/>
365 <field name="user_id"/>
372 <record model="ir.ui.view" id="view_report_sales_by_user_pos_tree">
373 <field name="name">report.sales.by.user.pos.tree</field>
374 <field name="model">report.sales.by.user.pos</field>
375 <field name="arch" type="xml">
377 <field name="date_order" widget="date"/>
379 <field name="amount"/>
380 <field name="user_id"/>
385 <record model="ir.ui.view" id="view_report_sales_by_user_pos_calendar">
386 <field name="name">report.sales.by.user.pos.calendar</field>
387 <field name="model">report.sales.by.user.pos</field>
388 <field eval="2" name="priority"/>
389 <field name="arch" type="xml">
390 <calendar color="user_id" date_start="date_order" string="POS Report">
392 <field name="amount" />
397 <record model="ir.ui.view" id="view_report_sales_by_user_pos_graph">
398 <field name="name">report.sales.by.user.pos.graph</field>
399 <field name="model">report.sales.by.user.pos</field>
400 <field eval="2" name="priority"/>
401 <field name="arch" type="xml">
402 <graph type="bar" string="Sales by User">
403 <field name="user_id" />
404 <field name="amount"/>
409 <record model="ir.actions.act_window" id="action_report_sales_by_user_pos_today">
410 <field name="name">Sales by User</field>
411 <field name="res_model">report.sales.by.user.pos</field>
412 <field name="view_type">form</field>
413 <field name="view_mode">tree,calendar,form,graph</field>
414 <field name="domain">[('date_order','=',time.strftime('%Y-%m-%d'))]</field>
418 <!-- Sales of user by month -->
420 <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_form">
421 <field name="name">report.sales.by.user.pos.month.form</field>
422 <field name="model">report.sales.by.user.pos.month</field>
423 <field name="arch" type="xml">
424 <form string="POS " version="7.0">
426 <field name="date_order" widget="date"/>
428 <field name="amount"/>
429 <field name="user_id"/>
436 <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_tree">
437 <field name="name">report.sales.by.user.pos.month.tree</field>
438 <field name="model">report.sales.by.user.pos.month</field>
439 <field name="arch" type="xml">
441 <field name="date_order" widget="date"/>
443 <field name="amount"/>
444 <field name="user_id"/>
449 <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_calendar">
450 <field name="name">report.sales.by.user.pos.month.calendar</field>
451 <field name="model">report.sales.by.user.pos.month</field>
452 <field eval="2" name="priority"/>
453 <field name="arch" type="xml">
454 <calendar color="user_id" date_start="date_order" string="POS Report">
456 <field name="amount" />
461 <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_graph">
462 <field name="name">report.sales.by.user.pos.month.graph</field>
463 <field name="model">report.sales.by.user.pos.month</field>
464 <field eval="2" name="priority"/>
465 <field name="arch" type="xml">
466 <graph type="bar" string="Sales by User">
467 <field name="user_id" />
468 <field name="amount"/>
474 <record model="ir.actions.act_window" id="action_report_sales_by_user_pos_month">
475 <field name="name">Sales by User Monthly</field>
476 <field name="res_model">report.sales.by.user.pos.month</field>
477 <field name="view_type">form</field>
478 <field name="view_mode">tree,calendar,form,graph</field>
479 <field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
482 <!-- Sales by margin -->
484 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_form">
485 <field name="name">report.sales.by.margin.pos.form</field>
486 <field name="model">report.sales.by.margin.pos</field>
487 <field name="arch" type="xml">
488 <form string="POS " version="7.0">
490 <field name="user_id"/>
491 <field name="product_name"/>
492 <field name="date_order" widget="date"/>
494 <field name="net_margin_per_qty"/>
495 <field name="total"/>
502 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_tree">
503 <field name="name">report.sales.by.margin.pos.tree</field>
504 <field name="model">report.sales.by.margin.pos</field>
505 <field name="arch" type="xml">
507 <field name="user_id"/>
508 <field name="product_name"/>
509 <field name="date_order" widget="date"/>
511 <field name="net_margin_per_qty"/>
512 <field name="total"/>
517 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_calendar">
518 <field name="name">report.sales.by.margin.pos.calendar</field>
519 <field name="model">report.sales.by.margin.pos</field>
520 <field eval="2" name="priority"/>
521 <field name="arch" type="xml">
522 <calendar color="user_id" date_start="date_order" string="Sales by User Margin">
523 <field name="product_name"/>
524 <field name="total" />
529 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_graph">
530 <field name="name">report.sales.by.margin.pos.graph</field>
531 <field name="model">report.sales.by.margin.pos</field>
532 <field eval="2" name="priority"/>
533 <field name="arch" type="xml">
534 <graph type="bar" string="Sales by User Margin" orientation="horizontal">
535 <field name="product_name" />
536 <field name="total" operator="+"/>
541 <record model="ir.actions.act_window" id="action_report_sales_by_margin_pos_today">
542 <field name="name">Sales by User Daily margin</field>
543 <field name="res_model">report.sales.by.margin.pos</field>
544 <field name="view_type">form</field>
545 <field name="view_mode">tree,calendar,form,graph</field>
546 <field name="domain">[('date_order','=',time.strftime('%Y-%m-%d'))]</field>
549 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_form">
550 <field name="name">report.sales.by.margin.pos.month.form</field>
551 <field name="model">report.sales.by.margin.pos.month</field>
552 <field name="arch" type="xml">
553 <form string="POS " version="7.0">
555 <field name="user_id"/>
556 <field name="product_name"/>
557 <field name="date_order" widget="date"/>
559 <field name="net_margin_per_qty"/>
560 <field name="total"/>
567 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_tree">
568 <field name="name">report.sales.by.margin.pos.month.tree</field>
569 <field name="model">report.sales.by.margin.pos.month</field>
570 <field name="arch" type="xml">
572 <field name="user_id"/>
573 <field name="product_name"/>
574 <field name="date_order" widget="date"/>
576 <field name="net_margin_per_qty"/>
577 <field name="total"/>
582 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_calendar">
583 <field name="name">report.sales.by.margin.pos.month.calendar</field>
584 <field name="model">report.sales.by.margin.pos.month</field>
585 <field eval="2" name="priority"/>
586 <field name="arch" type="xml">
587 <calendar color="user_id" date_start="date_order" string="Sales by User Margin">
588 <field name="product_name"/>
589 <field name="total" />
594 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_graph">
595 <field name="name">report.sales.by.margin.pos.month.graph</field>
596 <field name="model">report.sales.by.margin.pos.month</field>
597 <field eval="2" name="priority"/>
598 <field name="arch" type="xml">
599 <graph type="bar" string="Sales by User Margin" orientation="horizontal">
600 <field name="product_name" />
601 <field name="total" operator="+"/>
606 <record model="ir.actions.act_window" id="action_report_sales_by_margin_pos_month">
607 <field name="name">Sales by User Monthly margin</field>
608 <field name="res_model">report.sales.by.margin.pos.month</field>
609 <field name="view_type">form</field>
610 <field name="view_mode">tree,calendar,form,graph</field>
611 <field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
614 <record id="product_normal_form_view" model="ir.ui.view">
615 <field name="name">product.normal.form.inherit</field>
616 <field name="model">product.product</field>
617 <field name="inherit_id" ref="stock.view_normal_procurement_locations_form"/>
618 <field name="arch" type="xml">
619 <group name="sale" position="inside">
620 <group name="pos" string="Point of Sale">
621 <field name="available_in_pos"/>
622 <field name="pos_categ_id"/>
623 <field name="to_weight" />
624 <field name="income_pdt"/>
625 <field name="expense_pdt"/>
628 <field name="ean13" position="after">
629 <button name="edit_ean" type="object" string="Set a Custom EAN" class="oe_link oe_edit_only"/>
634 <!-- Categories tree view -->
635 <record id="pos_category_form_view" model="ir.ui.view">
636 <field name="name">pos.category.form</field>
637 <field name="model">pos.category</field>
638 <field name="arch" type="xml">
639 <form string="Product PoS Categories" version="7.0">
641 <field name="image_medium" widget='image' class="oe_avatar oe_right"/>
642 <div class="oe_left">
645 <field name="parent_id"/>
646 <field name="sequence"/>
653 <record id="pos_category_tree_view" model="ir.ui.view">
654 <field name="name">pos.category.tree</field>
655 <field name="model">pos.category</field>
656 <field name="field_parent" eval="False"/>
657 <field name="arch" type="xml">
658 <tree string="Product PoS Categories">
659 <field name="sequence" invisible="1"/>
660 <field name="complete_name"/>
664 <record id="pos_category_action" model="ir.actions.act_window">
665 <field name="name">Product Categories</field>
666 <field name="type">ir.actions.act_window</field>
667 <field name="res_model">pos.category</field>
668 <field name="view_type">form</field>
669 <field name="view_mode">tree,form</field>
670 <field name="view_id" eval="False"/>
671 <field name="help" type="html">
672 <p class="oe_view_nocontent_create">
673 Click to define a new category.
675 Categories are used to browse your products through the
676 touchscreen interface.
678 If you put a photo on the category, the layout of the
679 touchscreen interface will automatically. We suggest not to put
680 a photo on categories for small (1024x768) screens.
684 <menuitem action="pos_category_action" id="menu_pos_category" parent="menu_point_of_sale_product" sequence="0" />
687 <menuitem name="Configuration" parent="menu_point_root"
688 id="menu_point_config_product" sequence="25" groups="group_pos_manager"/>
690 <record id="action_account_journal_form" model="ir.actions.act_window">
691 <field name="name">Payment Methods</field>
692 <field name="res_model">account.journal</field>
693 <field name="view_type">form</field>
694 <field name="view_mode">tree,form</field>
695 <field name="context" eval="{'default_journal_user': 1, 'default_type': 'cash'}"/>
696 <field name="domain">[('journal_user','=', 1)]</field>
697 <field name="help" type="html">
698 <p class="oe_view_nocontent_create">
699 Click to add a payment method.
701 Payment methods are defined by accounting journals having the
702 field <i>PoS Payment Method</i> checked. In order to be useable
703 from the touchscreen interface, you must set the payment method
704 on the <i>Point of Sale</i> configuration.
709 <menuitem action="action_account_journal_form"
710 id="menu_action_account_journal_form_open"
711 parent="menu_point_config_product"
714 <record model="ir.ui.view" id="view_pos_order_tree_all_sales_lines">
715 <field name="name">POS Sales Lines</field>
716 <field name="model">pos.order.line</field>
717 <field name="arch" type="xml">
718 <tree string="POS Orders lines">
719 <field name="order_id" />
720 <field name="create_date" />
721 <field name="product_id" />
723 <field name="price_unit" />
727 <record model="ir.actions.act_window" id="action_pos_all_sales_lines">
728 <field name="name">All sales lines</field>
729 <field name="type">ir.actions.act_window</field>
730 <field name="res_model">pos.order.line</field>
731 <field name="view_type">form</field>
732 <field name="view_id" ref="view_pos_order_tree_all_sales_lines" />
735 <!-- Miscellaneous Operations/Reporting -->
736 <menuitem name="Point of Sale" parent="base.menu_reporting" id="menu_point_rep" sequence="50" groups="group_pos_manager"/>
739 <record model="ir.actions.act_window" id="action_pos_invoice">
740 <field name="name">Invoices</field>
741 <field name="type">ir.actions.act_window</field>
742 <field name="res_model">account.invoice</field>
743 <field name="view_type">form</field>
744 <field name="view_mode">tree,form</field>
745 <field name="domain">[('origin','like','POS')]</field>
748 <menuitem icon="STOCK_PRINT" action="action_report_pos_details"
749 id="menu_pos_details" parent="menu_point_rep" sequence="6" />
751 <record model="ir.actions.client" id="action_pos_pos">
752 <field name="name">Start Point of Sale</field>
753 <field name="tag">pos.ui</field>
756 <!-- Top menu item -->
757 <record model="ir.ui.view" id="view_pos_config_form">
758 <field name="name">pos.config.form.view</field>
759 <field name="model">pos.config</field>
760 <field name="arch" type="xml">
761 <form string="Point of Sale Configuration" version="7.0">
763 <button string="Set to Active" name="set_active" type="object" states="inactive,deprecated"/>
764 <button string="Set to Inactive" name="set_inactive" type="object" states="active" />
765 <button string="Set to Deprecated" name="set_deprecate" type="object" states="active,inactive" />
766 <div class="oe_right">
767 <field name="state" widget="statusbar" statusbar_visible="active,inactive,deprecated" statusbar_colors='{"deprecated" : "red"}' nolabel="1"/>
772 <label for="name" class="oe_edit_only"/>
777 <field name="warehouse_id" widget="selection" groups="stock.group_locations" />
778 <field name="pricelist_id" groups="product.group_sale_pricelist"/>
779 <field name="journal_id" widget="selection"/>
780 <field name="group_by" groups="account.group_account_user"/>
781 <field name="sequence_id" readonly="1" groups="base.group_no_one"/>
783 <separator string="Available Payment Methods" colspan="4"/>
784 <field name="journal_ids" colspan="4" nolabel="1">
785 <tree string="Journals">
786 <field name="code" />
787 <field name="name" />
788 <field name="type" />
789 <field name="cash_control" />
792 <group string="Material Interfaces" >
794 <field name="iface_self_checkout" />
795 <field name="iface_cashdrawer" />
796 <field name="iface_payment_terminal" />
797 <field name="iface_invoicing" />
800 <field name="iface_electronic_scale" />
801 <field name="iface_vkeyboard" />
802 <field name="iface_print_via_proxy" />
811 <record model="ir.ui.view" id="view_pos_config_tree">
812 <field name="name">pos.config.tree.view</field>
813 <field name="model">pos.config</field>
814 <field name="arch" type="xml">
815 <tree string="Point of Sale Configuration" colors="grey:state == 'inactive'">
816 <field name="name" />
817 <field name="warehouse_id" groups="stock.group_locations"/>
818 <field name="state" />
823 <record model="ir.ui.view" id="view_pos_config_search">
824 <field name="name">pos.config.search.view</field>
825 <field name="model">pos.config</field>
826 <field name="arch" type="xml">
827 <search string="Point of Sale Config">
828 <field name="name" />
829 <filter string="Active" domain="[('state', '=', 'active')]" />
830 <filter string="Inactive" domain="[('state', '=', 'inactive')]" />
831 <field name="warehouse_id" groups="stock.group_locations" />
838 id="act_pos_config_sessions"
840 src_model="pos.config"
841 res_model="pos.session"
842 domain="[('config_id', '=', active_id)]" />
844 <record model="ir.actions.act_window" id="action_pos_config_pos">
845 <field name="name">Point of Sales</field>
846 <field name="type">ir.actions.act_window</field>
847 <field name="res_model">pos.config</field>
848 <field name="view_type">form</field>
849 <field name="view_mode">tree,form</field>
850 <field name="search_view_id" ref="view_pos_config_search" />
854 parent="menu_point_config_product"
855 action="action_pos_config_pos"
856 id="menu_pos_config_pos"
857 groups="group_pos_manager"/>
860 id="act_pos_session_orders"
862 src_model="pos.session"
863 res_model="pos.order"
864 context="{'search_default_session_id': active_id, 'default_session_id' : active_id }" />
868 <record model="ir.ui.view" id="view_pos_session_form">
869 <field name="name">pos.session.form.view</field>
870 <field name="model">pos.session</field>
871 <field name="arch" type="xml">
872 <form string="Point of Sale Session" version="7.0">
874 <button name="open_cb" type="object" string="Validate & Open Session" states="opening_control" class="oe_highlight"/>
875 <button name="open_frontend_cb" type="object" string="Continue Selling" states="opened"
876 class="oe_highlight"/>
877 <button name="cashbox_control" type="workflow" string="End of Session"
878 attrs="{'invisible' : ['|', ('cash_control', '=', False),('state', '!=', 'opened')]}"
879 class="oe_highlight" />
880 <button name="close" type="workflow" string="Validate Closing & Post Entries"
881 attrs="{'invisible' : ['|', ('cash_control', '=', True),('state', '!=', 'opened')]}"
882 class="oe_highlight" />
883 <button name="close" type="workflow" string="Validate Closing & Post Entries" states="closing_control"
884 class="oe_highlight" />
885 <div class="oe_right">
886 <field name="state" widget="statusbar" statusbar_visible="opening_control,opened,closing_control,closed" nolabel="1" />
890 <div class="oe_right oe_button_box">
891 <button name="%(action_pos_box_in)d" string="Put Money In" type="action" states="opened,closing_control"/>
892 <button name="%(action_pos_box_out)d" string="Take Money Out" type="action" states="opened,closing_control"/>
894 <h1 class="oe_title">
896 <field name="name" attrs="{'invisible': [('name','=','/')]}" class="oe_inline"/>
899 <field name="cash_control" invisible="1" />
901 <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']}"/>
902 <field name="config_id"/>
905 <field name="start_at" attrs="{'invisible' : [('state', '=', 'opening_control')]}"/>
906 <field name="stop_at" attrs="{'invisible' : [('state', '!=', 'closed')]}"/>
909 <group string="Opening Cash Control" attrs="{'invisible' : [('cash_control', '=', False)]}">
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" on_change="on_change_sub_opening(pieces, number_opening)" />
914 <field name="subtotal_opening" string="Opening Subtotal" sum="Total"/>
918 <group string="Closing Cash Control" attrs="{'invisible': ['|', ('cash_control', '=', False), ('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"/>
928 <div attrs="{'invisible' : [('cash_control', '=', False)]}">
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="= Theoretical Balance"/>
934 <div class="oe_clear"/>
935 <div attrs="{'invisible' : ['|', ('cash_journal_id', '=', False), ('state', '!=', 'opening_control')]}" 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>
945 <group class="oe_subtotal_footer oe_right" attrs="{'invisible': ['|', ('cash_control', '=', False), ('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"/>
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" groups="base.group_multi_currency" />
961 <field name="state" />
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" />
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')]" />
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'}" />
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.
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
1021 Note that you should better to use the menu <i>Your Session</i>
1022 to quickly open a new session.
1028 parent="menu_point_of_sale"
1029 action="action_pos_session"
1030 id="menu_pos_session_all"
1032 groups="group_pos_manager"/>
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...">
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="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
1052 <filter string="Order Month" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
1058 <menuitem action="action_pos_session_opening"
1059 parent="menu_point_of_sale"
1060 id="menu_pos_session_opening" sequence="0"/>
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="arch" type="xml">
1066 <form string="Ean13 Generator" version="7.0">
1068 Enter a reference, it will be converted
1069 automatically to a valid EAN number.
1072 <field name="ean13_pattern" class="oe_inline"/>
1075 <button name="sanitize_ean13" type="object" string="Apply" class="oe_highlight"/> or
1076 <button icon="gtk-stop" special="cancel"
1077 string="Cancel" class="oe_link"/>