<field name="name">account.invoice.line.form</field>
<field name="model">account.invoice.line</field>
<field name="arch" type="xml">
- <form string="Invoice Line" version="7.0">
+ <form string="Invoice Line">
<group>
<group>
- <field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
+ <field name="product_id"
+ on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, parent.company_id, context)" context="{'partner_id': parent.partner_id}"/>
<label for="quantity"/>
<div>
<field name="quantity" class="oe_inline"/>
<field name="uos_id" class="oe_inline" groups="product.group_uom"
- on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
+ on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, parent.company_id, context)"/>
</div>
<field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
</group>
<group>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '<>', 'view')]" name="account_id" on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)" groups="account.group_account_user"/>
- <field name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]" widget="many2many_tags"/>
- <field domain="[('type','<>','view'), ('company_id', '=', parent.company_id)]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
+ <field name="invoice_line_tax_id" context="{'type':parent.get('type')}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]" widget="many2many_tags"/>
+ <field domain="[('type','<>','view'), ('company_id', '=', parent.company_id)], ('state','not in',('close','cancelled'))]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
</group>
</group>
<field name="name">account.invoice.tax.form</field>
<field name="model">account.invoice.tax</field>
<field name="arch" type="xml">
- <form string="Manual Invoice Taxes" version="7.0">
+ <form string="Manual Invoice Taxes">
<group col="4">
<field name="name"/>
<field name="sequence"/>
<field name="account_id" groups="account.group_account_user"/>
- <field name="account_analytic_id" domain="[('type','<>','view'), ('company_id', '=', parent.company_id)]" groups="analytic.group_analytic_accounting"/>
+ <field name="account_analytic_id" domain="[('type','<>','view'), ('company_id', '=', parent.company_id), ('state','not in',('close','cancelled')]" groups="analytic.group_analytic_accounting"/>
<field name="manual"/>
<field name="amount"/>
<field name="base" readonly="0"/>
<field name="arch" type="xml">
<tree colors="blue:state == 'draft';black:state in ('proforma','proforma2','open');gray:state == 'cancel'" string="Invoice">
<field name="partner_id" groups="base.group_user"/>
+ <field name="commercial_partner_id" invisible="1"/>
<field name="date_invoice"/>
<field name="number"/>
<field name="reference" invisible="1"/>
<field name="journal_id" invisible="1"/>
<field name="period_id" invisible="1" groups="account.group_account_user"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
- <field name="user_id"/>
+ <field name="user_id" string="Salesperson"/>
<field name="date_due"/>
<field name="origin"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="model">account.invoice</field>
<field name="priority">2</field>
<field name="arch" type="xml">
- <form string="Supplier Invoice" version="7.0">
+ <form string="Supplier Invoice">
<header>
<button name="invoice_open" states="draft,proforma2" string="Validate" class="oe_highlight" groups="account.group_account_invoice"/>
<button name="%(action_account_invoice_refund)d" type='action' string='Ask Refund' states='open,paid' groups="account.group_account_invoice"/>
<group>
<group>
<field string="Supplier" name="partner_id"
- on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)"
+ on_change="onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, context)"
context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}"
domain="[('supplier', '=', True)]"/>
- <field name="fiscal_position" widget="selection"/>
+ <field name="fiscal_position" options="{'no_create': True}"/>
<field name="origin"/>
<field name="supplier_invoice_number"/>
<label for="reference_type"/>
</div>
</group>
<group>
- <field name="date_invoice"/>
+ <field name="date_invoice" on_change="onchange_payment_term_date_invoice(payment_term, date_invoice)" />
<field name="date_due"/>
<field domain="[('company_id', '=', company_id), ('type', '=', 'payable')]"
name="account_id" groups="account.group_account_user"/>
<field name="journal_id" groups="account.group_account_user"
- on_change="onchange_journal_id(journal_id, context)" widget="selection"/>
+ on_change="onchange_journal_id(journal_id)" options="{'no_create': True}"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="check_total" groups="account.group_supplier_inv_check_total"/>
</group>
<tree string="Invoice lines" editable="bottom">
<field name="sequence" widget="handle" />
<field name="product_id"
- on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
+ on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, parent.company_id, context)" context="{'partner_id': parent.partner_id}"/>
<field name="name"/>
<field name="company_id" invisible="1"/>
<field name="account_id" groups="account.group_account_user"
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '=', 'other')]"
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
- domain="[('type','!=','view'), ('company_id', '=', parent.company_id)]"/>
+ domain="[('type','!=','view'), ('company_id', '=', parent.company_id), ('state','not in',('close','cancelled'))]"/>
<field name="quantity"/>
<field name="uos_id" groups="product.group_uom"
- on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
+ on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, parent.company_id, context)"/>
<field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="invoice_line_tax_id" widget="many2many_tags" context="{'type':parent.type}"
<group>
<group>
<field domain="[('partner_id', '=', partner_id)]" name="partner_bank_id" on_change="onchange_partner_bank(partner_bank_id)"/>
- <field name="user_id"/>
+ <field name="user_id" string="Responsible" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'account.group_account_invoice']}"/>
<field name="name" invisible="1"/>
- <field name="payment_term" widget="selection"/>
+ <field name="payment_term" options="{'no_create': True}"/>
</group>
<group>
<field name="move_id" groups="account.group_account_user"/>
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="arch" type="xml">
- <form string="Invoice" version="7.0">
+ <form string="Invoice">
<header>
<button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight" groups="base.group_user"/>
<button name="invoice_print" string="Print" type="object" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight" groups="base.group_user"/>
</header>
<sheet string="Invoice">
<h1>
- <label string="Draft Invoice " attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','<>','out_invoice')]}"/>
- <label string="Draft Refund " attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','<>','out_refund')]}"/>
- <label string="Pro Forma Invoice " attrs="{'invisible': [('state','not in',('proforma','proforma2'))]}"/>
- <label string="Invoice " attrs="{'invisible': ['|',('state','in',('draft','proforma','proforma2')), ('type','<>','out_invoice')]}"/>
- <label string="Refund " attrs="{'invisible': ['|',('state','in',('draft','proforma','proforma2')), ('type','<>','out_refund')]}"/>
+ <label string="Draft Invoice" attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','<>','out_invoice')]}"/>
+ <label string="Draft Refund" attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','<>','out_refund')]}"/>
+ <label string="Pro Forma Invoice" attrs="{'invisible': [('state','not in',('proforma','proforma2'))]}"/>
+ <label string="Invoice" attrs="{'invisible': ['|',('state','in',('draft','proforma','proforma2')), ('type','<>','out_invoice')]}"/>
+ <label string="Refund" attrs="{'invisible': ['|',('state','in',('draft','proforma','proforma2')), ('type','<>','out_refund')]}"/>
<field name="number" readonly="1" class="oe_inline"/>
</h1>
<field name="type" invisible="1"/>
<group>
<group>
<field string="Customer" name="partner_id"
- on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)"
- groups="base.group_user" context="{'search_default_customer':1, 'show_address': 1}"
+ on_change="onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, context)"
+ context="{'search_default_customer':1, 'show_address': 1}"
options='{"always_reload": True}'
domain="[('customer', '=', True)]"/>
- <field name="fiscal_position" widget="selection" />
+ <field name="fiscal_position" options="{'no_create': True}" />
</group>
<group>
- <field name="date_invoice"/>
+ <field name="date_invoice" on_change="onchange_payment_term_date_invoice(payment_term, date_invoice)" />
<field name="journal_id" groups="account.group_account_user"
- on_change="onchange_journal_id(journal_id, context)" widget="selection"/>
+ on_change="onchange_journal_id(journal_id)" options="{'no_create': True}"/>
<field domain="[('company_id', '=', company_id),('type','=', 'receivable')]"
name="account_id" groups="account.group_account_user"/>
<label for="currency_id" groups="base.group_multi_currency"/>
<div groups="base.group_multi_currency">
<field name="currency_id" class="oe_inline"/>
- <!-- note fp: I don't think we need this feature ?
<button name="%(action_account_change_currency)d" type="action"
- icon="terp-stock_effects-object-colorize"
+ class="oe_inline oe_link oe_edit_only"
+ string="(change)"
attrs="{'invisible':[('state','!=','draft')]}"
- groups="account.group_account_user"/> -->
+ groups="account.group_account_user"/>
</div>
</group>
</group>
<tree string="Invoice Lines" editable="bottom">
<field name="sequence" widget="handle"/>
<field name="product_id"
- on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
+ on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, parent.company_id, context)"/>
<field name="name"/>
<field name="company_id" invisible="1"/>
<field name="account_id" groups="account.group_account_user"
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '=', 'other')]"
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
- domain="[('type','!=','view'), ('company_id', '=', parent.company_id)]"/>
+ domain="[('type','!=','view'), ('company_id', '=', parent.company_id), ('state','not in',('close','cancelled'))]"/>
<field name="quantity"/>
<field name="uos_id" groups="product.group_uom"
- on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
+ on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, parent.company_id, context)"/>
<field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="invoice_line_tax_id" widget="many2many_tags" context="{'type':parent.type}"
<group col="4">
<group>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
- <field name="user_id" groups="base.group_user"/>
+ <field name="user_id" groups="base.group_user" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'account.group_account_invoice']}"/>
<field domain="[('partner_id.ref_companies', 'in', [company_id])]" name="partner_bank_id"/>
<field name="period_id" domain="[('state', '=', 'draft'), ('company_id', '=', company_id)]"
groups="account.group_account_manager"
</group>
<group>
<field name="origin" groups="base.group_user"/>
- <field name="name" string="Customer Reference"/>
+ <field name="name"/>
<field name="move_id" groups="account.group_account_user"/>
</group>
</group>
</field>
</record>
+ <!-- Custom reports (aka filters) -->
+ <record id="filter_invoice_salespersons" model="ir.filters">
+ <field name="name">By Salespersons</field>
+ <field name="model_id">account.invoice</field>
+ <field name="user_id" eval="False"/>
+ <field name="context">{'group_by': ['date_invoice:month', 'user_id']}</field>
+ </record>
+
<record id="view_account_invoice_filter" model="ir.ui.view">
<field name="name">account.invoice.select</field>
<field name="model">account.invoice</field>
<filter name="invoices" string="Invoices" domain="[('state','not in',['draft','cancel'])]" help="Proforma/Open/Paid Invoices"/>
<filter name="unpaid" string="Unpaid" domain="[('state','=','open')]" help="Unpaid Invoices"/>
<separator/>
- <filter domain="[('user_id','=',uid)]" help="My Invoices" icon="terp-personal"/>
- <field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
+ <field name="partner_id" operator="child_of"/>
<field name="user_id" string="Salesperson"/>
<field name="period_id" string="Period"/>
- <group expand="0" string="Group By...">
- <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
- <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
- <filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
- <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
- <filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id'}"/>
- <filter string="Invoice Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_invoice'}"/>
- <filter string="Due Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_due'}"/>
+ <separator/>
+ <filter domain="[('user_id','=',uid)]" help="My Invoices"/>
+ <group expand="0" string="Group By">
+ <filter name="group_by_partner_id" string="Partner" context="{'group_by':'partner_id'}"/>
+ <filter string="Salesperson" context="{'group_by':'user_id'}"/>
+ <filter string="Status" context="{'group_by':'state'}"/>
+ <separator/>
+ <filter string="Period" context="{'group_by':'period_id'}"/>
+ <filter string="Due Month" context="{'group_by':'date_due'}"/>
</group>
</search>
</field>
<p class="oe_view_nocontent_create">
Click to create a customer invoice.
</p><p>
- OpenERP's electronic invoicing allows to ease and fasten the
+ Odoo's electronic invoicing allows to ease and fasten the
collection of customer payments. Your customer receives the
invoice by email and he can pay online and/or import it
in his own system.
Click to record a new supplier invoice.
</p><p>
You can control the invoice from your supplier according to
- what you purchased or received. OpenERP can also generate
+ what you purchased or received. Odoo can also generate
draft invoices automatically from purchase orders or receipts.
</p>
</field>
</record>
- <menuitem action="action_invoice_tree2" id="menu_action_invoice_tree2" parent="menu_finance_payables"/>
+ <menuitem action="action_invoice_tree2" id="menu_action_invoice_tree2" parent="menu_finance_payables" sequence="1"/>
<record id="action_invoice_tree3" model="ir.actions.act_window">
<field name="name">Customer Refunds</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
- Click to create a customer refund.
+ Click to create a customer refund.
</p><p>
A refund is a document that credits an invoice completely or
partially.
</p>
</field>
</record>
- <menuitem action="action_invoice_tree4" id="menu_action_invoice_tree4" parent="menu_finance_payables"/>
-
- <act_window context="{'search_default_partner_id':[active_id], 'default_partner_id': active_id}" id="act_res_partner_2_account_invoice_opened" name="Invoices" res_model="account.invoice" src_model="res.partner"/>
+ <menuitem action="action_invoice_tree4" id="menu_action_invoice_tree4" parent="menu_finance_payables" sequence="2"/>
<act_window
id="act_account_journal_2_account_invoice_opened"