Analytic Account form
-->
+ <record model="ir.actions.act_window" id="action_sales_order">
+ <field name="name">Sales Orders</field>
+ <field name="res_model">sale.order</field>
+ <field name="src_model">account.analytic.account</field>
+ </record>
- <act_window
- id="action_sales_order_line"
- name="Sales Order Lines"
- res_model="sale.order.line"
- src_model="account.analytic.account"
- />
-
- <record id="hr_timesheet.account_analytic_account_form_form" model="ir.ui.view">
+ <record id="account_analytic_account_form_form" model="ir.ui.view">
<field name="name">account.analytic.account.invoice.form.inherit</field>
<field name="model">account.analytic.account</field>
- <field name="type">form</field>
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
- <field eval="18" name="priority"/>
+ <field eval="40" name="priority"/>
<field name="arch" type="xml">
- <xpath expr='//field[@name="type"]' position='after'>
- <field name="template_id" on_change="on_change_template(template_id,context)" domain="[('type','=','template')]" attrs="{'invisible': [('type','in',['view', 'normal','template'])]}" context="{'default_type' : 'template'}"/>
+ <xpath expr='//div[@name="duration"]' position="after" version="7.0">
+ <label for="quantity_max"/>
+ <div>
+ <field name="quantity_max" class="oe_inline"/>
+ </div>
</xpath>
- <xpath expr='//field[@name="date"]' position="after">
- <group col="6" colspan="2" class="oe_form_group_label_border">
- <field name="quantity_max"/><label string="/"/> <label string="Remaining"/> <field name="remaining_hours" nolabel="1"/>
- </group>
+ <xpath expr='//group[@name="invoice_on_timesheets"]' position="replace">
</xpath>
- <xpath expr='//field[@name="pricelist_id"]' position='before'>
- <separator colspan="4" string="Invoicing" name="invoicing"/>
- <table border="0" colspan="4">
- <tr>
- <th class="oe_th_160px" height="20px"></th>
- <th width="10px"></th>
- <th class="oe_th_110px">Est.Tot</th>
- <th class="oe_th_110px">Invoiced</th>
- <th class="oe_th_110px">Remaining</th>
- <th class="oe_th_110px">Ready To Invoice</th>
- <th width="10px"></th>
- <th></th>
- <th></th>
- </tr>
- <tr>
- <th class="oe_border_right">Fix Price Invoices</th>
- <td><field name="fix_price_invoices" nolabel="1"/></td>
- <td><field class="oe_th_110px" name="amount_max" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
- <td class="oe_th_110px"><field name="ca_invoiced" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
- <td class="oe_th_110px oe_border_right"><field name="remaining_ca" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
- <td class="oe_th_110px"><field name="ca_to_invoice" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
- <td width="10px"></td>
- <td><button icon="terp-check" class= "oe_btn_width" name="%(action_sales_order_line)d" string="Sales" type="action" context="{'default_project_id': active_id,'search_default_project_id': active_id}" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
- <td><button icon="terp-dolar_ok!" class= "oe_btn_width" name="%(sale.action_order_line_tree2)d" string="Lines To Invoice" type="action" context="{'default_project_id': active_id,'search_default_project_id': active_id}" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
- </tr>
+ <xpath expr='//separator[@name="description"]' position='before'>
+ <separator name="toinvoice" string="Invoicing"/>
+ <table class="oe_form_analytic_account">
<tr>
- <th class="oe_border_right">Invoice On Timesheets</th>
- <td><field name="invoice_on_timesheets" nolabel="1"/></td>
- <td><field class="oe_th_110px" name="hours_qtt_est" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
- <td class="oe_th_110px"><field name="hours_qtt_invoiced" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
- <td class="oe_th_110px oe_border_right"><field name="remaining_hours_to_invoice" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
- <td class="oe_th_110px"><field name="hours_qtt_non_invoiced" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
- <td width="10px"></td>
- <td><button icon="terp-go-week" class= "oe_btn_width" name="%(hr_timesheet.act_hr_timesheet_line_evry1_all_form)d" string="Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
- <td><button icon="terp-dolar" class= "oe_btn_width" name="%(hr_timesheet_invoice.act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice)d" string="Invoice Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
- </tr>
- <div name="end_of_tabl_hook"/>
- <tr>
- <th class="oe_border_right">Total</th>
- <td width="10px"></td>
- <td class="oe_th_110px oe_border_top"><field name="est_total" nolabel="1"/></td>
- <td class="oe_th_110px oe_border_top"><field name="invoiced_total" nolabel="1"/></td>
- <td class="oe_th_110px oe_border_right oe_border_top"><field name="remaining_total" nolabel="1"/></td>
- <td class="oe_th_110px oe_border_top"><field name="toinvoice_total" nolabel="1"/></td>
+ <th class="oe_timesheet_grey" width="160px"></th>
+ <th class="oe_timesheet_grey" width="25px"></th>
+ <th class="oe_timesheet_grey" width="100px"><label string="Expected"/></th>
+ <th class="oe_timesheet_grey" width="100px"><label string="Invoiced"/></th>
+ <th class="oe_timesheet_grey" width="100px"><label string="Remaining"/></th>
+ <th class="oe_timesheet_grey" width="100px"><label string="To Invoice"/></th>
+ <th width="30px"></th>
+ <th></th>
+ </tr><tr>
+ <td class="oe_timesheet_grey">
+ <label for="fix_price_invoices"/>
+ </td><td class="oe_timesheet_grey">
+ <field name="fix_price_invoices" class="oe_inline"/>
+ </td><td>
+ <field class="oe_inline" name="amount_max" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
+ </td><td>
+ <field class="oe_inline" name="ca_invoiced" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
+ </td><td>
+ <field class="oe_inline" name="remaining_ca" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
+ </td><td>
+ <field class="oe_inline" name="fix_price_to_invoice" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
+ </td><td attrs="{'invisible': [('fix_price_invoices','=',False)]}" class="oe_timesheet_action">
+ <span attrs="{'invisible': [('fix_price_to_invoice','=',0.0)]}" class="oe_grey">
+ <button name="open_sale_order_lines"
+ class="oe_link"
+ string="⇒ Invoice" type="object"
+ context="{'default_partner_id': [partner_id],'default_project_id': active_id,'search_default_uninvoiced': 1,'search_default_project_id': active_id,'search_default_partner_id': [partner_id]}"/>
+ or view
+ </span>
+
+ <span attrs="{'invisible': [('fix_price_to_invoice','<>',0.0)]}" class="oe_grey">
+ No order to invoice, create
+ </span>
+ <button name="%(action_sales_order)d" string="Sale Orders"
+ type="action"
+ class="oe_link"
+ context="{'default_partner_id': [partner_id], 'search_default_partner_id': [partner_id],'search_default_project_id': [active_id],'default_project_id': [active_id]}"
+ />
+ </td>
+ </tr><tr>
+ <td class="oe_timesheet_grey">
+ <label for="invoice_on_timesheets"/>
+ </td><td class="oe_timesheet_grey">
+ <field name="invoice_on_timesheets"/>
+ </td><td>
+ <field class="oe_inline" name="hours_qtt_est" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
+ </td><td>
+ <field class="oe_inline" name="timesheet_ca_invoiced" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
+ </td><td>
+ <field class="oe_inline" name="remaining_hours_to_invoice" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
+ </td><td>
+ <field class="oe_inline" name="ca_to_invoice" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
+ </td><td class="oe_timesheet_action" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}">
+ <span attrs="{'invisible': [('ca_to_invoice','=',0.0)]}" class="oe_grey">
+ <button name="%(hr_timesheet_invoice.action_hr_timesheet_invoice_create_final)d"
+ type="action"
+ class="oe_link"
+ string="⇒ Invoice"/>
+ or view
+ </span>
+ <span attrs="{'invisible': [('ca_to_invoice','<>',0.0)]}" class="oe_grey">
+ Nothing to invoice, create
+ </span>
+
+ <button name="%(hr_timesheet.act_hr_timesheet_line_evry1_all_form)d"
+ string="Timesheets" type="action"
+ class="oe_link"
+ context="{'default_account_id': active_id,'search_default_account_id': active_id}"/>
+ </td>
+ </tr><tr name='total'>
+ <th class="oe_timesheet_grey">
+ <label string="Total"/>
+ </th><td class="oe_timesheet_grey">
+ </td><td class="oe_timesheet_grey">
+ <field name="est_total" class="oe_inline" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
+ </td><td class="oe_timesheet_grey">
+ <field name="invoiced_total" class="oe_inline"/>
+ </td><td class="oe_timesheet_grey">
+ <field name="remaining_total" class="oe_inline"/>
+ </td><td class="oe_timesheet_grey">
+ <field name="toinvoice_total" class="oe_inline"/>
+ </td><td>
+ </td>
</tr>
</table>
- </xpath>
- </field>
- </record>
-
- <!-- Add information on Account analytic list for the project management -->
- <record id="view_account_analytic_account_tree_c2c_2" model="ir.ui.view">
- <field name="name">account.analytic.account.tree</field>
- <field name="model">account.analytic.account</field>
- <field name="inherit_id" ref="account.view_account_analytic_account_list"/>
- <field name="type">tree</field>
- <field name="arch" type="xml">
- <field name="quantity" position="replace">
- <field name="hours_quantity"/>
- <field name="hours_qtt_non_invoiced"/>
- <field name="remaining_hours"/>
- <field name="quantity_max"/>
- </field>
+ <group name='invoice_on_timesheets' attrs="{'invisible': [('invoice_on_timesheets','=',False)]}">
+ <p class="oe_grey oe_edit_only" colspan="2">
+ When invoicing on timesheet, OpenERP uses the
+ pricelist of the contract which uses the price
+ defined on the product related to each employee to
+ define the customer invoice price rate.
+ </p>
+ <group>
+ <field name="pricelist_id"
+ class="oe_inline"
+ attrs="{'required': [('invoice_on_timesheets', '=', True)]}"/>
+ <field name="to_invoice"
+ class="oe_inline"
+ widget="selection"
+ attrs="{'required': [('invoice_on_timesheets', '=', True)]}"/>
+ </group>
+ </group>
+ </xpath>
</field>
</record>
<field name="name">account.analytic.account.tree</field>
<field name="model">account.analytic.account</field>
<field name="inherit_id" ref="account.view_account_analytic_account_list"/>
- <field name="type">tree</field>
<field name="arch" type="xml">
<field name="date" position="before">
<field name="last_invoice_date"/>
- <field name="ca_to_invoice"/>
+ <field name="toinvoice_total"/>
</field>
</field>
</record>
-
+
<record id="template_of_contract_action" model="ir.actions.act_window">
<field name="name">Template of Contract</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('type','=','template')]</field>
<field name="context">{'search_default_type':'template','default_type' : 'template'}</field>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click here to create a template of contract.
+ </p><p>
+ Templates are used to prefigure contract/project that
+ can be selected by the salespeople to quickly configure the
+ terms and conditions of the contract.
+ </p>
+ </field>
+
</record>
- <menuitem action="template_of_contract_action" id="menu_template_of_contract_action" parent="base.menu_base_config" />
+ <menuitem action="template_of_contract_action" id="menu_template_of_contract_action" parent="base.menu_base_config"/>
</data>
</openerp>