286 lines
13 KiB
XML
286 lines
13 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<record id="l10n_be_hr_payroll_structure_cp200_pfi_basic_salary_rule" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.BASIC"/>
|
|
<field name="name">Basic Salary</field>
|
|
<field name="sequence">1</field>
|
|
<field name="code">BASIC</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = payslip.paid_amount
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_atn_internet" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll_head_div_impos"/>
|
|
<field name="name">Benefit in Kind (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(version.internet)</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">result = 5.0</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_atn_mobile" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll_head_div_impos"/>
|
|
<field name="name">Benefit in Kind (Phone Subscription)</field>
|
|
<field name="code">ATN.MOB</field>
|
|
<field name="sequence">17</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = bool(version.mobile)</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if version.mobile and not version.internet:
|
|
result = 4.0 + 5.0
|
|
if version.mobile and version.internet:
|
|
result = 4.0
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_atn_laptop" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll_head_div_impos"/>
|
|
<field name="name">Benefit in Kind (Laptop)</field>
|
|
<field name="code">ATN.LAP</field>
|
|
<field name="sequence">18</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = bool(version.has_laptop)</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">result = payslip._rule_parameter('cp200_bik_laptop')</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_company_car" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll_head_div_impos"/>
|
|
<field name="name">Benefit in Kind (Company Car)</field>
|
|
<field name="code">ATN.CAR</field>
|
|
<field name="sequence">18</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = bool(version.transport_mode_car and version.car_atn)</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">result = version.car_atn</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_gross_salary" 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="sequence">20</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = categories['BASIC']
|
|
if version.internet:
|
|
result += result_rules['ATN.INT']['total']
|
|
if version.mobile:
|
|
result += result_rules['ATN.MOB']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="l10n_be_hr_payroll_structure_cp200_pfi_gross_salary_rule" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.GROSS"/>
|
|
<field name="name">Taxable Salary</field>
|
|
<field name="sequence">100</field>
|
|
<field name="code">GROSS</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = categories['BASIC'] + categories['ALW']
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_salary_withholding_taxes" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll_head_pp"/>
|
|
<field name="name">Withholding Tax</field>
|
|
<field name="code">P.P</field>
|
|
<field name="sequence">120</field>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = version.wage
|
|
|
|
# The car atn is included for withholding taxes in pfi contracts, not the other advantages
|
|
if bool(version.transport_mode_car and version.car_atn):
|
|
result += version.car_atn
|
|
|
|
result *= -0.2
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_company_car_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll_head_div_net"/>
|
|
<field name="name">Benefit in Kind (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(version.transport_mode_car and version.car_atn)</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result_qty = result_rules['ATN.CAR']['quantity']
|
|
result = -result_rules['ATN.CAR']['amount']
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_atn_internet_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll_head_div_net"/>
|
|
<field name="name">Benefit in Kind (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 = version.internet</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result_qty = result_rules['ATN.INT']['quantity']
|
|
result = -result_rules['ATN.INT']['amount']
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_atn_mobile_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll_head_div_net"/>
|
|
<field name="name">Benefit in Kind (Phone Subscription)</field>
|
|
<field name="code">ATN.MOB.2</field>
|
|
<field name="sequence">162</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = version.mobile</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if version.mobile:
|
|
result_qty = result_rules['ATN.MOB']['quantity']
|
|
result = -result_rules['ATN.MOB']['amount']
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_atn_laptop_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll_head_div_net"/>
|
|
<field name="name">Benefit in Kind (Laptop)</field>
|
|
<field name="code">ATN.LAP.2</field>
|
|
<field name="sequence">163</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = version.has_laptop</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result_qty = result_rules['ATN.LAP']['quantity']
|
|
result = -result_rules['ATN.LAP']['amount']
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="cp200_pfi_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(version.meal_voucher_amount)</field>
|
|
<field name="amount_select">percentage</field>
|
|
<field name="amount_percentage">-100.0</field>
|
|
<field name="amount_percentage_base">version.meal_voucher_amount - version.meal_voucher_paid_by_employer</field>
|
|
<field name="quantity">payslip.meal_voucher_count</field>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
<field name="partner_id" ref="res_partner_meal_vouchers"/>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="l10n_be_hr_payroll_structure_cp200_pfi_attachment_of_salary_rule" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Attachment of Salary</field>
|
|
<field name="sequence">174</field>
|
|
<field name="code">ATTACH_SALARY</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'ATTACH_SALARY' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['ATTACH_SALARY'].amount
|
|
result_name = inputs['ATTACH_SALARY'].name
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="l10n_be_hr_payroll_structure_cp200_pfi_assignment_of_salary_rule" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Assignment of Salary</field>
|
|
<field name="sequence">174</field>
|
|
<field name="code">ASSIG_SALARY</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'ASSIG_SALARY' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['ASSIG_SALARY'].amount
|
|
result_name = inputs['ASSIG_SALARY'].name
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="l10n_be_hr_payroll_structure_cp200_pfi_child_support" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Child Support</field>
|
|
<field name="code">CHILD_SUPPORT</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="sequence">174</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'CHILD_SUPPORT' in inputs</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['CHILD_SUPPORT'].amount
|
|
result_name = inputs['CHILD_SUPPORT'].name
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="l10n_be_hr_payroll_structure_cp200_pfi_deduction_salary_rule" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Deduction</field>
|
|
<field name="sequence">198</field>
|
|
<field name="code">DEDUCTION</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'DEDUCTION' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['DEDUCTION'].amount
|
|
result_name = inputs['DEDUCTION'].name
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="l10n_be_hr_payroll_structure_cp200_pfi_reimbursement_salary_rule" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Reimbursement</field>
|
|
<field name="sequence">199</field>
|
|
<field name="code">REIMBURSEMENT</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'REIMBURSEMENT' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['REIMBURSEMENT'].amount
|
|
result_name = inputs['REIMBURSEMENT'].name
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
|
|
<record id="l10n_be_hr_payroll_structure_cp200_pfi_net_salary" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.NET"/>
|
|
<field name="name">Net Salary</field>
|
|
<field name="sequence">200</field>
|
|
<field name="code">NET</field>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = categories['BASIC'] + categories['ALW'] + categories['DED']
|
|
</field>
|
|
<field name="struct_id" ref="hr_payroll_structure_cp200_pfi"/>
|
|
</record>
|
|
</odoo>
|