<field name="model">pos.order</field>
<field name="type">form</field>
<field name="arch" type="xml">
- <form string="PoS Orders" version="7.0">
- <header>
- <button name="%(action_pos_payment)d" string="Payment" type="action" states="draft" class="oe_highlight"/>
- <button name="%(action_report_pos_receipt)d" string="Reprint" type="action" states="paid,done,invoiced"/>
- <button name="action_invoice" string="Invoice" icon="gtk-apply" type="object" states="paid" attrs="{'readonly': [('partner_id','=',False)]}" class="oe_highlight"/>
- <button name="done" string="Post Entries" icon="gtk-apply" type="workflow" states="paid" class="oe_highlight"/>
- <button name="refund" string="Return Products" type="object"
- attrs="{'invisible':[('state','=','draft')]}" class="oe_form_button_return_flow"/>
- <field name="state" widget="statusbar" statusbar_visible="draft,paid,done" statusbar_colors='{"cancel":"red"}'/>
- </header>
- <sheet>
- <group>
- <group>
- <field name="partner_id" on_change="onchange_partner_id(partner_id)" context="{'search_default_customer':1}" attrs="{'readonly': [('state','=','invoiced')]}"/>
- </group><group>
- <field name="name"/>
- <field name="date_order"/>
- </group>
+ <form string="Point of Sale Orders" version="7.0">
+ <div class="oe_form_topbar">
+ <button name="%(action_pos_payment)d" string="Payment" icon="gtk-apply" type="action" states="draft" context="{'pos_session_id' : session_id}"/>
+ <button name="action_invoice" string="Invoice" icon="gtk-apply" type="object" states="paid" attrs="{'readonly': [('partner_id','=',False)]}"/>
+ <button name="refund" string="Return Products" type="object" icon="gtk-ok"
+ attrs="{'invisible':[('state','=','draft')]}"/>
+ <button name="%(action_report_pos_receipt)d" string="Reprint" icon="gtk-print" type="action" states="paid,done,invoiced"/>
+ <div class="oe_right">
+ <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,paid,done" statusbar_colors='{"cancel":"red"}'/>
+ </div>
+ </div>
+ <sheet>
+ <group col="4" colspan="4">
+ <field name="name"/>
+ <field name="date_order"/>
+ <field name="session_id" required="1" />
+ <field name="partner_id" on_change="onchange_partner_id(partner_id)" context="{'search_default_customer':1}" attrs="{'readonly': [('state','=','invoiced')]}"/>
</group>
- <notebook>
- <page string="Sale Order">
- <field name="lines">
+ <notebook colspan="4">
+ <page string="Products">
+ <field name="lines" colspan="4" nolabel="1">
<tree string="Order lines" editable="bottom">
<field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,qty,parent.partner_id)"/>
<field name="qty" on_change="onchange_qty(product_id, discount, qty, price_unit, context)"/>
<button name="button_dummy" string="Update" icon="gtk-execute" states="draft" />
</group>
</page>
- <page string="Payment">
- <field name="statement_ids">
+ <page string="Payments">
+ <field name="statement_ids" colspan="4" nolabel="1">
<tree editable="bottom" string="Statement lines">
<field name="journal_id"/>
<field name="statement_id" />
</field>
</record>
<record model="ir.actions.act_window" id="action_pos_pos_form">
- <field name="name">PoS Orders</field>
+ <field name="name">Orders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">pos.order</field>
<field name="view_type">form</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Sales Order">
+ <field name="name" string="Sales Order"/>
+ <separator orientation="vertical"/>
+ <field name="date_order"/>
+ <separator orientation="vertical"/>
<filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/>
<filter icon="gtk-apply" string="Done" domain="[('state','in',('paid','invoiced','done'))]"/>
- <separator orientation="vertical"/>
<filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
<filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
<separator orientation="vertical"/>
- <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'))]"/>
- <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'))]"/>
- <separator orientation="vertical"/>
- <field name="name"/>
<field name="user_id"/>
- <newline/>
<group expand="0" string="Group By...">
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<field name="type">form</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
- <group name="status" position="after">
- <group name="pos" string="Point of Sale">
- <field name="pos_categ_id"/>
- </group>
- </group>
- </field>
- </record>
-
-
- <record id="product_normal_form_view" model="ir.ui.view">
- <field name="name">product.normal.form.inherit</field>
- <field name="model">product.product</field>
- <field name="type">form</field>
- <field name="inherit_id" ref="product.product_normal_form_view"/>
- <field name="arch" type="xml">
- <field name="company_id" position="after">
- <separator string="Point of Sale" colspan="2"/>
- <field name="income_pdt"/>
- <field name="expense_pdt"/>
- </field>
+ <group name="status" position="after">
+ <group name="pos" string="Point of Sale">
+ <field name="pos_categ_id"/>
+ <field name="to_weight" />
+ </group>
+ </group>
+ <group name="misc" position="after">
+ <group name="pos" colspan="2" col="2">
+ <separator string="Point of Sale" colspan="2"/>
+ <field name="income_pdt"/>
+ <field name="expense_pdt"/>
+ </group>
+ </group>
+ <!-- <field name="ean13" position="after">
+ <button name="add_ean13" type="object" string="Edit" />
+ </field> -->
</field>
</record>
<field name="model">pos.category</field>
<field name="type">form</field>
<field name="arch" type="xml">
- <form string="PoS Categories" version="7.0">
- <sheet>
- <group col="4">
- <field name="name"/>
- <field name="parent_id"/>
- <field name="sequence"/>
- </group>
+ <form string="Product PoS Categories" version="7.0">
+ <sheet>
+ <field name="category_image" widget='image' class="oe_avatar oe_right"/>
+ <div class="oe_left">
+ <group>
+ <field name="name"/>
+ <field name="parent_id"/>
+ <field name="sequence"/>
+ </group>
+ </div>
</sheet>
</form>
</field>
<field name="type">tree</field>
<field name="field_parent" eval="False"/>
<field name="arch" type="xml">
- <tree string="PoS Categories">
+ <tree string="Product PoS Categories">
<field name="sequence" invisible="1"/>
<field name="complete_name"/>
</tree>
</field>
</record>
<record id="pos_category_action" model="ir.actions.act_window">
- <field name="name">PoS Categories</field>
+ <field name="name">Product Categories</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">pos.category</field>
<field name="view_type">form</field>
<menuitem name="Configuration" parent="menu_point_root"
id="menu_point_config_product" sequence="25" groups="group_pos_manager"/>
- <record model="ir.actions.act_window" id="action_product_input">
- <field name="name">Products 'Take Money Out'</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">product.product</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">[('expense_pdt','=',True)]</field>
- <field name="context">{'default_expense_pdt': True}</field>
- </record>
- <menuitem
- parent="menu_point_config_product"
- action="action_product_input"
- id="products_for_input_operations"
- groups="group_pos_manager"/>
-
- <record model="ir.actions.act_window" id="action_product_output">
- <field name="name">Products 'Put Money In'</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">product.product</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">[('income_pdt','=',True)]</field>
- <field name="context">{'default_income_pdt': True}</field>
- </record>
- <menuitem
- parent="menu_point_config_product"
- action="action_product_output"
- id="products_for_output_operations"
- groups="group_pos_manager"/>
-
- <menuitem
- parent="menu_point_of_sale"
- action="action_box_entries"
- id="menu_wizard_enter_jrnl" sequence="2" />
-
- <menuitem
- parent="menu_point_of_sale"
- action="action_box_out"
- id="menu_wizard_enter_jrnl2" sequence="3" />
-
<record id="action_account_journal_form" model="ir.actions.act_window">
<field name="name">Payment Methods</field>
<field name="res_model">account.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
- <field name="context" eval="{'default_journal_user': 1, 'default_view_id': ref('account.account_journal_bank_view'), 'default_type': 'cash'}"/>
+ <field name="context" eval="{'default_journal_user': 1, 'default_type': 'cash'}"/>
<field name="domain">[('journal_user','=', 1)]</field>
<field name="help">Payment methods are defined by accounting journals having the field Payment Method checked.</field>
</record>
<menuitem name="Point of Sale" parent="base.menu_reporting" id="menu_point_rep" sequence="50" groups="group_pos_manager"/>
<!-- Invoice -->
- <record model="ir.actions.act_window" id="action_pos_sale_all">
- <field name="name">All Sales Orders</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">pos.order</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">[]</field>
- </record>
- <menuitem parent="menu_point_rep" id="menu_point_ofsale_all" action="action_pos_sale_all" sequence="1"/>
-
<record model="ir.actions.act_window" id="action_pos_invoice">
<field name="name">Invoices</field>
<field name="type">ir.actions.act_window</field>
<field name="domain">[('origin','like','POS')]</field>
</record>
- <menuitem name="Reporting" id="menu_point_of_sale_reporting" parent="menu_point_root" sequence="20" />
-
<menuitem icon="STOCK_PRINT" action="action_report_pos_details"
- id="menu_pos_details" parent="menu_point_of_sale_reporting" sequence="6" />
+ id="menu_pos_details" parent="menu_point_rep" sequence="6" />
<record model="ir.actions.client" id="action_pos_pos">
- <field name="name">Start Point of Sale</field>
- <field name="tag">pos.ui</field>
+ <field name="name">Start Point of Sale</field>
+ <field name="tag">pos.ui</field>
</record>
<record id="menu_point_root_touchscreen" model="ir.ui.menu">
<menuitem id="menu_point_root_touchscreen"
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"/>
+ <record model="ir.ui.view" id="view_pos_config_form">
+ <field name="name">pos.config.form.view</field>
+ <field name="model">pos.config</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Point of Sale Configuration" version="7.0">
+ <header>
+ <button string="Set to Active" name="set_active" type="object" states="inactive,deprecated"/>
+ <button string="Set to Inactive" name="set_inactive" type="object" states="active" />
+ <button string="Set to Deprecated" name="set_deprecate" type="object" states="active,inactive" />
+ <div class="oe_right">
+ <field name="state" widget="statusbar" statusbar_visible="active,inactive,deprecated" statusbar_colors='{"deprecated" : "red"}' nolabel="1"/>
+ </div>
+ </header>
+
+ <sheet>
+ <group>
+ <field name="name"/>
+ <field name="shop_id" widget="selection" />
+ <field name="journal_id" widget="selection" />
+ <field name="sequence_id" readonly="1"/>
+ <field name="group_by" />
+ </group>
+ <separator string="Available Payment Methods" colspan="4"/>
+ <field name="journal_ids" colspan="4" nolabel="1">
+ <tree string="Journals">
+ <field name="code" />
+ <field name="name" />
+ <field name="type" />
+ <field name="opening_control" />
+ <field name="closing_control" />
+ </tree>
+ </field>
+ <group string="Material Interfaces" >
+ <group>
+ <field name="iface_self_checkout" />
+ <field name="iface_websql" />
+ <field name="iface_led" />
+ <field name="iface_cashdrawer" />
+ <field name="iface_payment_terminal" />
+ </group>
+ <group>
+ <field name="iface_electronic_scale" />
+ <field name="iface_barscan" />
+ <field name="iface_vkeyboard" />
+ <field name="iface_print_via_proxy" />
+ </group>
+ </group>
+ </sheet>
+
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_pos_config_tree">
+ <field name="name">pos.config.tree.view</field>
+ <field name="model">pos.config</field>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <tree string="Point of Sale Configuration" colors="grey:state == 'inactive'">
+ <field name="name" />
+ <field name="shop_id" />
+ <field name="state" />
+ </tree>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_pos_config_search">
+ <field name="name">pos.config.search.view</field>
+ <field name="model">pos.config</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Point of Sale Config">
+ <filter string="Active" domain="[('state', '=', 'active')]" />
+ <filter string="Inactive" domain="[('state', '=', 'inactive')]" />
+ <separator orientation="vertical"/>
+ <field name="name" />
+ <field name="shop_id" />
+
+ </search>
+ </field>
+ </record>
+
+
+ <act_window
+ id="act_pos_config_sessions"
+ name="Sessions"
+ src_model="pos.config"
+ res_model="pos.session"
+ domain="[('config_id', '=', active_id)]" />
+
+ <record model="ir.actions.act_window" id="action_pos_config_pos">
+ <field name="name">Point of Sales</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">pos.config</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="view_pos_config_search" />
+ </record>
+
+ <menuitem
+ parent="menu_point_config_product"
+ action="action_pos_config_pos"
+ id="menu_pos_config_pos"
+ groups="group_pos_manager"/>
+
+ <act_window
+ id="act_pos_session_orders"
+ name="Orders"
+ src_model="pos.session"
+ res_model="pos.order"
+ context="{'search_default_session_id': active_id, 'default_session_id' : active_id }" />
+
+
+
+ <record model="ir.ui.view" id="view_pos_session_form">
+ <field name="name">pos.session.form.view</field>
+ <field name="model">pos.session</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Point of Sale Session" version="7.0">
+ <header>
+ <button name="open" type="workflow" string="Validate & Open Session" states="opening_control" />
+ <button name="cashbox_control" type="workflow" string="End of Session" states="opened" />
+ <button name="close" type="workflow" string="Validate & Close" states="closing_control,opened" />
+
+ <div class="oe_right">
+ <field name="state" widget="statusbar" statusbar_visible="opening_control,opened,closing_control,closed" nolabel="1"/>
+ </div>
+ </header>
+ <sheet>
+
+ <group>
+ <field name="config_id"/>
+ <field name="has_opening_control" invisible="1" />
+ <field name="has_closing_control" invisible="1" />
+ <group>
+ <button name="%(action_pos_box_in)d" string="Put Money In" type="action" states="opened"/>
+ <button name="%(action_pos_box_out)d" string="Take Money Out" type="action" states="opened"/>
+ <button name="open_frontend_cb" type="object" string="Open Point Of Sale" states="opened" />
+ </group>
+ <newline/>
+ <field name="user_id" />
+ <field name="name" />
+ <newline/>
+ <field name="start_at" attrs="{'insivible' : [('state', '=', 'opening_control')]}"/>
+ <field name="stop_at" attrs="{'insivible' : [('state', '=', 'opening_control')]}"/>
+ <separator string="Cash Control" colspan="4"/>
+ <field name="cash_register_id" invisible="1" />
+ <field name="opening_details_ids" colspan="4" nolabel="1" attrs="{'invisible' : [('state', 'not in', ('opening_control',))]}">
+ <tree string="Opening Cashbox Lines" editable="bottom">
+ <field name="pieces" readonly="1" />
+ <field name="number_opening" string="Opening Unit Numbers" on_change="on_change_sub_opening(pieces, number_opening, parent.balance_end)" />
+ <field name="subtotal_opening" string="Opening Subtotal" sum="Total"/>
+ </tree>
+ </field>
+
+ <field name="details_ids" colspan="4" nolabel="1" attrs="{'invisible': [('state', '=', 'opening_control')]}">
+ <tree string="Cashbox Lines" editable="bottom">
+ <field name="pieces" readonly="1" />
+ <field name="number_opening" readonly="1"/>
+ <field name="subtotal_opening"/>
+ <field name="number_closing"/>
+ <field name="subtotal_closing"/>
+ </tree>
+ </field>
+
+
+ <group col="4" colspan="4">
+ <group col="2" colspan="2">
+ <separator string="Cash Balance" colspan="2"/>
+ <field name="cash_register_balance_start" readonly="1" string="Opening Cash Control"/>
+ <field name="cash_register_total_entry_encoding" attrs="{'invisible' : [('state', '=', 'opening_control')]}" string="+ Transactions"/>
+ <field name="cash_register_balance_end" attrs="{'invisible' : [('state', '=', 'opening_control')]}" string="= Theorical Cash Closing"/>
+ </group>
+ <group col="2" colspan="2" attrs="{'invisible' : [('state', '=', 'opening_control')]}">
+ <separator string="Cash Closing Balance" colspan="2"/>
+ <field name="cash_register_balance_end_real"/>
+ <field name="cash_register_difference" />
+ </group>
+ </group>
+
+ <separator string="Summary by Payment Methods" colspan="4" attrs="{'invisible' : [('state', '=', 'opening_control')]}"/>
+ <field name="statement_ids" colspan="4" nolabel="1" attrs="{'invisible' : [('state', '=', 'opening_control')]}">
+ <tree string="Statements">
+ <field name="name" />
+ <field name="journal_id" />
+ <field name="balance_start" />
+ <field name="total_entry_encoding" />
+ <field name="balance_end_real" />
+ <field name="difference" />
+ <field name="currency" />
+ <field name="state" />
+ </tree>
+ </field>
+ </group>
+
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_pos_session_tree">
+ <field name="name">pos.session.tree.view</field>
+ <field name="model">pos.session</field>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <tree string="Point of Sale Session">
+ <field name="config_id" />
+ <field name="name" />
+ <field name="user_id" />
+ <field name="start_at" />
+ <field name="stop_at" />
+ </tree>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_pos_session_search">
+ <field name="name">pos.session.search.view</field>
+ <field name="model">pos.session</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Point of Sale Session">
+ <filter string="Open" domain="[('state', '=', 'opened')]" />
+ <separator orientation="vertical"/>
+ <filter string="Today" domain="[('start_at', '>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" />
+ <separator orientation="vertical"/>
+ <field name="config_id" />
+ <field name="name" />
+ <field name="user_id" />
+
+ <newline />
+ <group expand="0" string="Group By...">
+ <filter string="User" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
+ <filter string="Point of Sales" domain="[]" context="{'group_by': 'user_id'}" />
+ </group>
+ </search>
+ </field>
+ </record>
+
+
+ <record model="ir.actions.act_window" id="action_pos_session">
+ <field name="name">All Sessions</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">pos.session</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="view_pos_session_search" />
+ </record>
+
+ <menuitem
+ parent="menu_point_rep"
+ action="action_pos_session"
+ id="menu_pos_session"
+ sequence="0"
+ groups="group_pos_manager"/>
+
+ <menuitem
+ parent="menu_point_of_sale"
+ action="action_pos_session"
+ id="menu_pos_session_all"
+ sequence="0"
+ groups="group_pos_manager"/>
+
+ <record id="view_pos_order_filter" model="ir.ui.view">
+ <field name="name">pos.order.list.select</field>
+ <field name="model">pos.order</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Search Sales Order">
+ <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/>
+ <filter icon="gtk-apply" string="Done" domain="[('state','in',('paid','invoiced','done'))]"/>
+ <separator orientation="vertical"/>
+ <filter icon="terp-check" string="Invoiced" domain="[('state','=','invoiced')]"/>
+ <filter icon="gtk-convert" string="Posted" domain="[('state','=','done')]"/>
+ <separator orientation="vertical"/>
+ <field name="name"/>
+ <field name="user_id"/>
+ <field name="date_order"/>
+ <field name="session_id"/>
+ <newline/>
+ <group expand="0" string="Group By..." groups="base.group_extended">
+ <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
+ <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
+ <filter string="Session" icon="terp-personal" domain="[]" context="{'group_by':'session_id'}"/>
+ <separator string="" orientation="vertical"/>
+ <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
+ <separator string="" orientation="vertical"/>
+ <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
+ <menuitem action="action_pos_session_opening" parent="menu_point_of_sale" id="menu_pos_session_opening" sequence="0" />
+
+ <record model="ir.ui.view" id="view_pos_session_form">
+ <field name="name">pos.ean_wizard</field>
+ <field name="model">pos.ean_wizard</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="ASDFDASF of Sale Session" version="7.0">
+ <field name="ean13_pattern"/>
+ <footer>
+ <button name="sanitize_ean13" type="object" string="Apply"/>
+ </footer>
+ </form>
+ </field>
+ </record>
+
+
</data>
</openerp>