<!--
Analytic Account form
-
- Remove information on Account data => because they move on analysis sheet
- create a page with invoicing informations
-->
- <record id="account_analytic_account_invoice_stat_form" model="ir.ui.view">
- <field name="name">account.analytic.account.invoice.stat.form.inherit</field>
- <field name="model">account.analytic.account</field>
- <field name="type">form</field>
- <field name="inherit_id" ref="hr_timesheet_invoice.account_analytic_account_form_form"/>
- <field eval="18" name="priority"/>
- <field name="arch" type="xml">
- <group name="invoice_stats" position="inside">
- <field name="hours_qtt_non_invoiced" attrs="{'invisible': [('to_invoice','=',0)]}"/>
- <field name="ca_to_invoice" attrs="{'invisible': [('to_invoice','=',0)]}"/>
- <label string="" colspan="1"/>
- <button
- name="%(hr_timesheet_invoice.action_hr_timesheet_invoice_create_final)d"
- string="Create Invoice"
- type="action"
- attrs="{'readonly':[('ca_to_invoice','=',0.0)], 'invisible': [('to_invoice','=',0)]}"
- icon="gtk-go-forward"/>
- </group>
- </field>
+
+ <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>
- <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="account.view_account_analytic_account_form"/>
- <field eval="18" name="priority"/>
+ <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
+ <field eval="40" name="priority"/>
<field name="arch" type="xml">
- <notebook position="inside">
- <page string="Invoice Analysis">
- <separator colspan="4" string="Work done stats"/>
+ <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='//group[@name="invoice_on_timesheets"]' position="replace">
+ </xpath>
+ <xpath expr='//separator[@name="description"]' position='before'>
+ <separator name="toinvoice" string="Invoicing"/>
+ <table class="oe_form_analytic_account">
+ <tr>
+ <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>
- <field name="total_cost"/>
- <field name="remaining_ca"/>
- <field name="ca_invoiced"/>
- <field name="ca_theorical"/>
- <newline/>
- <field name="hours_quantity"/>
- <field name="hours_qtt_invoiced"/>
- <field name="remaining_hours"/>
- <newline/>
- <separator colspan="4" string="Analysis stats"/>
-
- <field name="revenue_per_hour"/>
- <field name="real_margin"/>
- <field name="real_margin_rate"/>
- <field name="theorical_margin"/>
- <separator colspan="4" string="Key dates"/>
-
- <field name="last_invoice_date"/>
- <field name="last_worked_invoiced_date"/>
- <field name="last_worked_date"/>
- </page>
- <page string="Stats by month">
- <field colspan="4" name="month_ids" nolabel="1">
- <tree string="Month">
- <field name="month"/>
- <field name="unit_amount" widget="float_time"/>
- </tree>
- </field>
- </page>
- <page string="Stats by user">
- <field colspan="4" name="user_ids" nolabel="1">
- <tree string="Users">
- <field name="user"/>
- <field name="unit_amount" widget="float_time"/>
- </tree>
- </field>
- </page>
- </notebook>
-
- </field>
- </record>
+ <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>
- <!-- 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>
+ <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>
+ <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="view_contract_installation" model="ir.ui.view">
- <field name="name">Sales Application</field>
- <field name="model">res.config</field>
- <field name="inherit_id" ref="sale.view_sales_config"/>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <group name="sale_order" position="after">
- <group col="4" colspan="4">
- <separator string="Contracts" colspan="4"/>
- <field name="module_analytic_user_function" attrs="{'invisible': [('module_account_analytic_analysis','=',False)]}"/>
- <field name="module_analytic_journal_billing_rate" attrs="{'invisible': [('module_account_analytic_analysis','=',False)]}"/>
- </group>
- </group>
+ <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="res_model">account.analytic.account</field>
+ <field name="view_type">form</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"/>
</data>
</openerp>