1 <?xml version="1.0" encoding="utf-8"?>
4 <record id="project_invoice_form" model="ir.ui.view">
5 <field name="name">Inherit project form : Invoicing Data</field>
6 <field name="model">project.project</field>
7 <field name="type">form</field>
8 <field name="inherit_id" ref="project.edit_project"/>
9 <field name="arch" type="xml">
10 <xpath expr="//field[@name='task']" position='after'>
11 <field name="timesheets"/>
14 <field name="warn_customer" position="after">
15 <group colspan="4" col="4">
16 <separator colspan="4" string="Invoicing Data"/>
17 <field name="pricelist_id" domain="[('type','=','sale')]" widget="selection"/>
18 <field name="to_invoice" widget="selection" string="Invoice Task Work"/>
19 <field name="amount_max" groups="base.group_extended"/>
20 <field name="amount_invoiced" groups="base.group_extended"/>
26 <record id="view_project_kanban_inherited" model="ir.ui.view">
27 <field name="name">project.project.kanban.inherited</field>
28 <field name="model">project.project</field>
29 <field name="type">kanban</field>
30 <field name="inherit_id" ref="project.view_project_kanban"/>
31 <field name="arch" type="xml">
32 <field name="task" position="after">
33 <field name="timesheets"/>
34 <field name="total_hours"/>
35 <field name="effective_hours"/>
37 <xpath expr="//t[@t-name='tasks']" position="after">
38 <t t-name="timesheets">
39 <ul class="oe_kanban_tooltip">
40 <li><b>Timesheets</b></li>
44 <xpath expr="//td[@class='buttons']" position="inside">
45 <t t-if="record.timesheets.raw_value">
46 <button name="open_timesheets" class="oe_project_buttons" type="object" tooltip="timesheets"><img src="/project_timesheet/static/src/img/timesheet_icon.png" class="project_icon"/></button>
49 <xpath expr="//td[@class='td_image']" position="inside">
50 <div class="sequence">
51 <kbd class="user">Remaining Hours</kbd>
52 <div class="manager"><b><t t-esc="Math.round(record.total_hours.raw_value-record.effective_hours.raw_value)"/> h</b></div>
55 <xpath expr="//td[@class='td_deadline']" position="inside">
56 <div class="sequence">
57 <kbd class="user">To invoice</kbd>
58 <div class="manager"><b><field name="amount_invoiced"/> <field name="currency_id"/></b></div>
60 <div class="sequence">
61 <button name="open_timesheets" class="oe_to_invoice_buttons" type="object">Invoice</button>
67 <record id="project_invoice_form_cutomer" model="ir.ui.view">
68 <field name="name">Inherit project form : Customer</field>
69 <field name="model">project.project</field>
70 <field name="type">form</field>
71 <field name="inherit_id" ref="project_invoice_form"/>
72 <field name="arch" type="xml">
73 <field name="partner_id" position="replace">
74 <field colspan="4" name="partner_id" on_change="onchange_partner_id(partner_id)" select="1" string="Customer" attrs="{'required':[('to_invoice','!=',False)]}"/>
79 <record id="project_invoice_search" model="ir.ui.view">
80 <field name="name">Inherit project search view : Invoicing Data</field>
81 <field name="model">project.project</field>
82 <field name="type">search</field>
83 <field name="inherit_id" ref="project.view_project_project_filter"/>
84 <field name="arch" type="xml">
85 <xpath expr='//filter[@string="Member"]' position='after'>
86 <separator orientation="vertical"/>
87 <filter icon="terp-camera_test" string="Billable" domain="[('to_invoice','!=', False)]" help="Billable Project"/>
91 <record id="view_account_analytic_line_search_account_inherit" model="ir.ui.view">
92 <field name="name">account.analytic.line.search.account_id</field>
93 <field name="model">account.analytic.line</field>
94 <field name="type">search</field>
95 <field name="inherit_id" ref="account.view_account_analytic_line_filter"/>
96 <field name="arch" type="xml">
97 <field name="account_id" position="replace">
98 <field name="account_id" string="Analytic account/project" />
102 <record id="view_account_analytic_line_form_inherit_account_id" model="ir.ui.view">
103 <field name="name">account.analytic.line.form.account_id</field>
104 <field name="model">account.analytic.line</field>
105 <field name="type">form</field>
106 <field name="inherit_id" ref="account.view_account_analytic_line_form"/>
107 <field name="arch" type="xml">
108 <field name="account_id" position="replace">
109 <field name="account_id" string="Analytic account/project" on_change="on_change_account_id(account_id)"/>
113 <record id="view_account_analytic_line_tree_inherit_account_id" model="ir.ui.view">
114 <field name="name">account.analytic.line.tree.account_id</field>
115 <field name="model">account.analytic.line</field>
116 <field name="type">tree</field>
117 <field name="inherit_id" ref="account.view_account_analytic_line_tree"/>
118 <field name="arch" type="xml">
119 <field name="account_id" position="replace">
120 <field name="account_id" string="Analytic account/project"/>
126 <record id="action_project_timesheet_bill_task" model="ir.actions.act_window">
127 <field name="name">Bill Tasks Works</field>
128 <field name="res_model">account.analytic.line</field>
129 <field name="view_type">form</field>
130 <field name="view_mode">tree,form</field>
131 <field name="domain">[]</field>
132 <field name="context">{}</field>
133 <field name="view_id" ref="view_account_analytic_line_tree_inherit_account_id"/>
134 <field name="help">You will find here all works made on tasks that you can invoice.
135 In order to invoice the time spent on a project, you must define the
136 pricelist and the field 'Invoice Task Work' on the tab 'Billing' of
137 the project form.</field>
139 <menuitem action="hr_timesheet.action_hr_timesheet_sign_in"
140 id="menu_hr_timesheet_sign_in"
141 groups="base.group_extended"
142 parent="hr_attendance.menu_hr_attendance"
145 <menuitem id="menu_project_billing" name="Invoicing"
146 parent="base.menu_main_pm" sequence="5"/>
147 <menuitem id="menu_project_billing_line" name="Invoice Tasks Work"
148 parent="menu_project_billing" action="action_project_timesheet_bill_task"/>
151 Time Tracking menu in project Management
153 <!-- <menuitem id="menu_project_working_hours" parent="base.menu_project_management_time_tracking" action="hr_timesheet.act_hr_timesheet_line_evry1_all_form"/> -->
155 <record id="action_account_analytic_overdue" model="ir.actions.act_window">
156 <field name="name">Customer Projects</field>
157 <field name="res_model">account.analytic.account</field>
158 <field name="view_type">form</field>
159 <field name="view_mode">tree,form,graph</field>
160 <field name="context">{}</field>
161 <field name="domain">[('type','=','normal')]</field>
162 <field name="search_view_id" ref="account_analytic_analysis.view_account_analytic_account_overdue_search"/>
163 <field name="help">You will find here the contracts related to your customer projects in order to track the invoicing progress.</field>
165 <menuitem id="menu_invoicing_contracts" parent="menu_project_billing" sequence="4"
166 action="account_analytic_analysis.action_account_analytic_overdue"/>