<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="hr_payroll.hr_rule_basic" model="hr.salary.rule">
        <field name="amount_python_compute">
result = contract.wage_with_holidays
        </field>
    </record>

<!-- CONTRIBUTION REGISTERS -->
    <record id="res_partner_onss" model="res.partner">
        <field name="name">Office National de Sécurité Sociale (ONSS)</field>
        <field name="supplier">1</field>
        <field eval="0" name="customer"/>
    </record>
    <record id="contrib_register_onss" model="hr.contribution.register">
        <field name="name">ONSS</field>
        <field name="note">National Office of Social Security</field>
        <field name="partner_id" ref="res_partner_onss"/>
    </record>
    <record id="res_partner_pp" model="res.partner">
        <field name="name">Fiscal Administration</field>
        <field name="supplier">1</field>
        <field eval="0" name="customer"/>
    </record>
    <record id="contrib_register_pp" model="hr.contribution.register">
        <field name="name">Fiscal Administration</field>
        <field name="partner_id" ref="res_partner_pp"/>
    </record>
    <record id="res_partner_meal_vouchers" model="res.partner">
        <field name="name">Meal Voucher Vendor</field>
        <field name="supplier">1</field>
        <field eval="0" name="customer"/>
    </record>
    <record id="contrib_register_meal_vouchers" model="hr.contribution.register">
        <field name="name">Meal Voucher Vendor</field>
        <field name="partner_id" ref="res_partner_meal_vouchers"/>
    </record>

<!-- HR SALARY RULE CATEGORIES-->
    <record id="hr_payroll_head_salary" model="hr.salary.rule.category">
        <field name="name">Gross</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">Worker Social Contribution</field>
        <field name="code">ONSS</field>
        <field name="parent_id" ref="hr_payroll.ALW"/>
    </record>
    <record id="hr_payroll_head_employment_bonus" model="hr.salary.rule.category">
        <field name="name">Employment Bonus</field>
        <field name="code">EmpBonus</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">Misc. Taxable</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">Withholding Tax Grid 2019 (Precompte Professionnel Bareme 2019)</field>
        <field name="code">PP</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">Misc. 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">ChA</field>
        <field name="parent_id" ref="hr_payroll.DED"/>
    </record>
    <record id="hr_salary_rule_category_family_reductions" model="hr.salary.rule.category">
        <field name="name">Reduction for special family charges</field>
        <field name="code">FamRed</field>
        <field name="parent_id" ref="hr_payroll.DED"/>
    </record>
    <record id="hr_salary_rule_category_spec_soc_contribution" model="hr.salary.rule.category">
        <field name="name">Special social contribution</field>
        <field name="code">SSC</field>
        <field name="parent_id" ref="hr_payroll.DED"/>
    </record>

    <record id="hr_salary_rule_category_ip_part" model="hr.salary.rule.category">
        <field name="name">IP. Part.</field>
        <field name="code">IP. PART</field>
        <field name="parent_id" ref="hr_payroll.ALW"/>
    </record>

    <record id="hr_salary_rule_category_gross_with_ip" model="hr.salary.rule.category">
        <field name="name">Total Gross</field>
        <field name="code">GROSSIP</field>
    </record>

<!-- HR SALARY RULES-->
    <record id="hr_payroll_rules_maj" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_salary"/> 
        <field name="name">Worker Salary. Premium pay of 108%</field>
        <field name="code">SALARY</field>
        <field name="condition_select">none</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = categories.BASIC * 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">Gross Salary</field>
        <field name="code">SALARY</field>
        <field name="condition_select">none</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">
result = categories.BASIC
if contract.internet:
    result += 5.0
if contract.mobile:
    result += 12.0
        </field>
        <field name="sequence">20</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">Social contribution</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>
        <field name="register_id" ref="contrib_register_onss"/>
    </record>
    <record id="hr_salary_rule_employment_bonus_employees" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_employment_bonus"/> 
        <field name="name">Employment Bonus</field>
        <field name="code">EmpBonus.1</field>
        <field name="sequence">42</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = categories.BRUT &lt;= 2560.57</field> 
        <field name="amount_select">code</field>
        <field name="amount_python_compute">
salary = categories.BRUT
if salary &lt;= 1641.62:
    result = 201.62
elif salary &lt;= 2560.57:
    result = 201.62 - (0.2194 * (salary - 1641.62))
        </field>
    </record>
    <record id="hr_salary_rule_employment_bonus_workers" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_employment_bonus"/> 
        <field name="name">Employment Bonus</field>
        <field name="code">EmpBonus.2</field>
        <field name="sequence">42</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = categories.BRUT + categories.ONSS &lt;= 2560.57</field> 
        <field name="amount_select">code</field>
        <field name="amount_python_compute">
salary = categories.BRUT
if salary &lt;= 1641.62:
    result = 217.75
elif salary &lt;= 2560.57:
    result = 217.75 - (0.2370 * (salary - 1641.62))
        </field>
    </record>

    <record id="hr_salary_rule_gross_with_ip" model="hr.salary.rule">
        <field name="name">Total Gross</field>
        <field name="sequence">90</field>
        <field name="code">GROSSIP</field>
        <field name="category_id" ref="l10n_be_hr_payroll.hr_salary_rule_category_gross_with_ip"/>
        <field name="condition_select">python</field>
        <field name="condition_python">result = bool(contract.ip)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = categories.BASIC + categories.ALW</field>
    </record>

    <record id="hr_salary_rule_ip_part" model="hr.salary.rule">
        <field name="category_id" ref="hr_salary_rule_category_ip_part"/>
        <field name="name">Intellectual Property</field>
        <field name="code">IP.PART</field>
        <field name="sequence">91</field>
        <field name="condition_select">python</field>
        <field name="condition_python">
result = bool(contract.ip)
        </field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">
result = - categories.GROSSIP * contract.ip_wage_rate / 100.0
        </field>
    </record>

    <record id="hr_payroll_rules_mis_ex_onss_1" model="hr.salary.rule">
        <field name="category_id" ref="hr_salary_rule_category_spec_soc_contribution"/>
        <field name="name">Special social cotisation</field>
        <field name="code">M.ONSS.1</field>
        <field name="amount_select">fix</field>
        <field name="sequence">165</field>
        <field name="condition_select">python</field>
        <field name="appears_on_payslip" eval="False"/>
        <field name="condition_python">result = (((employee.marital in ['divorced', 'single', 'widower']) or (employee.marital in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='without income')) and (employee.resident_bool!=True))</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">
wage = categories.BASIC
if wage &gt;= 0.01 and wage &lt;= 1095.09:
    result = 0.0
elif wage &gt;= 1095.10 and wage &lt;= 1945.38:
    result = 0.0
elif wage &gt;= 1945.39 and wage &lt;= 2190.18:
    result = -min((wage - 1945.38) * 0.076, 18.60)
elif wage &gt;= 2190.19 and wage &lt;= 6038.82:
    result = -min(18.60 + (wage - 2190.18) * 0.011, 60.94)
else:
    result = -60.94
        </field>
    </record> 
    <record id="hr_payroll_rules_mis_ex_onss_2" model="hr.salary.rule">
        <field name="category_id" ref="hr_salary_rule_category_spec_soc_contribution"/>
        <field name="name">Special social cotisation</field>
        <field name="code">M.ONSS.2</field>
        <field name="amount_select">fix</field>
        <field name="sequence">165</field>
        <field name="condition_select">python</field>
        <field name="appears_on_payslip" eval="False"/>
        <field name="condition_python">result = (((employee.marital in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='with income')) and (employee.resident_bool!=True))</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">
wage = categories.BASIC
if wage &gt;= 0.01 and wage &lt;= 1095.09:
    result = 0.0
elif wage &gt;= 1095.10 and wage &lt;= 1945.38:
    result = -9.30
elif wage &gt;= 1945.39 and wage &lt;= 2190.18:
    result = -min(max((wage - 1945.38) * 0.076, 9.30), 18.60)
elif wage &gt;= 2190.19 and wage &lt;= 6038.82:
    result = -min(18.60 + (wage - 2190.18) * 0.011, 51.64)
else:
    result = -51.64
        </field>
    </record> 
    <record id="hr_payroll_rules_bareme" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_pp"/>
        <field name="name">Withholding Tax</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 in ['divorced', 'single', 'widower']) or (employee.marital in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='with income')) and (employee.resident_bool!=True))</field>
    </record>
    <record id="hr_payroll_rules_baremeII" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_pp"/>
        <field name="name">Withholding Tax</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 in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='without income') and (employee.resident_bool!=True))</field>
    </record>
    <record id="hr_payroll_rules_baremeIII" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_pp"/>
        <field name="name">Withholding Tax</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_bool==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_head_child_alw"/>
        <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.dependent_children) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
    </record>
    <record id="hr_payroll_rules_child" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_child_alw"/>
        <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.dependent_children) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
    </record>
    <record id="hr_salary_rule_other_family_charges_reductions" model="hr.salary.rule">
        <field name="category_id" ref="hr_salary_rule_category_family_reductions"/>
        <field name="name">Other family charges reductions</field>
        <field name="code">Oth.Fam.Red</field>
        <field name="sequence">143</field>
        <field name="amount_select">fix</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = True</field>
    </record>
    <record id="hr_salary_rule_reduction_isolated" model="hr.salary.rule">
        <field name="category_id" ref='hr_salary_rule_category_family_reductions'/>
        <field name="parent_rule_id" ref="hr_salary_rule_other_family_charges_reductions"/>
        <field name="name">Reduction for isolated people</field>
        <field name="code">Red.Iso</field>
        <field name="sequence">144</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = (employee.marital in ['divorced', 'single', 'widower']) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = min(26.00, - (categories.PP + categories.FamRed + categories.ChA))</field>
    </record>
    <record id="hr_salary_rule_reduction_isolated_parent" model="hr.salary.rule">
        <field name="category_id" ref='hr_salary_rule_category_family_reductions'/>
        <field name="parent_rule_id" ref="hr_salary_rule_other_family_charges_reductions"/>
        <field name="name">Reduction for isolated parent</field>
        <field name="code">Red.Iso.Par</field>
        <field name="sequence">144</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = (employee.marital == 'widower' or (employee.marital in ['divorced', 'single', 'widower'] and employee.dependent_children)) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = min(36.00, - (categories.PP + categories.FamRed + categories.ChA))</field>
    </record>
    <record id="hr_salary_rule_reduction_disabled" model="hr.salary.rule">
        <field name="category_id" ref='hr_salary_rule_category_family_reductions'/>
        <field name="parent_rule_id" ref="hr_salary_rule_other_family_charges_reductions"/>
        <field name="name">Reduction for disabled employee</field>
        <field name="code">Red.Dis</field>
        <field name="sequence">145</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = (employee.disabled) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = min(36.00, - (categories.PP + categories.FamRed + categories.ChA))</field>
    </record>
    <record id="hr_salary_rule_reduction_seniors" model="hr.salary.rule">
        <field name="category_id" ref='hr_salary_rule_category_family_reductions'/>
        <field name="parent_rule_id" ref="hr_salary_rule_other_family_charges_reductions"/>
        <field name="name">Reduction for dependent seniors</field>
        <field name="code">Red.Seniors</field>
        <field name="sequence">146</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = (employee.other_dependent_people and employee.dependent_seniors) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = min(80.0 * employee.dependent_seniors, - (categories.PP + categories.FamRed + categories.ChA))</field>
    </record>
    <record id="hr_salary_rule_reduction_juniors" model="hr.salary.rule">
        <field name="category_id" ref='hr_salary_rule_category_family_reductions'/>
        <field name="parent_rule_id" ref="hr_salary_rule_other_family_charges_reductions"/>
        <field name="name">Reduction for dependent juniors</field>
        <field name="code">Red.Juniors</field>
        <field name="sequence">147</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = (employee.other_dependent_people and employee.dependent_juniors) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = min(36.0 * employee.dependent_juniors, - (categories.PP + categories.FamRed + categories.ChA))</field>
    </record>
    <record id="hr_salary_rule_reduction_insufficient_net" model="hr.salary.rule">
        <field name="category_id" ref='hr_salary_rule_category_family_reductions'/>
        <field name="parent_rule_id" ref="hr_salary_rule_other_family_charges_reductions"/>
        <field name="name">Reduction for low spouse revenue</field>
        <field name="code">Red.Spouse.Net</field>
        <field name="sequence">148</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = (employee.marital in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='with income' and employee.spouse_net_revenue &lt;= 225.0) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = min(115.0, - (categories.PP + categories.FamRed + categories.ChA))</field>
    </record>
    <record id="hr_salary_rule_reduction_insufficient_other_net" model="hr.salary.rule">
        <field name="category_id" ref='hr_salary_rule_category_family_reductions'/>
        <field name="parent_rule_id" ref="hr_salary_rule_other_family_charges_reductions"/>
        <field name="name">Reduction for low spouse other revenue</field>
        <field name="code">Red.Spouse.Oth.Net</field>
        <field name="sequence">149</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = (employee.marital in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='with income' and not employee.spouse_net_revenue and employee.spouse_other_net_revenue &lt;= 450.0) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = min(229.5, - (categories.PP + categories.FamRed + categories.ChA))</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="parent_rule_id" ref="hr_salary_rule_other_family_charges_reductions"/>
        <field name="name">Disabled Spouse Allowance</field>
        <field name="code">Sp.handicap</field>
        <field name="sequence">150</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = (employee.disabled_spouse_bool==True) and (categories.PP + categories.FamRed + categories.ChA &lt; 0.0)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">min(36.0, - (categories.PP + categories.FamRed + categories.ChA))</field>
    </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">ATN Company Car</field>
        <field name="code">ATN.CAR</field>
        <field name="sequence">70</field>
        <field name="condition_select">python</field>
        <field name="condition_python">
result = bool(contract.transport_mode_car and contract.car_atn)
        </field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">
result = contract.car_atn
        </field>
    </record>
    <record id="hr_salary_rule_atn_internet" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_div_impos"/>
        <field name="name">ATN Internet</field>
        <field name="code">ATN.INT</field>
        <field name="sequence">16</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = bool(contract.internet)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = 5.0</field>
    </record>
    <record id="hr_salary_rule_atn_mobile" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_div_impos"/>
        <field name="name">ATN Mobile</field>
        <field name="code">ATN.MOB</field>
        <field name="sequence">17</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = bool(contract.mobile)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = 12.0</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">ATN Company Car</field>
        <field name="code">ATN.CAR.2</field>
        <field name="sequence">160</field>
        <field name="condition_select">python</field>
        <field name="condition_python">
result = bool(contract.transport_mode_car and contract.car_atn)
        </field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">
result = -contract.car_atn
        </field>
    </record>
    <record id="hr_salary_rule_atn_internet_2" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_div_net"/>
        <field name="name">ATN Internet</field>
        <field name="code">ATN.INT.2</field>
        <field name="sequence">161</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = contract.internet</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = -5.0</field>
    </record>
    <record id="hr_salary_rule_atn_mobile_2" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_div_net"/>
        <field name="name">ATN Mobile</field>
        <field name="code">ATN.MOB.2</field>
        <field name="sequence">162</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = contract.mobile</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = -12.0</field>
    </record>
    <record id="hr_salary_rule_commission_on_target" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_div_net"/>
        <field name="name">Commission on Target</field>
        <field name="code">COM</field>
        <field name="sequence">170</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = bool(contract.commission_on_target)</field>
        <field name="amount_select">code</field>
        <field name="amount_python_compute">result = contract.warrant_value_employee / 12.0</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 Meal Voucher</field>
        <field name="code">MEAL_V_EMP</field>
        <field name="sequence">165</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = bool(contract.meal_voucher_amount)</field>
        <field name="amount_select">percentage</field>
        <field name="amount_percentage">-100.0</field>
        <field name="amount_percentage_base">contract.meal_voucher_amount - contract.meal_voucher_paid_by_employer</field>
        <field name="quantity">worked_days.WORK100 and worked_days.WORK100.number_of_days</field>
        <field name="appears_on_payslip" eval="True"/>
        <field name="register_id" ref="contrib_register_meal_vouchers"/>
    </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.others_reimbursed_amount)</field>
        <field name="amount_python_compute">result = contract.others_reimbursed_amount</field>
    </record>
    <record id="hr_salary_rule_representation_fees" model="hr.salary.rule">
        <field name="category_id" ref="hr_payroll_head_div_net"/>
        <field name="name">Representation Fees</field>
        <field name="code">REP.FEES</field>
        <field name="amount_select">code</field>
        <field name="sequence">171</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = bool(contract.representation_fees)</field>
        <field name="amount_python_compute">result = contract.representation_fees</field>
    </record>
    <record id="hr_salary_rule_ip" model="hr.salary.rule">
        <field name="category_id" ref="l10n_be_hr_payroll.hr_payroll_head_div_net"/>
        <field name="name">Intellectual Property</field>
        <field name="code">IP</field>
        <field name="amount_select">code</field>
        <field name="sequence">172</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = bool(contract.ip)</field>
        <field name="amount_python_compute">result = categories.GROSSIP * contract.ip_wage_rate / 100.0</field>
    </record>
    <record id="hr_salary_rule_ip_deduction" model="hr.salary.rule">
        <field name="category_id" ref="l10n_be_hr_payroll.hr_payroll_head_div_net"/>
        <field name="name">Intellectual Property Income Deduction</field>
        <field name="code">IP.DED</field>
        <field name="amount_select">code</field>
        <field name="sequence">173</field>
        <field name="condition_select">python</field>
        <field name="condition_python">result = bool(contract.ip)</field>
        <field name="amount_python_compute">
tax_rate = 0.15
ip_amount = categories.GROSSIP * contract.ip_wage_rate / 100.0
if ip_amount &gt;= 0.0 and ip_amount &lt;= 15660:
    tax_rate = tax_rate / 2.0
elif ip_amount &gt; 15660 and ip_amount &lt;=31320:
    tax_rate = tax_rate * 3.0 / 4.0
result = -min(ip_amount * tax_rate, 11745) 
        </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.additional_net_amount)</field>
        <field name="amount_python_compute">result = contract.additional_net_amount</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_amount)</field>
        <field name="amount_python_compute">result = -contract.retained_net_amount</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_parent_company_car'),
            ref('hr_payroll_rules_company_car_2'),
            ref('hr_salary_rule_atn_mobile_2'),
            ref('hr_salary_rule_atn_internet_2'),
            ref('hr_salary_rule_atn_internet'),
            ref('hr_salary_rule_atn_mobile'),
            ref('hr_payroll_rules_onss_rule'),
            ref('hr_salary_rule_employment_bonus_employees'),
            ref('hr_payroll_rules_employee'),
            ref('hr_payroll_rules_bareme'),
            ref('hr_payroll_rules_baremeII'),
            ref('hr_payroll_rules_baremeIII'),
            ref('hr_salary_rule_other_family_charges_reductions'),
            ref('hr_payroll_rules_child_alw'),
            ref('hr_payroll_rules_ch_worker'),
            ref('hr_payroll_rules_reim_travel'),
            ref('hr_payroll_rules_mis_ex_onss_1'),
            ref('hr_payroll_rules_mis_ex_onss_2'),
            ref('hr_salary_rule_representation_fees'),
            ref('hr_payroll_rules_suppl_net'),
            ref('hr_payroll_rules_retained_net'),
            ref('hr_salary_rule_ip'),
            ref('hr_salary_rule_ip_deduction'),
            ref('hr_salary_rule_ip_part'),
            ref('hr_salary_rule_gross_with_ip')
        ])]" 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_salary_rule_employment_bonus_workers'),
            ref('hr_payroll_rules_bareme'),
            ref('hr_payroll_rules_baremeII'),
            ref('hr_payroll_rules_baremeIII'),
            ref('hr_payroll_rules_child_alw'),
            ref('hr_salary_rule_other_family_charges_reductions'),
            ref('hr_payroll_rules_ch_worker'),
            ref('hr_payroll_rules_reim_travel'),
            ref('hr_payroll_rules_mis_ex_onss_1'),
            ref('hr_payroll_rules_mis_ex_onss_2'),
            ref('hr_salary_rule_representation_fees'),
            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>

        <!-- Salary advantages definition -->
        <record id="hr_contract_advantage_template_meal_voucher_amount" model="hr.contract.advantage.template">
            <field name="name">Check Value Meal</field>
            <field name="code">meal_voucher_amount</field>
            <field name="default_value">7.45</field>
        </record>
        <record id="hr_contract_advantage_template_internet" model="hr.contract.advantage.template">
            <field name="name">Internet</field>
            <field name="code">internet</field>
            <field name="default_value">38.0</field>
        </record>
        <record id="hr_contract_advantage_template_mobile" model="hr.contract.advantage.template">
            <field name="name">Mobile</field>
            <field name="code">mobile</field>
            <field name="default_value">30.0</field>
        </record>
        <record id="hr_contract_advantage_template_mobile_plus" model="hr.contract.advantage.template">
            <field name="name">Mobile +</field>
            <field name="code">mobile_plus</field>
            <field name="default_value">50.0</field>
        </record>
        <record id="hr_contract_advantage_template_additional_net_amount" model="hr.contract.advantage.template">
            <field name="name">Net supplements</field>
            <field name="code">additional_net_amount</field>
        </record>
        <record id="hr_contract_advantage_template_retained_net_amount" model="hr.contract.advantage.template">
            <field name="name">Net retained</field>
            <field name="code">retained_net_amount</field>
        </record>
        <record id="hr_contract_advantage_template_commission_on_target" model="hr.contract.advantage.template">
            <field name="name">Commission on target</field>
            <field name="code">commission_on_target</field>
            <field name="default_value">0.0</field>
        </record>
        <record id="hr_contract_advantage_template_fuel_card" model="hr.contract.advantage.template">
            <field name="name">Fuel card</field>
            <field name="code">fuel_card</field>
            <field name="default_value">150.0</field>
            <field name="lower_bound">0.0</field>
            <field name="upper_bound">500.0</field>
        </record>
        <record id="hr_contract_advantage_template_holidays" model="hr.contract.advantage.template">
            <field name="name">Leaves duration</field>
            <field name="code">holidays</field>
            <field name="default_value">20.0</field>
            <field name="lower_bound">0.0</field>
            <field name="upper_bound">35.0</field>
        </record>
        <record id="hr_contract_advantage_template_representation_fees" model="hr.contract.advantage.template">
            <field name="name">Representation fees</field>
            <field name="code">representation_fees</field>
            <field name="default_value">150.0</field>
        </record>
        <record id="hr_contract_advantage_template_eco_checks" model="hr.contract.advantage.template">
            <field name="name">Eco-checks</field>
            <field name="code">eco_checks</field>
            <field name="default_value">250.0</field>
        </record>

</odoo>
