[IMP] Contract management + fixes
[odoo/odoo.git] / addons / account / project / project_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4
5         <record id="view_account_analytic_account_list" model="ir.ui.view">
6             <field name="name">account.analytic.account.list</field>
7             <field name="model">account.analytic.account</field>
8             <field name="type">tree</field>
9             <field eval="8" name="priority"/>
10             <field name="arch" type="xml">
11                 <tree toolbar="1" colors="red:(date&lt;current_date);black:(date&gt;=current_date);black:(date==False)" string="Analytic Accounts">
12                     <field name="code"/>
13                     <field name="complete_name"/>
14                     <field name="quantity"/>
15                     <field name="quantity_max"/>
16                     <field name="date"/>
17                     <field name="user_id" invisible="1"/>
18                     <field name="parent_id" invisible="1"/>
19                     <field name="partner_id" invisible="1"/>
20                     <field name="state" invisible="1"/>
21                 </tree>
22             </field>
23         </record>
24
25         <record id="view_account_analytic_account_search" model="ir.ui.view">
26             <field name="name">account.analytic.account.search</field>
27             <field name="model">account.analytic.account</field>
28             <field name="type">search</field>
29             <field name="arch" type="xml">
30                 <search string="Analytic Account">
31                     <group>
32                         <filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="Pending Accounts"/>
33                         <filter icon="terp-camera_test" string="Current" domain="[('state','=','open')]" help="Current Accounts"/>
34                         <separator orientation="vertical"/>
35                         <filter icon="terp-go-today" string="Overdue Account" domain="[('date','&lt;',time.strftime('%%Y-%%m-%%d'))]" help="Analytic Accounts with a past deadline."/>
36                         <separator orientation="vertical"/>
37                         <field name="name"/>
38                         <field name="code"/>
39                         <field name="partner_id"/>
40                         <field name="user_id" widget="selection"/>
41                     </group>
42                     <newline/>
43                     <group expand="0" string="Group By...">
44                         <filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
45                         <filter string="Associated Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
46                         <separator orientation="vertical"/>
47                         <filter string="Parent Account" icon="terp-folder-green" domain="[]" context="{'group_by':'parent_id'}"/>
48                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" groups="base.group_no_one"/>
49                     </group>
50                 </search>
51             </field>
52         </record>
53
54         <record id="view_account_analytic_account_tree" model="ir.ui.view">
55             <field name="name">account.analytic.account.tree</field>
56             <field name="model">account.analytic.account</field>
57             <field name="type">tree</field>
58             <field name="field_parent">child_complete_ids</field>
59             <field name="arch" type="xml">
60                 <tree colors="blue:type == 'view';red:(date&lt;current_date);black:(date&gt;=current_date);black:(date==False)" string="Analytic account" toolbar="1">
61                     <field name="name"/>
62                     <field name="code"/>
63                     <field name="quantity"/>
64                     <field name="quantity_max"/>
65                     <field name="debit"/>
66                     <field name="credit"/>
67                     <field name="balance"/>
68                     <field name="state" invisible="1"/>
69                     <field name="currency_id" groups="base.group_extended"/>
70                     <field name="date" invisible="1"/>
71                     <field name="user_id" invisible="1"/>
72                     <field name="partner_id" invisible="1"/>
73                     <field name="parent_id" invisible="1"/>
74                     <field name="type"/>
75                 </tree>
76             </field>
77         </record>
78
79         <record id="view_account_analytic_account_form" model="ir.ui.view">
80             <field name="name">account.analytic.account.form</field>
81             <field name="model">account.analytic.account</field>
82             <field name="type">form</field>
83             <field name="arch" type="xml">
84                 <form string="Analytic account">
85                     <group colspan="4" col="6">
86                         <field name="name" select="1" colspan="4"/>
87                         <field name="code" select="1"/>
88                         <field name="parent_id" on_change="on_change_parent(parent_id)" groups="base.group_extended" domain="[('type','=','view')]"/>
89                         <field name="company_id" on_change="on_change_company(company_id)" select="2" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','&lt;&gt;','view')]}"/>
90                         <field name="type" select="2"/>
91                     </group>
92                     <notebook colspan="4">
93                         <page string="Account Data">
94                             <group colspan="2" col="2">
95                                 <separator colspan="2" string="Contacts"/>
96                                 <field name="partner_id" on_change="on_change_partner_id(partner_id)"/>
97                                 <field name="contact_id"/>
98                                 <field name="user_id"/>
99                             </group>
100                             <group colspan="2" col="2" name="contract">
101                                 <separator colspan="2" string="Contract Data"/>
102                                 <field name="date_start"/>
103                                 <field name="date"/>
104                                 <field name="quantity_max"/>
105                             </group>
106                         </page>
107                         <page string="Description">
108                             <field colspan="4" name="description" nolabel="1"/>
109                         </page>
110                     </notebook>
111                 </form>
112             </field>
113         </record>
114
115         <record id="action_account_analytic_account_form" model="ir.actions.act_window">
116             <field name="name">Analytic Accounts</field>
117             <field name="type">ir.actions.act_window</field>
118             <field name="res_model">account.analytic.account</field>
119             <field name="view_type">form</field>
120             <field name="view_mode">tree,graph,form</field>
121             <field name="view_id" ref="view_account_analytic_account_tree"/>
122             <field name="search_view_id" ref="account.view_account_analytic_account_search"/>
123         </record>
124         <menuitem action="action_account_analytic_account_form" id="account_analytic_def_account"
125             parent="menu_analytic_accounting"
126             groups="analytic.group_analytic_accounting"/>
127
128         <record id="act_account_renew_view" model="ir.actions.act_window">
129             <field name="name">Accounts to Renew</field>
130             <field name="type">ir.actions.act_window</field>
131             <field name="res_model">account.analytic.account</field>
132             <field name="view_type">form</field>
133             <field name="view_mode">tree,form</field>
134             <field name="domain">[('date','&lt;',time.strftime('%Y-%m-%d %H:%M:%S'))]</field>
135             <field name="filter" eval="True"/>
136         </record>
137
138         <record id="action_account_analytic_account_tree2" model="ir.actions.act_window">
139             <field name="name">Chart of Analytic Accounts</field>
140             <field name="res_model">account.analytic.account</field>
141             <field name="view_type">tree</field>
142             <field name="view_id" ref="view_account_analytic_account_tree"/>
143             <field name="domain">[('parent_id','=',False)]</field>
144             <field name="help">The normal chart of accounts has a structure defined by the legal requirement of the country. The analytic chart of accounts structure should reflect your own business needs in term of costs/revenues reporting. They are usually structured by contracts, projects, products or departements. Most of the OpenERP operations (invoices, timesheets, expenses, etc) generate analytic entries on the related account.</field>
145         </record>
146
147         <menuitem groups="analytic.group_analytic_accounting" id="next_id_40"
148             name="Analytic" parent="account.menu_finance_generic_reporting"
149             sequence="4"/>
150
151         <record id="view_account_analytic_line_form" model="ir.ui.view">
152             <field name="name">account.analytic.line.form</field>
153             <field name="model">account.analytic.line</field>
154             <field name="type">form</field>
155             <field name="arch" type="xml">
156                 <form string="Analytic Entry">
157                     <group colspan="4" col="6">
158                         <field name="name"/>
159                         <field name="ref"/>
160                         <field name="account_id"/>
161                         <field name="journal_id"/>
162                         <field name="date"/>
163                         <field name="company_id" groups="base.group_multi_company"/>
164                     </group>
165                     <group colspan="2" col="4">
166                         <separator string="Amount" colspan="4"/>
167                         <field name="amount" colspan="4"/>
168                         <field name="amount_currency" colspan="2"/>
169                         <field name="currency_id" colspan="2" nolabel="1"/>
170                     </group>
171                     <group colspan="2" col="4">
172                         <separator string="Product Information" colspan="4"/>
173                         <field name="product_id" colspan="4"/>
174                         <field name="unit_amount" colspan="2"/>
175                         <field name="product_uom_id" colspan="2" nolabel="1"/>
176                     </group>
177                     <group colspan="2" col="2" groups="base.group_extended">
178                         <separator string="General Accounting" colspan="2"/>
179                         <field name="general_account_id"/>
180                         <field name="move_id" readonly="1"/>
181                     </group>
182                 </form>
183             </field>
184         </record>
185         <record id="view_account_analytic_line_tree" model="ir.ui.view">
186             <field name="name">account.analytic.line.tree</field>
187             <field name="model">account.analytic.line</field>
188             <field name="type">tree</field>
189             <field name="arch" type="xml">
190                 <tree editable="top" string="Analytic Entries">
191                     <field name="date"/>
192                     <field name="ref" invisible="context.get('to_invoice', False)"/>
193                     <field name="name"/>
194                     <field name="journal_id" invisible="context.get('to_invoice', False)"/>
195                     <field name="amount" sum="Total" invisible="context.get('to_invoice', False)"/>
196                     <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id, journal_id)" invisible="not context.get('to_invoice', False)"/>
197                     <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" sum="Total Quantity" invisible="not context.get('to_invoice', False)"/>
198                     <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" invisible="not context.get('to_invoice', False)"/>
199                     <field domain="[('type','=','normal')]" name="account_id"/>
200                     <field name="general_account_id" invisible="context.get('to_invoice', False)"/>
201                     <field name="user_id" invisible="1" />
202                 </tree>
203             </field>
204         </record>
205         <record id="view_account_analytic_line_filter" model="ir.ui.view">
206             <field name="name">account.analytic.line.select</field>
207             <field name="model">account.analytic.line</field>
208             <field name="type">search</field>
209             <field name="arch" type="xml">
210                 <search string="Search Analytic Lines">
211                     <group>
212                         <filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" icon="terp-camera_test" help="Analytic Journal Items related to a sale journal."/>
213                         <filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" icon="terp-purchase" help="Analytic Journal Items related to a purchase journal."/>
214                         <filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation'))]" icon="terp-folder-orange"/>
215                         <separator orientation="vertical"/>
216                         <field name="date"/>
217                         <field name="name"/>
218                         <field name="account_id"/>
219                         <field name="user_id">
220                             <filter string="My Entries" domain="[('user_id','=',uid)]" icon="terp-personal"/>
221                         </field>
222                     </group>
223                     <newline/>
224                     <group string="Group By..." expand="0">
225                         <filter string="Account" context="{'group_by':'account_id'}" groups="base.group_extended" icon="terp-folder-green"/>
226                         <filter string="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-orange"/>
227                         <filter string="User" context="{'group_by':'user_id'}" icon="terp-personal"/>
228                         <separator orientation="vertical"/>
229                         <filter string="Fin.Account" context="{'group_by':'general_account_id'}" icon="terp-folder-green"/>
230                         <separator orientation="vertical"/>
231                         <filter string="Product" context="{'group_by':'product_id'}" icon="terp-accessories-archiver"/>
232                     </group>
233                 </search>
234             </field>
235         </record>
236         <record id="action_account_analytic_line_form" model="ir.actions.act_window">
237             <field name="name">Analytic Entries</field>
238             <field name="type">ir.actions.act_window</field>
239             <field name="res_model">account.analytic.line</field>
240             <field name="view_type">form</field>
241             <field name="context">{"search_default_user_id":uid}</field>
242             <field name="view_id" ref="view_account_analytic_line_tree"/>
243         </record>
244
245         <!-- Entries by Line -->
246
247         <record id="action_account_tree1" model="ir.actions.act_window">
248             <field name="name">Analytic Items</field>
249             <field name="res_model">account.analytic.line</field>
250             <field name="view_type">form</field>
251             <field name="view_mode">tree,form</field>
252             <field name="domain">[('account_id','child_of',[active_id])]</field>
253             <field name="context">{'account_id':active_id}</field>
254             <field name="search_view_id" ref="view_account_analytic_line_filter"/>
255         </record>
256         <record id="ir_open_account_analytic_account" model="ir.values">
257             <field eval="'tree_but_open'" name="key2"/>
258             <field eval="'account.analytic.account'" name="model"/>
259             <field name="name">Open Account Tree</field>
260             <field eval="'ir.actions.act_window,%d'%action_account_tree1" name="value"/>
261         </record>
262
263         <record id="account_analytic_line_extended_form" model="ir.ui.view">
264             <field name="name">account.analytic.line.extended_form</field>
265             <field name="model">account.analytic.line</field>
266             <field name="type">form</field>
267             <field name="arch" type="xml">
268                 <form string="Project line">
269                     <field name="name"/>
270                     <field name="account_id" groups="base.group_extended"/>
271                     <field name="date" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
272                     <field name="journal_id"/>
273                     <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
274                     <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id, journal_id)"/>
275                     <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
276                     <field invisible="True" name="general_account_id"/>
277                     <field name="amount"/>
278                     <field name="currency_id" />
279                     <field name="amount_currency" />
280                     <field name="company_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
281                 </form>
282             </field>
283         </record>
284         <record id="action_account_analytic_account_line_extended_form" model="ir.actions.act_window">
285             <field name="name">account.analytic.line.extended</field>
286             <field name="type">ir.actions.act_window</field>
287             <field name="res_model">account.analytic.line</field>
288             <field name="view_type">form</field>
289             <field name="view_id" ref="account_analytic_line_extended_form"/>
290         </record>
291
292         #
293         # Analytic Journal
294         #
295
296         <record id="view_account_analytic_journal_tree" model="ir.ui.view">
297             <field name="name">account.analytic.journal.tree</field>
298             <field name="model">account.analytic.journal</field>
299             <field name="type">tree</field>
300             <field name="arch" type="xml">
301                 <tree string="Analytic Journal">
302                     <field name="code"/>
303                     <field name="name"/>
304                     <field name="type"/>
305                 </tree>
306             </field>
307         </record>
308
309         <record id="view_analytic_journal_search" model="ir.ui.view">
310             <field name="name">account.analytic.journal.search</field>
311             <field name="model">account.analytic.journal</field>
312             <field name="type">search</field>
313             <field name="arch" type="xml">
314                 <search string="Analytic Journals">
315                   <group>
316                       <field name="code"/>
317                       <field name="name"/>
318                       <field name="type"/>
319                   </group>
320                   <newline/>
321                     <group expand="0" string="Group By...">
322                         <filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
323                     </group>
324                 </search>
325             </field>
326         </record>
327
328         <record id="view_account_analytic_journal_form" model="ir.ui.view">
329             <field name="name">account.analytic.journal.form</field>
330             <field name="model">account.analytic.journal</field>
331             <field name="type">form</field>
332             <field name="arch" type="xml">
333                 <form string="Analytic Journal">
334                     <field name="name" select="1"/>
335                     <field name="code" select="1"/>
336                     <field name="type" select="2"/>
337                     <field name="active" select="2"/>
338                     <field name="company_id" groups="base.group_multi_company" widget="selection"/>
339                 </form>
340             </field>
341         </record>
342         <record id="action_account_analytic_journal_form" model="ir.actions.act_window">
343             <field name="name">Analytic Journals</field>
344             <field name="res_model">account.analytic.journal</field>
345             <field name="view_type">form</field>
346             <field name="view_mode">tree,form</field>
347             <field name="search_view_id" ref="view_analytic_journal_search" />
348         </record>
349         <menuitem groups="analytic.group_analytic_accounting" action="action_account_analytic_journal_form" id="account_def_analytic_journal" parent="menu_analytic_accounting" sequence="5"/>
350
351         #
352         # Open journal entries
353         #
354
355         <record id="action_account_analytic_journal_open_form" model="ir.actions.act_window">
356             <field name="name">Analytic Journal Items</field>
357             <field name="res_model">account.analytic.line</field>
358             <field name="view_type">form</field>
359             <field name="view_mode">tree,form</field>
360         </record>
361         <menuitem groups="analytic.group_analytic_accounting"
362             action="action_account_analytic_journal_open_form"
363             id="account_analytic_journal_entries"
364             parent="menu_finance_entries"/>
365
366         #
367         # Reporting
368         #
369
370         <record id="action_account_analytic_journal_tree" model="ir.actions.act_window">
371             <field name="name">Print Analytic Journals</field>
372             <field name="res_model">account.analytic.journal</field>
373             <field name="view_type">tree</field>
374             <field name="help">To print an analytics (or costs) journal for a given period. The report give code, move name, account number, general amount and analytic amount.</field>
375         </record>
376         <menuitem groups="analytic.group_analytic_accounting"
377             action="action_account_analytic_journal_tree"
378             id="account_analytic_journal_print" parent="account.next_id_40"/>
379
380         #
381         # Statistics
382         #
383
384         <record id="report_hr_timesheet_invoice_journal_form" model="ir.ui.view">
385             <field name="name">report.hr.timesheet.invoice.journal.form</field>
386             <field name="model">report.hr.timesheet.invoice.journal</field>
387             <field name="type">form</field>
388             <field name="arch" type="xml">
389                 <form string="Analytic Entries Stats">
390                     <field name="name" select="1"/>
391                     <field name="account_id" select="1"/>
392                     <field name="journal_id" select="2"/>
393                 </form>
394             </field>
395         </record>
396
397
398         <record id="report_hr_timesheet_invoice_journal_tree" model="ir.ui.view">
399             <field name="name">report.hr.timesheet.invoice.journal.tree</field>
400             <field name="model">report.hr.timesheet.invoice.journal</field>
401             <field name="type">tree</field>
402             <field name="arch" type="xml">
403                 <tree string="Analytic Entries Stats">
404                     <field name="name"/>
405                     <field name="month"/>
406                     <field name="account_id"/>
407                     <field name="journal_id"/>
408                     <field name="quantity"/>
409                     <field name="revenue"/>
410                     <field name="cost"/>
411                 </tree>
412             </field>
413         </record>
414
415         <record id="report_hr_timesheet_invoice_journal_graph" model="ir.ui.view">
416             <field name="name">report.hr.timesheet.invoice.journal.graph</field>
417             <field name="model">report.hr.timesheet.invoice.journal</field>
418             <field name="type">graph</field>
419             <field name="arch" type="xml">
420                 <graph string="Analytic Entries Stats" type="bar">
421                     <field name="name"/>
422                     <field name="month"/>
423                     <field name="cost" operator="+"/>
424                     <field name="revenue" operator="+"/>
425                     <field group="True" name="journal_id"/>
426                 </graph>
427             </field>
428         </record>
429
430         <record id="report_hr_timesheet_invoice_journal_search" model="ir.ui.view">
431             <field name="name">report.hr.timesheet.invoice.journal.search</field>
432             <field name="model">report.hr.timesheet.invoice.journal</field>
433             <field name="type">search</field>
434             <field name="arch" type="xml">
435                 <search string="Analytic Entries Stats">
436                     <group>
437                         <filter icon="terp-go-year" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Sale journal in this year"/>
438                            <filter icon="terp-go-month" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Sale journal in this month"/>
439                            <separator orientation="vertical"/>
440                         <field name="name"/>
441                            <field name="month"/>
442                         <field name="account_id"/>
443                     </group>
444                 </search>
445             </field>
446         </record>
447
448         <act_window
449             context="{'search_default_account_id': [active_id], 'search_default_user_id': False, 'default_account_id': active_id}"
450             id="act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal"
451             name="All Analytic Entries"
452             res_model="account.analytic.line"
453             src_model="account.analytic.account"
454             view_mode="tree,form"
455             view_type="form"/>
456
457         <record id="view_account_journal_1" model="ir.ui.view">
458             <field name="name">account.journal.form.1</field>
459             <field name="model">account.journal</field>
460             <field name="inherit_id" ref="account.view_account_journal_form"/>
461             <field name="type">form</field>
462             <field name="arch" type="xml">
463                 <field name="currency" position="after">
464                     <field name="analytic_journal_id"/>
465                 </field>
466             </field>
467         </record>
468
469      <record id="analytic_accounts_graph" model="ir.ui.view">
470             <field name="name">analytic.accounts.graph</field>
471             <field name="model">account.analytic.account</field>
472             <field name="type">graph</field>
473             <field name="arch" type="xml">
474                 <graph string="Analytic Account Statistics" type="bar">
475                     <field name="complete_name"/>
476                     <field name="balance" operator="+"/>
477                 </graph>
478             </field>
479      </record>
480
481     </data>
482 </openerp>