4 <menuitem name="PoS Backend" id="menu_point_root" sequence="20"
6 groups="group_pos_manager"
7 web_icon="images/pos.png"
8 web_icon_hover="images/pos-hover.png"/>
10 <record id="categ_others" model="pos.category">
11 <field name="name">Others</field>
14 <record model="ir.ui.view" id="view_pos_pos_form">
15 <field name="name">pos.order</field>
16 <field name="model">pos.order</field>
17 <field name="type">form</field>
18 <field name="arch" type="xml">
19 <form string="PoS Orders">
20 <group col="7" colspan="4">
22 <field name="date_order"/>
23 <field name="partner_id" on_change="onchange_partner_id(partner_id)" context="{'search_default_customer':1}" attrs="{'readonly': [('state','=','invoiced')]}"/>
24 <button name="action_invoice" string="Invoice" icon="gtk-apply" type="object" states="paid" attrs="{'readonly': [('partner_id','=',False)]}"/>
26 <notebook colspan="4">
27 <page string="Sale Order">
28 <field name="lines" colspan="4" nolabel="1">
29 <tree string="Order lines" editable="bottom">
30 <field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,qty,parent.partner_id)"/>
31 <field name="qty" on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
32 <field name="price_unit" on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
33 <field name="discount" on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
34 <field name="price_subtotal"/>
35 <field name="price_subtotal_incl"/>
37 <form string="Order lines">
38 <field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,qty,parent.partner_id)"/>
39 <field name="qty" on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
40 <field name="discount" 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="price_subtotal" invisible="1"/>
43 <field name="price_subtotal_incl" invisible="1"/>
44 <field name="notice"/>
47 <group colspan="4" col="7">
48 <field name="amount_tax"/>
49 <field name="amount_total"/>
50 <button name="button_dummy" string="Update" icon="gtk-execute" states="draft" />
51 <button name="%(action_pos_discount)d" string="Discount" icon="gtk-remove" type="action" states="draft" />
54 <separator colspan="4"/>
55 <group colspan="4" col="8">
56 <field name="state" widget="statusbar" statusbar_visible="draft,paid,done" statusbar_colors='{"cancel":"red"}'/>
57 <button name="%(action_pos_payment)d" string="Payment" icon="gtk-apply" type="action" states="draft"/>
58 <button name="refund" string="Return Products" type="object" icon="gtk-ok"
59 attrs="{'invisible':[('state','=','draft')]}"/>
60 <button name="%(action_report_pos_receipt)d" string="Reprint" icon="gtk-print" type="action" states="paid,done,invoiced"/>
63 <page string="Payment">
64 <field name="statement_ids" colspan="4" nolabel="1">
65 <tree editable="bottom" string="Statement lines">
66 <field name="journal_id"/>
67 <field name="statement_id" />
68 <field name="amount"/>
70 <form string="Statement lines">
71 <field name="account_id"/>
72 <field name="amount"/>
73 <field name="statement_id" domain="[('company_id','=',parent.company_id),('state','=','open')]"/>
77 <page string="Extra Info" groups="base.group_extended">
78 <group colspan="2" col="2">
79 <separator string="General Information" colspan="2"/>
80 <field name="company_id" groups="base.group_multi_company"/>
81 <field name="shop_id" widget="selection"/>
82 <field name="user_id"/>
83 <field name="pricelist_id" groups="product.group_sale_pricelist" domain="[('type','=','sale')]"/>
84 <field name="picking_id" readonly="1" groups="base.group_extended"/>
86 <group colspan="2" col="3">
87 <separator string="Accounting Information" colspan="3"/>
88 <field name="sale_journal" domain="[('type','=','sale')]"/>
89 <button name="done" string="Post Entries" icon="gtk-apply" type="workflow" states="paid"/>
90 <field name="invoice_id" colspan="2" readonly="1"
91 attrs="{'invisible':[('state','<>','invoiced')]}"/>
92 <button name="%(pos_invoice_report)d" string="Re-Print"
93 icon="gtk-print" type="action" attrs="{'invisible':[('state','<>','invoiced')]}"/>
94 <field name="account_move" colspan="3" readonly="1"
95 attrs="{'invisible':[('state','<>','done')]}"/>
98 <page string="Notes" >
99 <field colspan="4" name="note" nolabel="1"/>
105 <record model="ir.actions.act_window" id="action_pos_pos_form">
106 <field name="name">PoS Orders</field>
107 <field name="type">ir.actions.act_window</field>
108 <field name="res_model">pos.order</field>
109 <field name="view_type">form</field>
110 <field name="view_mode">tree,form</field>
111 <field name="view_id" eval="False"/>
112 <field name="domain">[]</field>
114 <record model="ir.ui.view" id="view_pos_order_tree">
115 <field name="name">Sales</field>
116 <field name="model">pos.order</field>
117 <field name="type">tree</field>
118 <field name="arch" type="xml">
119 <tree string="POS Orders" colors="blue:state == 'draft';gray:state in ('done','cancel');black:state not in('done','cancel')">
121 <field name="partner_id"/>
122 <field name="date_order"/>
123 <field name="user_id"/>
124 <field name="invoice_id"/>
125 <field name="amount_total" sum="Amount total"/>
126 <field name="company_id" groups="base.group_multi_company"/>
127 <field name="state"/>
131 <record id="view_pos_order_filter" model="ir.ui.view">
132 <field name="name">pos.order.list.select</field>
133 <field name="model">pos.order</field>
134 <field name="type">search</field>
135 <field name="arch" type="xml">
136 <search string="Search Sales Order">
137 <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/>
138 <filter icon="gtk-apply" string="Done" domain="[('state','in',('paid','invoiced','done'))]"/>
139 <separator orientation="vertical"/>
140 <filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
141 <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
142 <separator orientation="vertical"/>
143 <filter icon="terp-go-month" string="Today" domain="[('date_order','>=',datetime.date.today().strftime('%%Y-%%m-%%d 00:00:00')),('date_order','<=',datetime.date.today().strftime('%%Y-%%m-%%d 23:59:59'))]"/>
144 <filter icon="gtk-go-forward" string="Yesterday" domain="[('date_order','<',datetime.date.today().strftime('%%Y-%%m-%%d 00:00:00')),('date_order','>=',(datetime.date.today() - relativedelta(days=1)).strftime('%%Y-%%m-%%d 00:00:00'))]"/>
145 <separator orientation="vertical"/>
147 <field name="user_id"/>
149 <group expand="0" string="Group By..." groups="base.group_extended">
150 <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
151 <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
152 <separator string="" orientation="vertical"/>
153 <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
154 <separator string="" orientation="vertical"/>
155 <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
161 <menuitem name="Daily Operations" id="menu_point_of_sale" parent="menu_point_root" sequence="10" />
162 <menuitem parent="menu_point_of_sale" id="menu_point_ofsale" action="action_pos_pos_form" sequence="1" groups="group_pos_manager,group_pos_user"/>
163 <menuitem name="Products" id="menu_point_of_sale_product" parent="menu_point_root" sequence="15" />
165 <record id="product_normal_action" model="ir.actions.act_window">
166 <field name="name">Products</field>
167 <field name="type">ir.actions.act_window</field>
168 <field name="res_model">product.product</field>
169 <field name="view_type">form</field>
170 <field name="view_mode">tree,form,kanban</field>
171 <field name="context" eval="{'default_pos_categ_id': ref('point_of_sale.categ_others')}"/>
172 <field name="view_id" ref="product.product_product_tree_view"/>
173 <field name="search_view_id" ref="product.product_search_form_view"/>
174 <field name="help">You must define a Product for everything you buy or sell. Products can be raw materials, stockable products, consumables or services. The Product form contains detailed information about your products related to procurement logistics, sales price, product category, suppliers and so on.</field>
177 action="product_normal_action"
178 id="menu_pos_products"
179 parent="menu_point_of_sale_product" sequence="2"/>
181 <record model="ir.ui.view" id="view_pos_order_line">
182 <field name="name">Sale lines</field>
183 <field name="model">pos.order.line</field>
184 <field name="type">tree</field>
185 <field name="arch" type="xml">
186 <tree string="POS Order lines">
187 <field name="product_id" readonly="1"/>
188 <field name="qty" readonly="1" sum="Total qty"/>
189 <field name="discount" readonly="1"/>
190 <field name="price_unit" readonly="1"/>
191 <field name="price_subtotal" readonly="1" sum="Sum of subtotals"/>
192 <field name="price_subtotal_incl" readonly="1" sum="Sum of subtotals"/>
193 <field name="create_date" readonly="1"/>
198 <record model="ir.ui.view" id="view_pos_order_line_form">
199 <field name="name">Sale line</field>
200 <field name="model">pos.order.line</field>
201 <field name="type">form</field>
202 <field name="arch" type="xml">
203 <form string="POS Order line">
204 <field name="product_id" />
206 <field name="discount" />
207 <field name="price_unit" />
208 <field name="create_date" />
213 <record model="ir.actions.act_window" id="action_pos_order_line">
214 <field name="name">Sale line</field>
215 <field name="type">ir.actions.act_window</field>
216 <field name="res_model">pos.order.line</field>
217 <field name="view_type">form</field>
218 <field name="view_mode">tree</field>
219 <field name="view_id" ref="view_pos_order_line"/>
222 <record model="ir.actions.act_window" id="action_pos_order_line_form">
223 <field name="name">Sale line</field>
224 <field name="type">ir.actions.act_window</field>
225 <field name="res_model">pos.order.line</field>
226 <field name="view_type">form</field>
227 <field name="view_mode">form,tree</field>
228 <field name="view_id" ref="view_pos_order_line_form"/>
231 <record model="ir.actions.act_window" id="action_pos_order_line_day">
232 <field name="name">Sale line</field>
233 <field name="type">ir.actions.act_window</field>
234 <field name="res_model">pos.order.line</field>
235 <field name="view_type">form</field>
236 <field name="view_mode">tree</field>
237 <field name="view_id" ref="view_pos_order_line"/>
238 <field name="domain">[('create_date', '>=', time.strftime('%Y-%m-%d 00:00:00')),('create_date', '<=', time.strftime('%Y-%m-%d 23:59:59'))]</field>
245 <record model="ir.ui.view" id="view_pos_trans_user_form">
246 <field name="name">report.trans.pos.user.form</field>
247 <field name="model">report.transaction.pos</field>
248 <field name="type">form</field>
249 <field name="arch" type="xml">
251 <field name="user_id"/>
252 <field name="journal_id"/>
253 <field name="jl_id"/>
254 <field name="date_create" widget="date"/>
255 <field name="no_trans"/>
256 <field name="amount"/>
257 <field name="invoice_id"/>
263 <record model="ir.ui.view" id="view_trans_pos_user_tree">
264 <field name="name">Sales by user</field>
265 <field name="model">report.transaction.pos</field>
266 <field name="type">tree</field>
267 <field name="arch" type="xml">
269 <field name="date_create" widget="date" />
270 <field name="user_id"/>
271 <field name="journal_id"/>
272 <field name="jl_id"/>
273 <field name="no_trans" sum="Total Transaction"/>
274 <field name="amount" sum="Amount total"/>
275 <field name="product_nb" />
276 <field name="invoice_id"/>
282 <record model="ir.ui.view" id="view_report_transaction_pos_calendar">
283 <field name="name">report.transaction.pos.calendar</field>
284 <field name="model">report.transaction.pos</field>
285 <field name="type">calendar</field>
286 <field eval="2" name="priority"/>
287 <field name="arch" type="xml">
288 <calendar color="user_id" date_start="date_create" string="POS Report">
289 <field name="journal_id"/>
290 <field name="amount"/>
295 <record model="ir.ui.view" id="view_report_transaction_pos_graph">
296 <field name="name">report.transaction.pos.graph</field>
297 <field name="model">report.transaction.pos</field>
298 <field name="type">graph</field>
299 <field eval="2" name="priority"/>
300 <field name="arch" type="xml">
301 <graph type="bar" string="POS Report">
302 <field name="user_id" />
303 <field name="amount"/>
304 <field group="True" name="journal_id"/>
309 <record model="ir.actions.act_window" id="action_trans_pos_tree_today">
310 <field name="name">Sales by day</field>
311 <field name="res_model">report.transaction.pos</field>
312 <field name="view_type">form</field>
313 <field name="view_mode">tree,calendar,form,graph</field>
314 <field name="domain">[('date_create','=',time.strftime('%Y-%m-%d'))]</field>
318 <record model="ir.actions.act_window" id="action_trans_pos_tree_month">
319 <field name="name">Sales by month</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','like',time.strftime('%Y-%m'))]</field>
327 <record model="ir.actions.act_window" id="action_trans_pos_tree">
328 <field name="name">Sales by user</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="view_id" ref="view_trans_pos_user_tree"/>
336 <record model="ir.ui.view" id="view_report_sales_by_user_pos_form">
337 <field name="name">report.sales.by.user.pos.form</field>
338 <field name="model">report.sales.by.user.pos</field>
339 <field name="type">form</field>
340 <field name="arch" type="xml">
342 <field name="date_order" widget="date"/>
344 <field name="amount"/>
345 <field name="user_id"/>
351 <record model="ir.ui.view" id="view_report_sales_by_user_pos_tree">
352 <field name="name">report.sales.by.user.pos.tree</field>
353 <field name="model">report.sales.by.user.pos</field>
354 <field name="type">tree</field>
355 <field name="arch" type="xml">
357 <field name="date_order" widget="date"/>
359 <field name="amount"/>
360 <field name="user_id"/>
365 <record model="ir.ui.view" id="view_report_sales_by_user_pos_calendar">
366 <field name="name">report.sales.by.user.pos.calendar</field>
367 <field name="model">report.sales.by.user.pos</field>
368 <field name="type">calendar</field>
369 <field eval="2" name="priority"/>
370 <field name="arch" type="xml">
371 <calendar color="user_id" date_start="date_order" string="POS Report">
373 <field name="amount" />
378 <record model="ir.ui.view" id="view_report_sales_by_user_pos_graph">
379 <field name="name">report.sales.by.user.pos.graph</field>
380 <field name="model">report.sales.by.user.pos</field>
381 <field name="type">graph</field>
382 <field eval="2" name="priority"/>
383 <field name="arch" type="xml">
384 <graph type="bar" string="Sales by User">
385 <field name="user_id" />
386 <field name="amount"/>
391 <record model="ir.actions.act_window" id="action_report_sales_by_user_pos_today">
392 <field name="name">Sales by User</field>
393 <field name="res_model">report.sales.by.user.pos</field>
394 <field name="view_type">form</field>
395 <field name="view_mode">tree,calendar,form,graph</field>
396 <field name="domain">[('date_order','=',time.strftime('%Y-%m-%d'))]</field>
400 <!-- Sales of user by month -->
402 <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_form">
403 <field name="name">report.sales.by.user.pos.month.form</field>
404 <field name="model">report.sales.by.user.pos.month</field>
405 <field name="type">form</field>
406 <field name="arch" type="xml">
408 <field name="date_order" widget="date"/>
410 <field name="amount"/>
411 <field name="user_id"/>
417 <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_tree">
418 <field name="name">report.sales.by.user.pos.month.tree</field>
419 <field name="model">report.sales.by.user.pos.month</field>
420 <field name="type">tree</field>
421 <field name="arch" type="xml">
423 <field name="date_order" widget="date"/>
425 <field name="amount"/>
426 <field name="user_id"/>
431 <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_calendar">
432 <field name="name">report.sales.by.user.pos.month.calendar</field>
433 <field name="model">report.sales.by.user.pos.month</field>
434 <field name="type">calendar</field>
435 <field eval="2" name="priority"/>
436 <field name="arch" type="xml">
437 <calendar color="user_id" date_start="date_order" string="POS Report">
439 <field name="amount" />
444 <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_graph">
445 <field name="name">report.sales.by.user.pos.month.graph</field>
446 <field name="model">report.sales.by.user.pos.month</field>
447 <field name="type">graph</field>
448 <field eval="2" name="priority"/>
449 <field name="arch" type="xml">
450 <graph type="bar" string="Sales by User">
451 <field name="user_id" />
452 <field name="amount"/>
458 <record model="ir.actions.act_window" id="action_report_sales_by_user_pos_month">
459 <field name="name">Sales by User Monthly</field>
460 <field name="res_model">report.sales.by.user.pos.month</field>
461 <field name="view_type">form</field>
462 <field name="view_mode">tree,calendar,form,graph</field>
463 <field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
466 <!-- Sales by margin -->
468 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_form">
469 <field name="name">report.sales.by.margin.pos.form</field>
470 <field name="model">report.sales.by.margin.pos</field>
471 <field name="type">form</field>
472 <field name="arch" type="xml">
474 <field name="user_id"/>
475 <field name="product_name"/>
476 <field name="date_order" widget="date"/>
478 <field name="net_margin_per_qty"/>
479 <field name="total"/>
485 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_tree">
486 <field name="name">report.sales.by.margin.pos.tree</field>
487 <field name="model">report.sales.by.margin.pos</field>
488 <field name="type">tree</field>
489 <field name="arch" type="xml">
491 <field name="user_id"/>
492 <field name="product_name"/>
493 <field name="date_order" widget="date"/>
495 <field name="net_margin_per_qty"/>
496 <field name="total"/>
501 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_calendar">
502 <field name="name">report.sales.by.margin.pos.calendar</field>
503 <field name="model">report.sales.by.margin.pos</field>
504 <field name="type">calendar</field>
505 <field eval="2" name="priority"/>
506 <field name="arch" type="xml">
507 <calendar color="user_id" date_start="date_order" string="Sales by User Margin">
508 <field name="product_name"/>
509 <field name="total" />
514 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_graph">
515 <field name="name">report.sales.by.margin.pos.graph</field>
516 <field name="model">report.sales.by.margin.pos</field>
517 <field name="type">graph</field>
518 <field eval="2" name="priority"/>
519 <field name="arch" type="xml">
520 <graph type="bar" string="Sales by User Margin" orientation="horizontal">
521 <field name="product_name" />
522 <field name="total" operator="+"/>
527 <record model="ir.actions.act_window" id="action_report_sales_by_margin_pos_today">
528 <field name="name">Sales by User Daily margin</field>
529 <field name="res_model">report.sales.by.margin.pos</field>
530 <field name="view_type">form</field>
531 <field name="view_mode">tree,calendar,form,graph</field>
532 <field name="domain">[('date_order','=',time.strftime('%Y-%m-%d'))]</field>
535 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_form">
536 <field name="name">report.sales.by.margin.pos.month.form</field>
537 <field name="model">report.sales.by.margin.pos.month</field>
538 <field name="type">form</field>
539 <field name="arch" type="xml">
541 <field name="user_id"/>
542 <field name="product_name"/>
543 <field name="date_order" widget="date"/>
545 <field name="net_margin_per_qty"/>
546 <field name="total"/>
552 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_tree">
553 <field name="name">report.sales.by.margin.pos.month.tree</field>
554 <field name="model">report.sales.by.margin.pos.month</field>
555 <field name="type">tree</field>
556 <field name="arch" type="xml">
558 <field name="user_id"/>
559 <field name="product_name"/>
560 <field name="date_order" widget="date"/>
562 <field name="net_margin_per_qty"/>
563 <field name="total"/>
568 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_calendar">
569 <field name="name">report.sales.by.margin.pos.month.calendar</field>
570 <field name="model">report.sales.by.margin.pos.month</field>
571 <field name="type">calendar</field>
572 <field eval="2" name="priority"/>
573 <field name="arch" type="xml">
574 <calendar color="user_id" date_start="date_order" string="Sales by User Margin">
575 <field name="product_name"/>
576 <field name="total" />
581 <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_graph">
582 <field name="name">report.sales.by.margin.pos.month.graph</field>
583 <field name="model">report.sales.by.margin.pos.month</field>
584 <field name="type">graph</field>
585 <field eval="2" name="priority"/>
586 <field name="arch" type="xml">
587 <graph type="bar" string="Sales by User Margin" orientation="horizontal">
588 <field name="product_name" />
589 <field name="total" operator="+"/>
594 <record model="ir.actions.act_window" id="action_report_sales_by_margin_pos_month">
595 <field name="name">Sales by User Monthly margin</field>
596 <field name="res_model">report.sales.by.margin.pos.month</field>
597 <field name="view_type">form</field>
598 <field name="view_mode">tree,calendar,form,graph</field>
599 <field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
602 <record id="product_normal_form_pos_view" model="ir.ui.view">
603 <field name="name">product.normal.pos.form.inherit</field>
604 <field name="model">product.product</field>
605 <field name="type">form</field>
606 <field name="inherit_id" ref="product.product_normal_form_view"/>
607 <field name="arch" type="xml">
608 <group name="status" position="after">
609 <group colspan="2" col="2" name="pos">
610 <separator string="Point-of-Sale" colspan="2"/>
611 <field name="pos_categ_id"/>
618 <record id="product_normal_form_view" model="ir.ui.view">
619 <field name="name">product.normal.form.inherit</field>
620 <field name="model">product.product</field>
621 <field name="type">form</field>
622 <field name="inherit_id" ref="product.product_normal_form_view"/>
623 <field name="arch" type="xml">
624 <field name="company_id" position="after">
625 <separator string="Point of Sale" colspan="2"/>
626 <field name="income_pdt"/>
627 <field name="expense_pdt"/>
632 <!-- Categories tree view -->
633 <record id="pos_category_form_view" model="ir.ui.view">
634 <field name="name">pos.category.form</field>
635 <field name="model">pos.category</field>
636 <field name="type">form</field>
637 <field name="arch" type="xml">
638 <form string="PoS Categories">
639 <group colspan="4" col="6">
641 <field name="parent_id"/>
642 <field name="sequence"/>
647 <record id="pos_category_tree_view" model="ir.ui.view">
648 <field name="name">pos.category.tree</field>
649 <field name="model">pos.category</field>
650 <field name="type">tree</field>
651 <field name="field_parent" eval="False"/>
652 <field name="arch" type="xml">
653 <tree string="PoS Categories">
654 <field name="sequence" invisible="1"/>
655 <field name="complete_name"/>
659 <record id="pos_category_action" model="ir.actions.act_window">
660 <field name="name">PoS Categories</field>
661 <field name="type">ir.actions.act_window</field>
662 <field name="res_model">pos.category</field>
663 <field name="view_type">form</field>
664 <field name="view_mode">tree,form</field>
665 <field name="view_id" eval="False"/>
667 <menuitem action="pos_category_action" id="menu_pos_category" parent="menu_point_of_sale_product" sequence="0" />
670 <menuitem name="Configuration" parent="menu_point_root"
671 id="menu_point_config_product" sequence="25" groups="group_pos_manager"/>
673 <record model="ir.actions.act_window" id="action_product_input">
674 <field name="name">Products 'Take Money Out'</field>
675 <field name="type">ir.actions.act_window</field>
676 <field name="res_model">product.product</field>
677 <field name="view_type">form</field>
678 <field name="view_mode">tree,form</field>
679 <field name="domain">[('expense_pdt','=',True)]</field>
680 <field name="context">{'default_expense_pdt': True}</field>
683 parent="menu_point_config_product"
684 action="action_product_input"
685 id="products_for_input_operations"
686 groups="group_pos_manager"/>
688 <record model="ir.actions.act_window" id="action_product_output">
689 <field name="name">Products 'Put Money In'</field>
690 <field name="type">ir.actions.act_window</field>
691 <field name="res_model">product.product</field>
692 <field name="view_type">form</field>
693 <field name="view_mode">tree,form</field>
694 <field name="domain">[('income_pdt','=',True)]</field>
695 <field name="context">{'default_income_pdt': True}</field>
698 parent="menu_point_config_product"
699 action="action_product_output"
700 id="products_for_output_operations"
701 groups="group_pos_manager"/>
704 parent="menu_point_of_sale"
705 action="action_box_entries"
706 id="menu_wizard_enter_jrnl" sequence="2" />
709 parent="menu_point_of_sale"
710 action="action_box_out"
711 id="menu_wizard_enter_jrnl2" sequence="3" />
713 <record id="action_account_journal_form" model="ir.actions.act_window">
714 <field name="name">Payment Methods</field>
715 <field name="res_model">account.journal</field>
716 <field name="view_type">form</field>
717 <field name="view_mode">tree,form</field>
718 <field name="context" eval="{'default_journal_user': 1, 'default_view_id': ref('account.account_journal_bank_view'), 'default_type': 'cash'}"/>
719 <field name="domain">[('journal_user','=', 1)]</field>
720 <field name="help">Payment methods are defined by accounting journals having the field Payment Method checked.</field>
723 <menuitem action="action_account_journal_form"
724 id="menu_action_account_journal_form_open"
725 parent="menu_point_config_product"
728 <record model="ir.ui.view" id="view_pos_order_tree_all_sales_lines">
729 <field name="name">POS Sales Lines</field>
730 <field name="model">pos.order.line</field>
731 <field name="type">tree</field>
732 <field name="arch" type="xml">
733 <tree string="POS Orders lines">
734 <field name="order_id" />
735 <field name="create_date" />
736 <field name="product_id" />
738 <field name="price_unit" />
742 <record model="ir.actions.act_window" id="action_pos_all_sales_lines">
743 <field name="name">All sales lines</field>
744 <field name="type">ir.actions.act_window</field>
745 <field name="res_model">pos.order.line</field>
746 <field name="view_type">form</field>
747 <field name="view_id" ref="view_pos_order_tree_all_sales_lines" />
750 <!-- Miscelleanous Operations/Reporting -->
751 <menuitem name="Point of Sale" parent="base.menu_reporting" id="menu_point_rep" sequence="50" groups="group_pos_manager"/>
754 <record model="ir.actions.act_window" id="action_pos_sale_all">
755 <field name="name">All Sales Orders</field>
756 <field name="type">ir.actions.act_window</field>
757 <field name="res_model">pos.order</field>
758 <field name="view_type">form</field>
759 <field name="view_mode">tree,form</field>
760 <field name="domain">[]</field>
762 <menuitem parent="menu_point_rep" id="menu_point_ofsale_all" action="action_pos_sale_all" sequence="1"/>
764 <record model="ir.actions.act_window" id="action_pos_invoice">
765 <field name="name">Invoices</field>
766 <field name="type">ir.actions.act_window</field>
767 <field name="res_model">account.invoice</field>
768 <field name="view_type">form</field>
769 <field name="view_mode">tree,form</field>
770 <field name="domain">[('origin','like','POS')]</field>
773 <menuitem name="Reporting" id="menu_point_of_sale_reporting" parent="menu_point_root" sequence="20" />
775 <menuitem icon="STOCK_PRINT" action="action_report_pos_details"
776 id="menu_pos_details" parent="menu_point_of_sale_reporting" sequence="6" />
778 <record model="ir.actions.client" id="action_pos_pos">
779 <field name="name">Start Point of Sale</field>
780 <field name="tag">pos.ui</field>
783 <record id="menu_point_root_touchscreen" model="ir.ui.menu">
784 <field name="name">Point of Sale</field>
785 <field name="sequence" eval="21"/>
786 <field name="action" ref="action_pos_pos"/>
789 <!-- use menuitem to add web_icon and web_icon_hover above -->
790 <menuitem id="menu_point_root_touchscreen"
791 web_icon="images/pos.png" web_icon_hover="images/pos-hover.png" groups="point_of_sale.group_pos_manager,point_of_sale.group_pos_user"/>
793 <record model="ir.ui.view" id="view_pos_config_form">
794 <field name="name">pos.config.form.view</field>
795 <field name="model">pos.config</field>
796 <field name="type">form</field>
797 <field name="arch" type="xml">
798 <form string="PoS Configuration">
799 <field name="name" />
800 <notebook colspan="4">
801 <page string="Payment Methods">
802 <field name="journal_ids" colspan="4" nolabel="1"/>
804 <page string="Accounting">
805 <separator string="Accounting" colspan="4" />
806 <field name="shop_id" widget="selection" />
807 <field name="journal_id" widget="selection" />
809 <separator string="Cash Differences" colspan="4" />
810 <field name="profit_account_id" />
811 <field name="loss_account_id" />
812 <field name="authorized_cashbox_diff" />
813 <field name="authorized_cashbox_diff_fixed" />
816 <page string="Interfaces">
817 <field name="iface_self_checkout" />
818 <field name="iface_websql" />
819 <field name="iface_led" />
820 <field name="iface_cashdrawer" />
821 <field name="iface_payment_terminal" />
822 <field name="iface_electronic_scale" />
823 <field name="iface_barscan" />
824 <field name="iface_vkeyboard" />
830 <group colspan="4" col="6">
831 <field name="state" widget="statusbar" statusbar_visible="draft,active,inactive,deprecated" statusbar_colors='{"active":"green", "deprecated" : "red"}'/>
832 <button string="Set to Draft" name="set_draft" type="object" states="deprecated"/>
833 <button string="Set to Active" name="set_active" type="object" states="draft,inactive"/>
834 <button string="Set to Inactive" name="set_inactive" type="object" states="active" />
835 <button string="Set to Deprecated" name="set_deprecate" type="object" states="active,inactive" />
841 <record model="ir.ui.view" id="view_pos_config_tree">
842 <field name="name">pos.config.tree.view</field>
843 <field name="model">pos.config</field>
844 <field name="type">tree</field>
845 <field name="arch" type="xml">
846 <tree string="PoS Configuration">
847 <field name="name" />
848 <field name="state" />
854 id="act_pos_config_sessions"
856 src_model="pos.config"
857 res_model="pos.session"
858 domain="[('config_id', '=', active_id)]" />
860 <record model="ir.actions.act_window" id="action_pos_config_pos">
861 <field name="name">Point of Sales</field>
862 <field name="type">ir.actions.act_window</field>
863 <field name="res_model">pos.config</field>
864 <field name="view_type">form</field>
865 <field name="view_mode">tree,form</field>
869 parent="menu_point_config_product"
870 action="action_pos_config_pos"
871 id="menu_pos_config_pos"
872 groups="group_pos_manager"/>
875 <record model="ir.ui.view" id="view_pos_session_form">
876 <field name="name">pos.session.form.view</field>
877 <field name="model">pos.session</field>
878 <field name="type">form</field>
879 <field name="arch" type="xml">
880 <form string="PoS Session">
881 <group colspan="4" col="6">
882 <field name="config_id" />
883 <field name="name" />
884 <field name="user_id" />
885 <field name="start_at" />
886 <field name="stop_at" />
888 <notebook colspan="4">
891 <page string="Others">
893 <page string="Nothing">
897 <group colspan="4" col="2">
898 <field name="state" widget="statusbar" statusbar_visible="new,opened,closed,posted" statusbar_colors='{"posted":"green"}'/>
899 <button name="open" type="workflow" string="Open" states="new" />
900 <button name="close" type="workflow" string="Close" states="opened" />
901 <button name="post" type="workflow" string="Post" states="closed" />
907 <record model="ir.ui.view" id="view_pos_session_tree">
908 <field name="name">pos.session.tree.view</field>
909 <field name="model">pos.session</field>
910 <field name="type">tree</field>
911 <field name="arch" type="xml">
912 <tree string="PoS Session">
913 <field name="config_id" />
914 <field name="name" />
915 <field name="user_id" />
916 <field name="start_at" />
917 <field name="stop_at" />
923 id="act_pos_session_orders"
925 src_model="pos.session"
926 res_model="pos.order"
927 domain="[('session_id', '=', active_id)]" />
930 <record id="view_pos_order_filter" model="ir.ui.view">
931 <field name="name">pos.order.list.select</field>
932 <field name="model">pos.order</field>
933 <field name="type">search</field>
934 <field name="arch" type="xml">
935 <search string="Search Sales Order">
936 <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/>
937 <filter icon="gtk-apply" string="Done" domain="[('state','in',('paid','invoiced','done'))]"/>
938 <separator orientation="vertical"/>
939 <filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
940 <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
941 <separator orientation="vertical"/>
942 <filter icon="terp-go-month" string="Today" domain="[('date_order','>=',datetime.date.today().strftime('%%Y-%%m-%%d 00:00:00')),('date_order','<=',datetime.date.today().strftime('%%Y-%%m-%%d 23:59:59'))]"/>
943 <filter icon="gtk-go-forward" string="Yesterday" domain="[('date_order','<',datetime.date.today().strftime('%%Y-%%m-%%d 00:00:00')),('date_order','>=',(datetime.date.today() - relativedelta(days=1)).strftime('%%Y-%%m-%%d 00:00:00'))]"/>
944 <separator orientation="vertical"/>
946 <field name="user_id"/>
948 <group expand="0" string="Group By..." groups="base.group_extended">
949 <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
950 <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
951 <separator string="" orientation="vertical"/>
952 <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
953 <separator string="" orientation="vertical"/>
954 <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
961 <record model="ir.ui.view" id="view_pos_session_search">
962 <field name="name">pos.session.search.view</field>
963 <field name="model">pos.session</field>
964 <field name="type">search</field>
965 <field name="arch" type="xml">
966 <search string="PoS Session">
967 <filter string="Open" domain="[('state', '=', 'opened')]" />
968 <separator orientation="vertical"/>
969 <filter string="Today" domain="[('start_at', '>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" />
970 <separator orientation="vertical"/>
971 <field name="config_id" />
972 <field name="name" />
973 <field name="user_id" />
976 <group expand="0" string="Group By...">
977 <filter string="User" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
978 <filter string="PoS" domain="[]" context="{'group_by': 'user_id'}" />
985 <record model="ir.actions.act_window" id="action_pos_session">
986 <field name="name">Point of Sales Session</field>
987 <field name="type">ir.actions.act_window</field>
988 <field name="res_model">pos.session</field>
989 <field name="view_type">form</field>
990 <field name="view_mode">tree,form</field>
992 <field name="search_view_id" ref="view_pos_session_search" />
997 parent="menu_point_of_sale"
998 action="action_pos_session"
999 id="menu_pos_session"
1000 groups="group_pos_manager"/>