[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:
commit
d8d3afa070
|
@ -197,6 +197,7 @@ class hr_employee(osv.osv):
|
||||||
_defaults = {
|
_defaults = {
|
||||||
'active': 1,
|
'active': 1,
|
||||||
'photo': _get_photo,
|
'photo': _get_photo,
|
||||||
|
'marital': 'single',
|
||||||
}
|
}
|
||||||
|
|
||||||
def _check_recursion(self, cr, uid, ids, context=None):
|
def _check_recursion(self, cr, uid, ids, context=None):
|
||||||
|
|
|
@ -144,7 +144,7 @@
|
||||||
<field name="date_end" eval="time.strftime('%Y')+'-12-31'"/>
|
<field name="date_end" eval="time.strftime('%Y')+'-12-31'"/>
|
||||||
<field name="struct_id" ref="hr_payroll.structure_001"/>
|
<field name="struct_id" ref="hr_payroll.structure_001"/>
|
||||||
<field name="employee_id" ref="hr_employee_bonamy0"/>
|
<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="4000.0" name="wage"/>
|
||||||
<field eval="5" name="working_days_per_week"/>
|
<field eval="5" name="working_days_per_week"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -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
|
|
@ -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
|
@ -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()
|
|
@ -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>
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
|
@ -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
|
|
Loading…
Reference in New Issue