[FIX] uniqid constraint not respected in portal and not null constraint not respected...
[odoo/odoo.git] / addons / hr_payroll / hr_payroll_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4         <!-- Root Menus -->
5
6         <menuitem id="payroll_configure" parent="hr.menu_hr_configuration" name="Payroll" groups="base.group_hr_manager" sequence="45"/>
7         <menuitem id="menu_hr_root_payroll" parent="hr.menu_hr_root" name="Payroll" sequence="30"/>
8         <menuitem id="menu_hr_payroll_reporting" parent="hr.menu_hr_reporting" name="Payroll" groups="base.group_hr_manager"/>
9
10         <!-- Contract View -->
11         <record id="hr_contract_form_inherit" model="ir.ui.view">
12             <field name="name">hr.contract.view.form.inherit</field>
13             <field name="model">hr.contract</field>
14             <field name="type">form</field>
15             <field name="inherit_id" ref="hr_contract.hr_contract_view_form"/>
16             <field name="arch" type="xml">
17             <data>
18                 <xpath expr="//field[@name='wage']" position="after">
19                     <field name="struct_id" required="1"/>
20                 </xpath>
21                  <xpath expr="//field[@name='working_hours']" position="after">
22                     <field name="schedule_pay"/>
23                 </xpath>
24             </data>
25             </field>
26         </record>
27
28         <!-- End Contract View-->
29
30         <!-- Salary structure -->
31         <record id="view_hr_payroll_structure_list_view" model="ir.ui.view">
32             <field name="name">hr.payroll.structure.tree</field>
33             <field name="model">hr.payroll.structure</field>
34             <field name="type">tree</field>
35             <field name="arch" type="xml">
36                 <tree string="Employee Function">
37                     <field name="name"/>
38                     <field name="code"/>
39                     <field name="rule_ids"/>
40                     <field name="company_id" groups="base.group_multi_company" widget="selection"/>
41                 </tree>
42             </field>
43         </record>
44         <record id="view_hr_payroll_structure_tree" model="ir.ui.view">
45             <field name="name">hr.payroll.structure.tree</field>
46             <field name="model">hr.payroll.structure</field>
47             <field name="type">tree</field>
48             <field name="field_parent">children_ids</field>
49             <field name="arch" type="xml">
50                 <tree string="Salary Structure">
51                     <field name="name"/>
52                     <field name="code"/>
53                     <field name="company_id" groups="base.group_multi_company" widget="selection"/>
54                 </tree>
55             </field>
56         </record>
57
58         <record id="view_hr_payroll_structure_filter" model="ir.ui.view">
59             <field name="name">hr.payroll.structure.select</field>
60             <field name="model">hr.payroll.structure</field>
61             <field name="type">search</field>
62             <field name="arch" type="xml">
63                 <search string="Payroll Structures">
64                     <group col="8" colspan="4">
65                         <field name="name" string="Payroll Structures" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
66                     </group>
67                     <newline/>
68                 </search>
69             </field>
70         </record>
71
72         <record id="view_hr_employee_grade_form" model="ir.ui.view">
73             <field name="name">hr.payroll.structure.form</field>
74             <field name="model">hr.payroll.structure</field>
75             <field name="type">form</field>
76             <field name="arch" type="xml">
77                 <form string="Employee Function" version="7.0">
78                     <group col="4">
79                         <field name="name"/>
80                         <field name="code"/>
81                         <field name="company_id" groups="base.group_multi_company" widget="selection"/>
82                         <field name="parent_id"/>
83                     </group>
84                     <notebook colspan="4">
85                          <page string="Salary Rules">
86                            <field name="rule_ids" domain="[('parent_rule_id','=',False)]">
87                              <tree>
88                                 <field name="name"/>
89                                 <field name="code"/>
90                                 <field name="category_id"/>
91                                 <field name="sequence" invisible="1"/>
92                                 <field name="register_id"/>
93                              </tree>
94                           </field>
95                          </page>
96                     </notebook>
97                 </form>
98             </field>
99         </record>
100
101         <record id="action_view_hr_payroll_structure_list_form" model="ir.actions.act_window">
102             <field name="name">Salary Structures</field>
103             <field name="res_model">hr.payroll.structure</field>
104             <field name="view_type">form</field>
105             <field name="view_id" ref="view_hr_payroll_structure_list_view"/>
106         </record>
107         <menuitem
108             id="menu_hr_payroll_structure_view"
109             action="action_view_hr_payroll_structure_list_form"
110             parent="hr.menu_hr_configuration"
111             sequence="20"
112         />
113         <record id="action_view_hr_payroll_structure_tree" model="ir.actions.act_window">
114             <field name="name">Salary Structures Hierarchy</field>
115             <field name="res_model">hr.payroll.structure</field>
116             <field name="view_type">tree</field>
117             <field name="domain">[('parent_id','=',False)]</field>
118             <field name="view_id" ref="view_hr_payroll_structure_tree"/>
119         </record>
120         <menuitem
121             id="menu_hr_payroll_structure_tree"
122             action="action_view_hr_payroll_structure_tree"
123             parent="payroll_configure"
124             sequence="2"
125             icon="STOCK_INDENT"
126         />
127         <!-- End Salary structure -->
128
129         <!-- Payslip Line -->
130         <record id="view_hr_payslip_line_tree" model="ir.ui.view">
131             <field name="name">hr.payslip.line.tree</field>
132             <field name="model">hr.payslip.line</field>
133             <field name="type">tree</field>
134             <field name="arch" type="xml">
135                 <tree string="Salary Structure" editable="bottom" colors="blue:total == 0">
136                     <field name="category_id"/>
137                     <field name="employee_id" invisible="1"/>
138                     <field name="sequence"/>
139                     <field name="name"/>
140                     <field name="code"/>
141                     <field name="quantity"/>
142                     <field name="rate"/>
143                     <field name="amount"/>
144                     <field name="total"/>
145                     <field name="amount_select" invisible="1"/>
146                     <field name="register_id" invisible="1"/>
147                 </tree>
148             </field>
149         </record>
150         <record id="view_hr_payslip_line_form" model="ir.ui.view">
151             <field name="name">hr.payslip.line.form</field>
152             <field name="model">hr.payslip.line</field>
153             <field name="type">form</field>
154             <field name="arch" type="xml">
155                 <form string="Payslip Line">
156                 <group>
157                     <group>
158                         <field name="name"/>
159                         <field name="code"/>
160                         <field name="slip_id"/>
161                         <field name="employee_id"/>
162                     </group>
163                     <group string="Calculations">
164                         <field name="category_id"/>
165                         <field name="amount_select"/>
166                         <field name="amount_fix"  attrs="{'readonly':[('amount_select','&lt;&gt;','fix')]}"/>
167                         <field name="amount_percentage"  attrs="{'readonly':[('amount_select','&lt;&gt;','percentage')]}"/>
168                         <field name="sequence"/>
169                     </group>
170                     <field name="note"/>
171                 </group>
172                 </form>
173             </field>
174         </record>
175
176         <record id="view_hr_payslip_line_filter" model="ir.ui.view">
177             <field name="name">hr.payslip.line.select</field>
178             <field name="model">hr.payslip.line</field>
179             <field name="type">search</field>
180             <field name="arch" type="xml">
181                 <search string="Search Payslip Lines">
182                     <group col="8" colspan="4">
183                         <field name="name" string="Payslip Lines" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
184                         <separator orientation="vertical"/>
185                         <field name="slip_id"/>
186                         <field name="amount_select"/>
187                     </group>
188                     <newline/>
189                     <group col="8" colspan="4" expand="0" string="Group By...">
190                         <filter string="Salary Rule Category" icon="terp-camera_test" name="category_id" context="{'group_by':'category_id'}"/>
191                         <filter string="Contribution Register" name="register_id" icon="terp-folder-yellow" context="{'group_by':'register_id'}"/>
192                         <separator orientation="vertical"/>
193                         <filter string="Amount Type" name="amount_select" icon="terp-stock_symbol-selection" context="{'group_by':'amount_select'}"/>
194                         <separator orientation="vertical"/>
195                         <filter string="Employees" name="employee_id" icon="terp-personal" context="{'group_by':'employee_id'}"/>
196                     </group>
197                 </search>
198             </field>
199         </record>
200
201
202         <!-- payslip -->
203
204         <record id="view_hr_payslip_tree" model="ir.ui.view">
205             <field name="name">hr.payslip.tree</field>
206             <field name="model">hr.payslip</field>
207             <field name="type">tree</field>
208             <field name="arch" type="xml">
209                 <tree colors="blue:state in ('confirm','hr_check','accont_check');black:state == 'new';gray:state == 'cancel'" string="Payslips">
210                     <field name="number"/>
211                     <field name="employee_id"/>
212                     <field name="name"/>
213                     <field name="date_from"/>
214                     <field name="date_to"/>
215                     <field name="state"/>
216                     <field name="company_id" groups="base.group_multi_company" widget="selection"/>
217                     <field name="payslip_run_id" invisible="1"/>
218                 </tree>
219             </field>
220         </record>
221         
222         <act_window name="Payslip Computation Details"
223             context="{'default_slip_id': active_id,'search_default_slip_id': active_id}"
224             res_model="hr.payslip.line"
225             src_model="hr.payslip"
226             id="act_payslip_lines"/>
227
228         <record id="view_hr_payslip_form" model="ir.ui.view">
229             <field name="name">hr.payslip.form</field>
230             <field name="model">hr.payslip</field>
231             <field name="type">form</field>
232             <field name="arch" type="xml">
233                 <form string="Payslip" version="7.0">
234                 <header>
235                     <button string="Confirm" name="hr_verify_sheet" states="draft" class="oe_highlight"/>
236                     <button string="Refund" name="refund_sheet" states="confirm,done" type='object' />
237                     <button string="Set to Draft" name="draft" states="cancel"/>
238                     <button string="Compute Sheet" name="compute_sheet" type="object" states="draft" class="oe_highlight"/>
239                     <button string="Cancel" name="cancel_sheet" states="draft,hr_check,confirm,verify"/>
240                     <field name="state" widget="statusbar" statusbar_visible="draft,confirm"/>
241                 </header>
242                 <sheet>
243                     <div class="oe_right oe_button_box">
244                         <button name="%(act_payslip_lines)d" string="Payslip Computation Details" type="action"/>
245                     </div>
246                     <div class="oe_title">
247                         <label for="employee_id" class="oe_edit_only"/>
248                         <h1><field name="employee_id" on_change="onchange_employee_id(date_from, date_to, employee_id, contract_id)"/></h1>
249                         <label for="date_from" class="oe_edit_only" string="Period"/>
250                         <h2>
251                             From <field name="date_from" on_change="onchange_employee_id(date_from, date_to, employee_id, contract_id)"/>
252                             to <field name="date_to"/>
253                         </h2>
254                     </div>
255                     <group col="4">
256                         <field name="contract_id" domain="[('employee_id','=',employee_id)]" on_change="onchange_contract_id(date_from, date_to, employee_id, contract_id)"/>
257                         <field name="number"/>
258                         <field name="struct_id" attrs="{'required':[('contract_id','&lt;&gt;',False)]}"/>
259                         <field name="name"/>
260                         <field name="credit_note"/>
261                     </group>
262                     <notebook>
263                         <page string="Worked Days &amp; Inputs">
264                             <separator string="Worked Days"/>
265                             <field name="worked_days_line_ids">
266                                 <tree string="Worked Days" editable="bottom">
267                                     <field name="name"/>
268                                     <field name="code"/>
269                                     <field name="number_of_days" sum="Total Working Days"/>
270                                     <field name="number_of_hours"/>
271                                     <field name="contract_id"/>
272                                     <field name="sequence" invisible="True"/>
273                                 </tree>
274                                 <form string="Worked Day">
275                                     <group col="4">
276                                         <field name="name"/>
277                                         <field name="code"/>
278                                         <field name="payslip_id"/>
279                                         <field name="sequence"/>
280                                         <field name="number_of_days"/>
281                                         <field name="number_of_hours"/>
282                                         <field name="contract_id"/>
283                                     </group>
284                                 </form>
285                             </field>
286                             <separator string="Other Inputs"/>
287                             <field name="input_line_ids" colspan="4" nolabel="1">
288                                 <tree string="Input Data" editable="bottom">
289                                     <field name="name"/>
290                                     <field name="code"/>
291                                     <field name="amount"/>
292                                     <field name="contract_id"/>
293                                     <field name="sequence" invisible="True"/>
294                                 </tree>
295                                 <form string="Payslip Line">
296                                     <group col="4">
297                                         <field name="name"/>
298                                         <field name="code"/>
299                                         <field name="payslip_id"/>
300                                         <field name="sequence"/>
301                                         <field name="amount"/>
302                                         <field name="contract_id"/>
303                                     </group>
304                                 </form>
305                             </field>
306                         </page>
307                         <page string="Salary Computation" >
308                             <field name="line_ids" colspan="4" nolabel="1">
309                                 <tree string="Salary Structure" editable="bottom" colors="blue:total == 0">
310                                     <field name="name"/>
311                                     <field name="code"/>
312                                     <field name="category_id"/>
313                                     <field name="sequence" invisible="1"/>
314                                     <field name="quantity"/>
315                                     <field name="rate"/>
316                                     <field name="amount"/>
317                                     <field name="total"/>
318                                 </tree>
319                                 <form string="Payslip Line">
320                                     <group col="4">
321                                         <field name="name"/>
322                                         <field name="code"/>
323                                         <field name="category_id"/>
324                                         <field name="sequence"/>
325                                         <field name="quantity"/>
326                                         <field name="rate"/>
327                                         <field name="amount"/>
328                                         <field name="total"/>
329                                         <field name="salary_rule_id"/>
330                                     </group>
331                                 </form>
332                             </field>
333                         </page>
334                         <page string="Details By Salary Rule Category">
335                             <field name="details_by_salary_rule_category" context="{'group_by':'category_id'}" domain="[('appears_on_payslip', '=', True)]">
336                                 <tree string="Payslip Lines" colors="blue:total == 0">
337                                     <field name="category_id"/>
338                                     <field name="name"/>
339                                     <field name="code"/>
340                                     <field name="total"/>
341                                 </tree>
342                             </field>
343                        </page>
344                        <page string="Other Information">
345                             <group>
346                                 <group string="Miscellaneous">
347                                     <field name="company_id" groups="base.group_multi_company"/>
348                                     <field name="payslip_run_id" domain="[('state','=','draft')]"/>
349                                 </group>
350                                 <group name="accounting" string="Accounting">
351                                     <field name="paid" readonly="1"/>
352                                 </group>
353                             </group>
354                             <div colspan="4">
355                                 <field name="note" Placeholder="Add an internal note..."/>
356                             </div>
357                        </page>
358                     </notebook>
359                     </sheet>
360                 </form>
361             </field>
362         </record>
363
364         <record id="view_hr_payslip_filter" model="ir.ui.view">
365             <field name="name">hr.payslip.select</field>
366             <field name="model">hr.payslip</field>
367             <field name="type">search</field>
368             <field name="arch" type="xml">
369                 <search string="Search Payslips">
370                     <group>
371                         <field name="name" string="Payslips" filter_domain="['|',('name','ilike',self),('number','ilike',self)]"/>
372                         <separator orientation="vertical"/>
373                         <field name="date_from"/>
374                         <separator orientation="vertical"/>
375                         <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Slip"/>
376                         <filter icon="terp-camera_test" string="Done" domain="[('state','=','done')]" help="Done Slip"/>
377                         <separator orientation="vertical"/>
378                         <field name="employee_id"/>
379                         <field name="payslip_run_id"/>
380                     </group>
381                     <newline/>
382                     <group expand="0" string="Group By...">
383                         <filter string="Employees" icon="terp-personal" name="employee_id" context="{'group_by':'employee_id'}"/>
384                         <separator orientation="vertical"/>
385                         <filter string="PaySlip Batch" name="payslip_run_id" icon="terp-folder-orange" context="{'group_by':'payslip_run_id'}"/>
386                         <separator orientation="vertical" groups="base.group_multi_company"/>
387                         <filter string="Companies" name="company_id" groups="base.group_multi_company" icon="terp-go-home" context="{'group_by':'company_id'}"/>
388                         <separator orientation="vertical"/>
389                         <filter string="States" name="state" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
390                     </group>
391                 </search>
392             </field>
393         </record>
394         <record id="action_view_hr_payslip_form" model="ir.actions.act_window">
395             <field name="name">Employee Payslips</field>
396             <field name="res_model">hr.payslip</field>
397             <field name="view_type">form</field>
398             <field name="view_id" ref="view_hr_payslip_tree"/>
399             <field name="search_view_id" ref="view_hr_payslip_filter"/>
400         </record>
401         <menuitem action="action_view_hr_payslip_form" id="menu_department_tree" parent="menu_hr_root_payroll"/>
402         <act_window name="Payslips"
403                     context="{'search_default_employee_id': [active_id], 'default_employee_id': active_id}"
404                     res_model="hr.payslip"
405                     src_model="hr.employee"
406                     view_id ="view_hr_payslip_tree"
407                     id="act_hr_employee_payslip_list"
408                     groups="base.group_hr_manager"/>
409
410         <!-- Employee View -->
411         <record id="payroll_hr_employee_view_form" model="ir.ui.view">
412             <field name="name">payroll.hr.employee.view.form</field>
413             <field name="model">hr.employee</field>
414             <field name="inherit_id" ref="hr.view_employee_form"/>
415             <field name="arch" type="xml">
416                 <data>
417                     <xpath expr="//div[@name='button_box']" position="inside">
418                         <button name="%(act_hr_employee_payslip_list)d" string="Payslips" type="action"/>
419                     </xpath>
420                 </data>
421             </field>
422         </record>
423         <!-- Salary Category-->
424         <record id="hr_salary_rule_category_form" model="ir.ui.view">
425             <field name="name">hr.salary.rule.category.form</field>
426             <field name="model">hr.salary.rule.category</field>
427             <field name="type">form</field>
428             <field name="arch" type="xml">
429                 <form string="Salary Categories">
430                     <group col="4">
431                         <field name="name"/>
432                         <field name="code"/>
433                         <field name="parent_id"/>
434                     </group>
435                     <separator string="Notes"/>
436                     <field name="note"/>
437                 </form>
438             </field>
439         </record>
440
441         <record id="hr_salary_rule_category_tree" model="ir.ui.view">
442             <field name="name">hr.salary.rule.category.tree</field>
443             <field name="model">hr.salary.rule.category</field>
444             <field name="type">tree</field>
445             <field name="arch" type="xml">
446                 <tree string="Salary Rule Categories">
447                     <field name="name"/>
448                     <field name="code"/>
449                     <field name="parent_id" invisible="1"/>
450                 </tree>
451             </field>
452         </record>
453         <record id="hr_salary_rule_category_tree_view" model="ir.ui.view">
454             <field name="name">hr.salary.rule.category.tree.view</field>
455             <field name="model">hr.salary.rule.category</field>
456             <field name="type">tree</field>
457             <field name="field_parent">children_ids</field>
458             <field name="arch" type="xml">
459                 <tree string="Salary Rule Categories">
460                     <field name="name"/>
461                     <field name="code"/>
462                     <field name="parent_id" invisible="1"/>
463                 </tree>
464             </field>
465         </record>
466
467         <record id="view_hr_salary_rule_category_filter" model="ir.ui.view">
468             <field name="name">hr.salary.rule.category.select</field>
469             <field name="model">hr.salary.rule.category</field>
470             <field name="type">search</field>
471             <field name="arch" type="xml">
472                 <search string="Salary Rule Categories">
473                     <field name="name" string="Salary Rule Categories" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
474                </search>
475             </field>
476         </record>
477
478         <record id="action_hr_salary_rule_category" model="ir.actions.act_window">
479             <field name="name">Salary Rule Categories</field>
480             <field name="res_model">hr.salary.rule.category</field>
481             <field name="view_type">form</field>
482             <field name="view_id" ref="hr_salary_rule_category_tree"/>
483            <field name="search_view_id" ref="view_hr_salary_rule_category_filter"/>
484         </record>
485         <menuitem
486             id="menu_hr_salary_rule_category"
487             action="action_hr_salary_rule_category"
488             parent="payroll_configure"
489             sequence="11"
490             groups="base.group_no_one"
491         />
492         <record id="action_hr_salary_rule_category_tree_view" model="ir.actions.act_window">
493             <field name="name">Salary Rule Categories Hierarchy</field>
494             <field name="res_model">hr.salary.rule.category</field>
495             <field name="view_type">tree</field>
496             <field name="domain">[('parent_id','=',False)]</field>
497             <field name="view_id" ref="hr_salary_rule_category_tree_view"/>
498         </record>
499         <menuitem
500             id="menu_hr_salary_rule_category_tree_view"
501             action="action_hr_salary_rule_category_tree_view"
502             parent="payroll_configure"
503             sequence="12"
504             icon="STOCK_INDENT"
505             groups="base.group_no_one"
506         />
507
508         <!--
509         Contribution Register
510         -->
511         <record id="hr_contribution_register_tree" model="ir.ui.view">
512             <field name="name">hr.contribution.register.tree</field>
513             <field name="model">hr.contribution.register</field>
514             <field name="type">tree</field>
515             <field name="arch" type="xml">
516                 <tree string="Contribution Registers">
517                     <field name="name" />
518                     <field name="company_id"  groups="base.group_multi_company" widget="selection"/>
519                 </tree>
520             </field>
521         </record>
522         <record id="hr_contribution_register_filter" model="ir.ui.view">
523             <field name="name">hr.contribution.register.search</field>
524             <field name="model">hr.contribution.register</field>
525             <field name="type">search</field>
526             <field name="arch" type="xml">
527                 <search string="Contribution Registers">
528                     <field name="name" string="Contribution Registers"/>
529                     <separator orientation="vertical"/>
530                     <field name="company_id" groups="base.group_multi_company" widget="selection"/>
531                 </search>
532             </field>
533         </record>
534         <record id="hr_contribution_register_form" model="ir.ui.view">
535             <field name="name">hr.contribution.register.form</field>
536             <field name="model">hr.contribution.register</field>
537             <field name="type">form</field>
538             <field name="arch" type="xml">
539                 <form string="Contribution">
540                     <field name="name"/>
541                     <field name="company_id" groups="base.group_multi_company" widget="selection"/>
542                     <separator string="Description"/>
543                     <field name="note" nolabel="1"/>
544                 </form>
545             </field>
546         </record>
547         <record id="action_contribution_register_form" model="ir.actions.act_window">
548             <field name="name">Contribution Registers</field>
549             <field name="res_model">hr.contribution.register</field>
550             <field name="view_type">form</field>
551             <field name="help">A contribution register is a third party involved in the salary payment of the employees. It can be the social security, the estate or anyone that collect or inject money on payslips.</field>
552             <field name="view_id" ref="hr_contribution_register_tree"/>
553         </record>
554         <menuitem
555             id="menu_action_hr_contribution_register_form"
556             action="action_contribution_register_form"
557             parent="payroll_configure"
558             sequence="14"
559         />
560
561         <!-- Salary Rules -->
562
563         <record id="hr_salary_rule_list" model="ir.ui.view">
564             <field name="name">hr.salary.rule.list</field>
565             <field name="model">hr.salary.rule</field>
566             <field name="type">tree</field>
567             <field name="arch" type="xml">
568                 <tree string="Salary Rules">
569                     <field name="name"/>
570                     <field name="code"/>
571                     <field name="category_id"/>
572                     <field name="sequence" invisible="1"/>
573                     <field name="register_id"/>
574                 </tree>
575             </field>
576         </record>
577
578         <record id="hr_salary_rule_tree" model="ir.ui.view">
579             <field name="name">hr.salary.rule.tree</field>
580             <field name="model">hr.salary.rule</field>
581             <field name="type">tree</field>
582             <field name="field_parent">child_ids</field>
583             <field eval="20" name="priority"/>
584             <field name="arch" type="xml">
585                 <tree string="Salary Rules">
586                     <field name="name"/>
587                     <field name="code"/>
588                     <field name="category_id" invisible="True"/>
589                     <field name="company_id" groups="base.group_multi_company" widget="selection"/>
590                 </tree>
591             </field>
592         </record>
593         <record id="hr_salary_rule_form" model="ir.ui.view">
594             <field name="name">hr.salary.rule.form</field>
595             <field name="model">hr.salary.rule</field>
596             <field name="type">form</field>
597             <field name="arch" type="xml">
598                 <form string="Salary Rules" version="7.0">
599                     <label for="name" class="oe_edit_only"/>
600                     <h1><field name="name"/></h1>
601                     <label for="category_id" class="oe_edit_only"/>
602                     <h2><field name="category_id"/></h2>
603
604                     <group col="4">
605                        <field name="code"/>
606                        <field name="sequence" />
607                        <field name="active"/>
608                        <field name="appears_on_payslip"/>
609                        <field name="company_id" widget="selection" groups="base.group_multi_company"/>
610                     </group>
611                     <notebook colspan="6">
612                         <page string="General">
613                             <group col="4">
614                                 <separator colspan="4" string="Conditions"/>
615                                 <field name="condition_select"/><newline/>
616                                 <field name="condition_python" attrs="{'invisible':[('condition_select','&lt;&gt;','python')], 'required': [('condition_select','=','python')]}" colspan="4"/> <newline/>
617                                 <field name="condition_range" attrs="{'invisible':[('condition_select','&lt;&gt;','range')], 'required':[('condition_select','=','range')]}"/><newline/>
618                                 <field name="condition_range_min" colspan="2" attrs="{'invisible':[('condition_select','&lt;&gt;','range')], 'required':[('condition_select','=','range')]}"/><newline/>
619                                 <field name="condition_range_max" colspan="2" attrs="{'invisible':[('condition_select','&lt;&gt;','range')], 'required':[('condition_select','=','range')]}"/><newline/>
620                                 <separator colspan="4" string="Computation"/>
621                                 <field name="amount_select"/><newline/>
622                                 <field name="amount_percentage_base" attrs="{'invisible':[('amount_select','&lt;&gt;','percentage')], 'required': [('amount_select','=','percentage')]}"/><newline/>
623                                 <field name="quantity" attrs="{'invisible':[('amount_select','=','code')], 'required':[('amount_select','!=','code')]}"/><newline/>
624                                 <field name="amount_fix"  attrs="{'invisible':[('amount_select','&lt;&gt;','fix')], 'required':[('amount_select','=','fix')]}"/><newline/>
625                                 <field name="amount_percentage" attrs="{'invisible':[('amount_select','&lt;&gt;','percentage')], 'required':[('amount_select','=','percentage')]}"/>
626                                 <field colspan="4" name="amount_python_compute" attrs="{'invisible':[('amount_select','&lt;&gt;','code')], 'required':[('amount_select','=','code')]}"/>
627                                 <separator colspan="4" string="Company Contribution"/>
628                                 <field name="register_id"/>
629                             </group>
630                         </page>
631                         <page string="Child Rules">
632                            <field name="parent_rule_id"/>
633                            <separator string="Children Definition"/>
634                            <field name="child_ids"/>
635                         </page>
636                            <page string="Inputs">
637                                 <field name="input_ids" mode="tree, form">
638                                     <tree string="Input Data" editable="bottom">
639                                         <field name="name"/>
640                                         <field name="code"/>
641                                     </tree>
642                                 </field>
643                            </page>
644                         <page string="Description">
645                             <field name="note"/>
646                         </page>
647                     </notebook>
648                 </form>
649             </field>
650         </record>
651
652         <record id="view_hr_rule_filter" model="ir.ui.view">
653             <field name="name">hr.salary.rule.select</field>
654             <field name="model">hr.salary.rule</field>
655             <field name="type">search</field>
656             <field name="arch" type="xml">
657                 <search string="Search Salary Rule">
658                     <group col="8">
659                         <field name="name" string="Salary Rules" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/>
660                         <separator orientation="vertical"/>
661                         <field name="category_id"/>
662                         <field name="condition_range_min"/>
663                     </group>
664                     <newline/>
665                     <group col="8" colspan="4" expand="0" string="Group By...">
666                         <filter string="Category" icon="terp-folder-yellow" name="head" context="{'group_by':'category_id'}"/>
667                     </group>
668                 </search>
669             </field>
670         </record>
671
672         <record id="action_salary_rule_form" model="ir.actions.act_window">
673             <field name="name">Salary Rules</field>
674             <field name="res_model">hr.salary.rule</field>
675             <field name="view_type">form</field>
676             <field name="view_id" ref="hr_salary_rule_list"/>
677             <field name="domain">[('parent_rule_id','=',False)]</field>
678             <field name="search_view_id" ref="view_hr_rule_filter"/>
679         </record>
680
681         <menuitem id="menu_action_hr_salary_rule_form" action="action_salary_rule_form" parent="payroll_configure" sequence="12"/>
682
683
684         <act_window name="All Children Rules"
685             domain="[('id', 'in', [active_id])]"
686             res_model="hr.salary.rule"
687             src_model="hr.salary.rule"
688             view_id="hr_salary_rule_tree"
689             view_type="tree"
690             id="act_children_salary_rules"/>
691
692         <!-- payslip runs -->
693
694         <record id="hr_payslip_run_filter" model="ir.ui.view">
695             <field name="name">hr.payslip.run.search</field>
696             <field name="model">hr.payslip.run</field>
697             <field name="type">search</field>
698             <field name="arch" type="xml">
699                 <search string="Search Payslip Batches">
700                     <field name="name" string="Payslip Batches"/>
701                     <separator orientation="vertical"/>
702                     <field name="date_start"/>
703                     <field name="date_end"/>
704                     <separator orientation="vertical"/>
705                     <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Payslip Batches"/>
706                     <filter name="done_filter" icon="terp-camera_test" string="Done" domain="[('state','=','close')]" help="Done Payslip Batches"/>
707                 </search>
708             </field>
709         </record>
710
711         <record id="hr_payslip_run_tree" model="ir.ui.view">
712             <field name="name">hr.payslip.run.tree</field>
713             <field name="model">hr.payslip.run</field>
714             <field name="type">tree</field>
715             <field name="arch" type="xml">
716                 <tree string="Payslips Batches">
717                     <field name="name"/>
718                     <field name="date_start"/>
719                     <field name="date_end"/>
720                     <field name="credit_note"/>
721                     <field name="state"/>
722                 </tree>
723             </field>
724         </record>
725
726         <record id="hr_payslip_run_form" model="ir.ui.view">
727             <field name="name">hr.payslip.run.form</field>
728             <field name="model">hr.payslip.run</field>
729             <field name="type">form</field>
730             <field name="arch" type="xml">
731                 <form string="Payslips Batches" version="7.0">
732                 <header>
733                     <button name="close_payslip_run" type="object" string="Close" states="draft" class="oe_highlight"/>
734                     <button name="%(action_hr_payslip_by_employees)d" type="action" states="draft" string="Generate Payslips" class="oe_highlight"/>
735                     <button string="Set to Draft" name="draft_payslip_run" type="object" states="close" />
736                     <field name="state" widget="statusbar"/>
737                 </header>
738                 <sheet>
739                     <label for="name" class="oe_edit_only"/>
740                     <h1>
741                         <field name="name"/>
742                     </h1>
743                     <h2>
744                         Period from 
745                         <field name="date_start"/> 
746                         to 
747                         <field name="date_end"/>
748                     </h2>
749                     <group col="4">
750                         <field name="credit_note"/>
751                     </group>
752                     <separator string="Payslips"/>
753                     <field name="slip_ids"/>
754                 </sheet>
755                 </form>
756             </field>
757         </record>
758
759         <record id="action_hr_payslip_run_tree" model="ir.actions.act_window">
760             <field name="name">Payslips Batches</field>
761             <field name="res_model">hr.payslip.run</field>
762             <field name="view_type">form</field>
763             <field name="view_id" ref="hr_payslip_run_tree"/>
764             <field name="search_view_id" ref="hr_payslip_run_filter"/>
765         </record>
766         <menuitem action="action_hr_payslip_run_tree" id="menu_hr_payslip_run" parent="menu_hr_root_payroll"/>
767
768         <!--  Shortcuts -->
769
770         <act_window name="Payslips"
771             domain="[('employee_id', '=', active_id)]"
772             context="{'search_default_employee_id': [active_id], 'default_employee_id': active_id}"
773             res_model="hr.payslip"
774             src_model="hr.employee"
775             view_id ="view_hr_payslip_tree"
776             id="act_hr_employee_payslip_list"
777             groups="base.group_hr_manager"/>
778
779         <act_window name="Payslip Computation Details"
780             domain="[('slip_id', '=', active_id)]"
781             context="{'default_slip_id': active_id}"
782             res_model="hr.payslip.line"
783             src_model="hr.payslip"
784             id="act_payslip_lines"/>
785
786         <act_window name="Payslip Lines"
787             domain="[('register_id', '=', active_id)]"
788             context="{'default_register_id': active_id, 'search_default_register_id': 1}"
789             res_model="hr.payslip.line"
790             src_model="hr.contribution.register"
791             id="act_contribution_reg_payslip_lines"/>
792
793     </data>
794 </openerp>
795