[MERGE] merged the branch with the belgian rules for hr_payroll (hr_payroll_l10n_be module)

bzr revid: qdp-launchpad@openerp.com-20110913122823-nnb9pb6upzm40pu1
This commit is contained in:
Quentin (OpenERP) 2011-09-13 14:28:23 +02:00
commit d8d3afa070
10 changed files with 2005 additions and 1 deletions

View File

@ -197,6 +197,7 @@ class hr_employee(osv.osv):
_defaults = {
'active': 1,
'photo': _get_photo,
'marital': 'single',
}
def _check_recursion(self, cr, uid, ids, context=None):

View File

@ -144,7 +144,7 @@
<field name="date_end" eval="time.strftime('%Y')+'-12-31'"/>
<field name="struct_id" ref="hr_payroll.structure_001"/>
<field name="employee_id" ref="hr_employee_bonamy0"/>
<field name="notes">This is a First Contract</field>
<field name="notes">Default contract for marketing executives</field>
<field eval="4000.0" name="wage"/>
<field eval="5" name="working_days_per_week"/>
</record>

View File

@ -0,0 +1,23 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import hr_payroll_l10n_be
import hr_contract
import hr_payroll

View File

@ -0,0 +1,53 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'hr_payroll_l10n_be',
'category': 'payroll',
'init_xml':[],
'author': 'OpenERP',
'depends': ['hr_payroll','hr_contract'],
'version': '1.0',
'description': """
Belgian Payroll system.
=======================
* Employee Details
* Employee Contracts
* Passport based Contract
* Allowances / Deductions
* Allow to configure Basic / Grows / Net Salary
* Employee Payslip
* Monthly Payroll Register
* Integrated with Holiday Management
* Salary Maj, ONSS, Precompte Professionnel, Child Allowance, ...
""",
'active': False,
'demo_xml': [
'hr_payroll_l10n_be_demo.xml',
],
'update_xml':[
'hr_payroll_l10n_be_view.xml',
'hr_payroll_l10n_be_data.xml',
'data/hr.salary.rule.csv',
],
'installable': True
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,63 @@
#-*- coding:utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# d$
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
from datetime import date
from datetime import datetime
from datetime import timedelta
import netsvc
from osv import fields, osv
import tools
from tools.translate import _
import decimal_precision as dp
class hr_contract_be(osv.osv):
_inherit = 'hr.contract'
_columns = {
'reim_travel':fields.float('Reimbursement of travel expenses', digits=(16,2)),
'company_car_emp':fields.float('Company car employer', digits=(16,2)),
'company_car_wkr':fields.float('Company Car Deduction for Worker', digits=(16,2)),
'mis_ex_onss':fields.float('Miscellaneous exempt ONSS ', digits=(16,2)),
'ch_value':fields.float('Check Value Meal ', digits=(16,2)),
'ch_worker':fields.float('Check Value Meal - by worker ', digits=(16,2)),
'insurance':fields.float('Insurance Group - by worker ', digits=(16,2)),
'advantage':fields.float('Benefits of various nature ', digits=(16,2)),
'suppl_net':fields.float('Net supplements', digits=(16,2)),
'retained_net':fields.float('Net retained ', digits=(16,2)),
}
hr_contract_be()
class hr_employee_be(osv.osv):
_inherit = 'hr.employee'
_columns = {
'statut_fiscal':fields.selection([('without income','Without Income'),('with income','With Income')], 'Tax status for spouse'),
'handicap':fields.boolean('Disabled Spouse', help="if recipient spouse is declared disabled by law"),
'handicap_child':fields.boolean('Disabled Children', help="if recipient children is/are declared disabled by law"),
'resident':fields.boolean('Nonresident', help="if recipient lives in a foreign country"),
'number_handicap':fields.integer('Number of disabled children'),
}
hr_employee_be()

View File

@ -0,0 +1,316 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="hr_payroll_head_salary" model="hr.salary.rule.category">
<field name="name">Brut Total</field>
<field name="code">BRUT</field>
</record>
<record id="hr_payroll.COMP" model="hr.salary.rule.category">
<field name="name">Company Part</field>
<field name="code">COMP. PART</field>
</record>
<record id="hr_payroll_head_onss" model="hr.salary.rule.category">
<field name="name">Cotisation Sociale Travailleur</field>
<field name="code">ONSS</field>
<field name="parent_id" ref="hr_payroll.ALW"/>
</record>
<record id="hr_payroll_head_div_impos" model="hr.salary.rule.category">
<field name="name">Total des divers imposables</field>
<field name="code">DIV. IMPOS</field>
<field name="parent_id" ref="hr_payroll.ALW"/>
</record>
<record id="hr_payroll_head_pp" model="hr.salary.rule.category">
<field name="name">Precompte Professionnel Bareme 2011</field>
<field name="code">P.P.</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<record id="hr_payroll_head_div_net" model="hr.salary.rule.category">
<field name="name">Total divers net</field>
<field name="code">DIV. NET</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<record id="hr_payroll_head_child_alw" model="hr.salary.rule.category">
<field name="name">Child Allowance Belgium</field>
<field name="code">Ch.A</field>
<field name="parent_id" ref="hr_payroll.DED"/>
</record>
<!-- HR SALAR RULES-->
<record id="hr_payroll_rules_maj" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_salary"/>
<field name="name">Premium pay 108% Worker</field>
<field name="code">SALARY</field>
<field name="condition_select">none</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = contract.wage * 1.08</field>
</record>
<record id="hr_payroll_rules_employee" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_salary"/>
<field name="name">Salary Employee</field>
<field name="code">SALARY</field>
<field name="condition_select">none</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = contract.wage * 1</field>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rules_onss_rule" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_onss"/>
<field name="name">Office National de Sécurité Sociale</field>
<field name="code">ONSS</field>
<field name="sequence">41</field>
<field name="condition_select">none</field>
<field name="amount_select">percentage</field>
<field name="amount_percentage_base">SALARY</field>
<field name="amount_percentage">-13.07</field>
</record>
<record id="hr_payroll_rules_p_p_b1" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_pp"/>
<field name="name">Precompte Professionnel Bareme 2011</field>
<field name="code">P.P</field>
<field name="sequence">120</field>
<field name="amount_select">fix</field>
<field name="condition_select">none</field>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rules_bareme" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_pp"/>
<field name="parent_rule_id" ref="hr_payroll_rules_p_p_b1"/>
<field name="name">Precompte Professionnel</field>
<field name="code">B.I.</field>
<field name="amount_select">fix</field>
<field name="sequence">120</field>
<field name="condition_select">python</field>
<field name="appears_on_payslip" eval="False"/>
<field name="condition_python">result = (((employee.marital=='single') or (employee.marital=='married' and employee.statut_fiscal=='with income')) and (employee.resident!=True))</field>
</record>
<record id="hr_payroll_rules_baremeII" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_pp"/>
<field name="parent_rule_id" ref="hr_payroll_rules_p_p_b1"/>
<field name="name">Precompte Professionnel</field>
<field name="code">B.II</field>
<field name="amount_select">fix</field>
<field name="sequence">120</field>
<field name="condition_select">python</field>
<field name="appears_on_payslip" eval="False"/>
<field name="condition_python">result = ((employee.marital=='married' and employee.statut_fiscal=='without income') and (employee.resident!=True))</field>
</record>
<record id="hr_payroll_rules_baremeIII" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_pp"/>
<field name="parent_rule_id" ref="hr_payroll_rules_p_p_b1"/>
<field name="name">Precompte Professionnel</field>
<field name="code">B.III</field>
<field name="amount_select">fix</field>
<field name="sequence">120</field>
<field name="condition_select">python</field>
<field name="condition_python">result = employee.resident==True</field>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rules_child_alw" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll.DED"/>
<field name="name">Child Allowance Belgium</field>
<field name="code">Child.Allowance</field>
<field name="sequence">140</field>
<field name="amount_select">fix</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(employee.children)</field>
</record>
<record id="hr_payroll_rules_child" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll.DED"/>
<field name="parent_rule_id" ref="hr_payroll_rules_child_alw"/>
<field name="name">Child Allowance Belgium</field>
<field name="code">Ch.A</field>
<field name="amount_select">fix</field>
<field name="sequence">141</field>
<field name="note">The recipient of income is an isolated or spouse beneficiary's income has also
earned income (Schedule I / II scale)
A. When the gross monthly earnings do not exceed € 7,500, the withholding tax is determined according to the Schedule I.
The following reductions are then deducted from the payroll tax determined in accordance with this schedule:
a) Reduction for dependent children</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(employee.children)</field>
</record>
<record id="hr_payroll_rules_child_handicap" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll.DED"/>
<field name="parent_rule_id" ref="hr_payroll_rules_child_alw"/>
<field name="name">Child Allowance for the Disabled Belgium</field>
<field name="code">Ch.Handicap</field>
<field name="amount_select">fix</field>
<field name="sequence">143</field>
<field name="note">"Disabled child" means:
the child reaches at least 66% of failure or reduced physical or mental capacity
the head of one or more conditions;
the child that is established, regardless of age, that due to developments and recognized
before age 65</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(employee.number_handicap)</field>
</record>
<record id="hr_payroll_rules_spouse_handicap" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_div_net"/>
<field name="name">Disabled Spouse Allowance</field>
<field name="code">Sp.handicap</field>
<field name="amount_select">fix</field>
<field name="sequence">145</field>
<field name="amount_fix">31</field>
<field name="condition_select">python</field>
<field name="condition_python">result = employee.handicap==True</field>
</record>
<record id="hr_payroll_rules_company_car_parent" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_div_impos"/>
<field name="name">Company Car</field>
<field name="code">car</field>
<field name="amount_select">fix</field>
<field name="sequence">15</field>
<field name="condtion_select">none</field>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rules_parent_company_car" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_div_impos"/>
<field name="name">Company car</field>
<field name="parent_rule_id" ref="hr_payroll_rules_company_car_parent"/>
<field name="code">CAR 1</field>
<field name="sequence">15</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.company_car_wkr)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = contract.company_car_wkr</field>
</record>
<record id="hr_payroll_rules_company_car_2" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_div_net"/>
<field name="name">Retenue Company car</field>
<field name="parent_rule_id" ref="hr_payroll_rules_company_car_parent"/>
<field name="code">CAR 2</field>
<field name="sequence">160</field>
<field name="condition_select">python</field>
<field name="condition_python">result = contract.company_car_wkr</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = -contract.company_car_wkr</field>
</record>
<record id="hr_payroll_rules_company_car_emp" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll.COMP"/>
<field name="name">Company car, Company part</field>
<field name="parent_rule_id" ref="hr_payroll_rules_company_car_parent"/>
<field name="code">CAR 3</field>
<field name="sequence">160</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.company_car_emp)</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = -contract.company_car_emp</field>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rules_parent_ch" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_div_net"/>
<field name="name">Check Value Meal</field>
<field name="code">Ch.M.</field>
<field name="amount_select">fix</field>
<field name="sequence">165</field>
<field name="condition_select">none</field>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rules_ch_value" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll.COMP"/>
<field name="parent_rule_id" ref="hr_payroll_rules_parent_ch"/>
<field name="name">Check Value Meal, Company Part</field>
<field name="code">Ch.M.</field>
<field name="amount_select">fix</field>
<field name="sequence">165</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = -(contract.ch_value - contract.ch_worker) * worked_days.WORK100.number_of_days</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.ch_value)</field>
<field name="appears_on_payslip" eval="False"/>
</record>
<record id="hr_payroll_rules_ch_worker" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_div_net"/>
<field name="name">Retain on Check Value Meal</field>
<field name="parent_rule_id" ref="hr_payroll_rules_parent_ch"/>
<field name="code">Meal Check</field>
<field name="sequence">165</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.ch_worker)</field>
<field name="amount_select">percentage</field>
<field name="amount_percentage">-100.0</field>
<field name="amount_percentage_base">contract.ch_worker</field>
<field name="quantity">worked_days.WORK100.number_of_days</field>
<field name="appears_on_payslip" eval="True"/>
</record>
<record id="hr_payroll_rules_reim_travel" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll.DED"/>
<field name="name">Reimbursement of travel expenses</field>
<field name="code">Tr.E</field>
<field name="amount_select">code</field>
<field name="sequence">65</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.reim_travel)</field>
<field name="amount_python_compute">result = contract.reim_travel</field>
</record>
<record id="hr_payroll_rules_mis_ex_onss" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll.DED"/>
<field name="name">Miscellaneous exempt ONSS</field>
<field name="code">M.ONSS</field>
<field name="amount_select">code</field>
<field name="sequence">165</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.mis_ex_onss)</field>
<field name="amount_python_compute">result = -contract.mis_ex_onss</field>
</record>
<record id="hr_payroll_rules_insurance" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll.DED"/>
<field name="name">Insurance</field>
<field name="code">Ins</field>
<field name="amount_select">code</field>
<field name="sequence">165</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.insurance)</field>
<field name="amount_pyton_compute">result = -contract.insurance</field>
</record>
<record id="hr_payroll_rules_advantage" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll.ALW"/>
<field name="name">Benefits of various nature</field>
<field name="code">Ben</field>
<field name="amount_select">code</field>
<field name="sequence">10</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.advantage)</field>
<field name="amount_python_compute">result = contract.advantage</field>
</record>
<record id="hr_payroll_rules_suppl_net" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_div_net"/>
<field name="name">Net Supplement</field>
<field name="code">Net.S</field>
<field name="amount_select">code</field>
<field name="sequence">185</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.suppl_net)</field>
<field name="amount_python_compute">result = contract.suppl_net</field>
</record>
<record id="hr_payroll_rules_retained_net" model="hr.salary.rule">
<field name="category_id" ref="hr_payroll_head_div_net"/>
<field name="name">Net retained</field>
<field name="code">Net.R</field>
<field name="amount_select">code</field>
<field name="sequence">190</field>
<field name="condition_select">python</field>
<field name="condition_python">result = bool(contract.retained_net)</field>
<field name="amount_python_compute">result = -contract.retained_net</field>
</record>
<record id="hr_payroll_salary_structure_employee" model="hr.payroll.structure">
<field name="code">C.P.218</field>
<field name="name">Belgian Employee</field>
<field eval="[(6, 0, [ref('hr_payroll_rules_company_car_parent'),ref('hr_payroll_rules_onss_rule'),ref('hr_payroll_rules_employee'),ref('hr_payroll_rules_p_p_b1'),ref('hr_payroll_rules_child_alw'),ref('hr_payroll_rules_parent_ch'),ref('hr_payroll_rules_reim_travel'),ref('hr_payroll_rules_mis_ex_onss'),ref('hr_payroll_rules_insurance'),ref('hr_payroll_rules_advantage'),ref('hr_payroll_rules_suppl_net'),ref('hr_payroll_rules_retained_net')])]" name="rule_ids"/>
<field name="company_id" ref="base.main_company"/>
<field name="parent_id" ref="hr_payroll.structure_base"/>
</record>
<record id="hr_payroll_salary_structure_worker" model="hr.payroll.structure">
<field name="code">C.P.219</field>
<field name="name">Belgian Worker</field>
<field eval="[(6, 0, [ref('hr_payroll_rules_maj'), ref('hr_payroll_rules_onss_rule'),ref('hr_payroll_rules_p_p_b1'),ref('hr_payroll_rules_child_alw'),ref('hr_payroll_rules_parent_ch'),ref('hr_payroll_rules_reim_travel'),ref('hr_payroll_rules_mis_ex_onss'),ref('hr_payroll_rules_insurance'),ref('hr_payroll_rules_advantage'),ref('hr_payroll_rules_suppl_net'),ref('hr_payroll_rules_retained_net')])]" name="rule_ids"/>
<field name="company_id" ref="base.main_company"/>
<field name="parent_id" ref="hr_payroll.structure_base"/>
</record>
</data>
</openerp>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Employee Contract -->
<record id="hr_payroll.hr_contract_firstcontract1" model="hr.contract">
<field name="name">Bonamy's Contract (C.P.218)</field>
<field name="struct_id" ref="hr_payroll_salary_structure_employee"/>
<field eval="2500.0" name="wage"/>
<field eval="6.0" name="ch_value"/>
<field eval="1.09" name="ch_worker"/>
<field eval="250.0" name="company_car_emp"/>
<field eval="110" name="company_car_wkr"/>
<field eval="50.0" name="suppl_net"/>
<field name="working_hours" ref="resource.timesheet_group1"/>
</record>
<record id="hr_payroll.hr_employee_bonamy0" model="hr.employee">
<field name="marital">single</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="hr_contract_form_inherit" model="ir.ui.view">
<field name="name">hr.contract.form.inherit</field>
<field name="model">hr.contract</field>
<field name="type">form</field>
<field name="priority">20</field>
<field name="inherit_id" ref="hr_contract.hr_contract_view_form"/>
<field name="arch" type="xml">
<data>
<xpath expr="/form/notebook/page/group/field[@name='advantages']" position="after">
<field name="reim_travel"/>
<field name="company_car_emp"/>
<field name="mis_ex_onss"/>
<field name="ch_value"/>
<field name="advantage"/>
<group colspan="2" col="2">
<separator string="Miscellaneous" colspan="2"/>
<field name="suppl_net"/>
<field name="retained_net"/>
</group>
</xpath>
<xpath expr="/form/notebook/page/group/field[@name='trial_date_end']" position="after">
<group colspan="2" col="2">
<separator string="by Worker" colspan="2"/>
<field name="insurance"/>
<field name="ch_worker"/>
<field name="company_car_wkr"/>
</group>
</xpath>
<xpath expr="/form//group/field[@name='type_id']" position="after">
<field name="struct_id" select="1"/>
</xpath>
</data>
</field>
</record>
<record id="view_employee_marital_required_form" model="ir.ui.view">
<field name="name">hr.employee.employee.inherit.form</field>
<field name="model">hr.employee</field>
<field name="type">form</field>
<field name="priority">25</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<field name="marital" position="replace">
</field>
</field>
</record>
<record id="view_contract_salary_structure" model="ir.ui.view">
<field name="name">hr.contract.struc</field>
<field name="model">hr.contract</field>
<field name="inherit_id" ref="hr_payroll.hr_contract_form_inherit"/>
<field name="type">form</field>
<field name="arch" type="xml">
<field name="struct_id" position="replace">
</field>
</field>
</record>
<record id="hr_contract_hr_hr_employee_view_for" model="ir.ui.view">
<field name="name">hr.hr.employee.view.for</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="priority">30</field>
<field name="arch" type="xml">
<data>
<xpath expr="/form/notebook/page/group/field[@name='birthday']" position="after">
<field name="marital" required="True"/>
</xpath>
<xpath expr="/form/notebook/page/group/field[@name='gender']" position="before">
<field name="resident" eval="False"/>
</xpath>
<xpath expr="/form/notebook/page/group/field[@name='marital']" position="after">
<field name="statut_fiscal" attrs="{'invisible':[('marital','!=','married')],'required':[('marital','=','married')]}" colspan="1" help="if spouse has professionnel income or not"/>
<field name="handicap" attrs="{'invisible':[('marital','!=','married')]}" colspan="1"/>
</xpath>
<xpath expr="/form/notebook/page/group/field[@name='children']" position="after">
<field name="handicap_child"/>
<field name="number_handicap" attrs="{'invisible':[('handicap_child','!=',True)]}" colspan="1" help="number of dependent children declared as disabled"/>
</xpath>
</data>
</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,3 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_hr_salary_rule_category","hr.salary.rule.category","model_hr_salary_rule_category","base.group_hr_user",1,1,1,1
"access_hr_salary_rule","hr.salary.rule","model_hr_salary_rule","base.group_hr_user",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_hr_salary_rule_category hr.salary.rule.category model_hr_salary_rule_category base.group_hr_user 1 1 1 1
3 access_hr_salary_rule hr.salary.rule model_hr_salary_rule base.group_hr_user 1 1 1 1