6911 lines
353 KiB
XML
6911 lines
353 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!-- DO NOT MODIFY ANY RULE HERE UNDER ANY CIRCUMSTANCE BEFORE CONSULTATION WITH AN L10N_CH_HR_PAYROLL EXPERT-->
|
|
|
|
<!-- Technical Wage Types -->
|
|
<record id="l10n_ch_elm_rule_as_days" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AS Days</field>
|
|
<field name="code">ASDAYS</field>
|
|
<field name="sequence">1</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if "ASDAYS" in inputs:
|
|
result = inputs["ASDAYS"].amount
|
|
else:
|
|
result = payslip._l10n_ch_get_occupation_days()
|
|
canton, is_code, municipality = payslip.l10n_ch_is_code.split('-') if payslip.l10n_ch_is_code else (False, False, False)
|
|
payslip._log_is_line(
|
|
is_canton=canton,
|
|
municipality=municipality,
|
|
is_code=is_code,
|
|
code='ASDAYS',
|
|
amount=result)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_worked_days" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Worked Days Total</field>
|
|
<field name="code">ISWORKEDDAYS</field>
|
|
<field name="sequence">1</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = 20 if not payslip.l10n_ch_after_departure_payment else 0
|
|
result_rate = (result_rules['ASDAYS']['total'] / 30) * 100
|
|
canton, is_code, municipality = payslip.l10n_ch_is_code.split('-') if payslip.l10n_ch_is_code else (False, False, False)
|
|
payslip._log_is_line(
|
|
is_canton=canton,
|
|
municipality=municipality,
|
|
is_code=is_code,
|
|
code='ISWORKEDDAYS',
|
|
amount=result*result_rate/100)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ch_days" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Worked Days in CH</field>
|
|
<field name="code">ISWORKEDDAYSINCH</field>
|
|
<field name="sequence">1</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if "ISWORKEDDAYSINCH" in inputs:
|
|
result = inputs["ISWORKEDDAYSINCH"].amount
|
|
else:
|
|
result = min(payslip.employee_id.l10n_ch_working_days_in_ch, result_rules['ISWORKEDDAYS']['total'])
|
|
canton, is_code, municipality = payslip.l10n_ch_is_code.split('-') if payslip.l10n_ch_is_code else (False, False, False)
|
|
payslip._log_is_line(
|
|
is_canton=canton,
|
|
municipality=municipality,
|
|
is_code=is_code,
|
|
code='ISWORKEDDAYSINCH',
|
|
amount=result)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_activity_rate" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Activity Rate</field>
|
|
<field name="code">ACTIVITYRATE</field>
|
|
<field name="sequence">1</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if "ACTIVITYRATE" in inputs:
|
|
result = inputs["ACTIVITYRATE"].amount
|
|
else:
|
|
if not version.irregular_working_time and version.l10n_ch_current_occupation_rate:
|
|
result = version.l10n_ch_current_occupation_rate
|
|
else:
|
|
result = 100
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="l10n_ch_5_cents_rounding" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
|
|
<!-- Wage Types -->
|
|
<record id="l10n_ch_elm_rule_1000" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.BASIC"/>
|
|
<field name="name">Monthly Salary</field>
|
|
<field name="code">WT_1000</field>
|
|
<field name="l10n_ch_code">1000</field>
|
|
<field name="sequence">5</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_1000']['total'] > 0 or 'WT_1000' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1000' in inputs:
|
|
result = inputs['WT_1000'].amount
|
|
result_name = inputs['WT_1000'].name
|
|
else:
|
|
if ch_wage_components['CH_1000']['base'] and ch_wage_components['CH_1000']['rate']:
|
|
result = ch_wage_components['CH_1000']['base']
|
|
result_rate = ch_wage_components['CH_1000']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_1000']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="13"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1001" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.BASIC"/>
|
|
<field name="name">Monthly Salary Correction</field>
|
|
<field name="code">WT_1001</field>
|
|
<field name="l10n_ch_code">1001</field>
|
|
<field name="sequence">6</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1001' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1001'].amount
|
|
result_name = inputs['WT_1001'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_caf_statement">0</field>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1005" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.BASIC"/>
|
|
<field name="name">Hourly Salary</field>
|
|
<field name="code">BASICHOURLY</field>
|
|
<field name="l10n_ch_code">1005</field>
|
|
<field name="sequence">5</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_1005']['total'] > 0 or 'WT_1005' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1005' in inputs:
|
|
result = inputs['WT_1005'].amount
|
|
result_name = inputs['WT_1005'].name
|
|
else:
|
|
if ch_wage_components['CH_1005']['base'] and ch_wage_components['CH_1005']['rate']:
|
|
result = ch_wage_components['CH_1005']['base']
|
|
result_rate = ch_wage_components['CH_1005']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_1005']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_hourly_included" eval="True"/>
|
|
<field name="l10n_ch_vacation_pay_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1006" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.BASIC"/>
|
|
<field name="name">Lesson Salary</field>
|
|
<field name="code">BASICLESSON</field>
|
|
<field name="l10n_ch_code">1006</field>
|
|
<field name="sequence">6</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_1006']['total'] > 0 or 'WT_1006' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1006' in inputs:
|
|
result = inputs['WT_1006'].amount
|
|
result_name = inputs['WT_1006'].name
|
|
else:
|
|
if ch_wage_components['CH_1006']['base'] and ch_wage_components['CH_1006']['rate']:
|
|
result = ch_wage_components['CH_1006']['base']
|
|
result_rate = ch_wage_components['CH_1006']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_1006']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_caf_statement">0</field>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_hourly_included" eval="True"/>
|
|
<field name="l10n_ch_vacation_pay_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_rule_1065" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Overtime</field>
|
|
<field name="code">WT_1065</field>
|
|
<field name="l10n_ch_code">1065</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_1065']['total'] > 0 or 'WT_1065' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1065' in inputs:
|
|
result = inputs['WT_1065'].amount
|
|
result_name = inputs['WT_1065'].name
|
|
else:
|
|
if ch_wage_components['CH_1065']['base'] and ch_wage_components['CH_1065']['rate']:
|
|
result = ch_wage_components['CH_1065']['base']
|
|
result_rate = ch_wage_components['CH_1065']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_1065']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="False"/>
|
|
<field name="l10n_ch_yearly_statement">P</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1061" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Overtime 125%</field>
|
|
<field name="code">WT_1061</field>
|
|
<field name="l10n_ch_code">1061</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_1061']['total'] > 0 or 'WT_1061' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1061' in inputs:
|
|
result = inputs['WT_1061'].amount
|
|
result_name = inputs['WT_1061'].name
|
|
else:
|
|
if ch_wage_components['CH_1061']['base'] and ch_wage_components['CH_1061']['rate']:
|
|
result = ch_wage_components['CH_1061']['base']
|
|
result_rate = ch_wage_components['CH_1061']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_1061']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="False"/>
|
|
<field name="l10n_ch_yearly_statement">P</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1066" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Overtime 150%</field>
|
|
<field name="code">WT_1066</field>
|
|
<field name="l10n_ch_code">1066</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_1066']['total'] > 0 or 'WT_1066' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1066' in inputs:
|
|
result = inputs['WT_1066'].amount
|
|
result_name = inputs['WT_1066'].name
|
|
else:
|
|
if ch_wage_components['CH_1066']['base'] and ch_wage_components['CH_1066']['rate']:
|
|
result = ch_wage_components['CH_1066']['base']
|
|
result_rate = ch_wage_components['CH_1066']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_1066']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="False"/>
|
|
<field name="l10n_ch_yearly_statement">P</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1067" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Overtime after departure</field>
|
|
<field name="code">WT_1067</field>
|
|
<field name="l10n_ch_code">1067</field>
|
|
<field name="sequence">10</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1067' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1067'].amount
|
|
result_name = inputs['WT_1067'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">P</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1068" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Overtime 200%</field>
|
|
<field name="code">WT_1068</field>
|
|
<field name="l10n_ch_code">1068</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_1068']['total'] > 0 or 'WT_1068' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1068' in inputs:
|
|
result = inputs['WT_1068'].amount
|
|
result_name = inputs['WT_1068'].name
|
|
else:
|
|
if ch_wage_components['CH_1068']['base'] and ch_wage_components['CH_1068']['rate']:
|
|
result = ch_wage_components['CH_1068']['base']
|
|
result_rate = ch_wage_components['CH_1068']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_1068']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="False"/>
|
|
<field name="l10n_ch_yearly_statement">P</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_hol_alw_base" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Vacation Base</field>
|
|
<field name="code">VACATION_BASE</field>
|
|
<field name="l10n_ch_code" eval="False"/>
|
|
<field name="sequence">21</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_vacation_pay_included)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="l10n_ch_5_cents_rounding" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_rule_1160" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Vacation compensation</field>
|
|
<field name="code">HOLALW</field>
|
|
<field name="l10n_ch_code">1160</field>
|
|
<field name="sequence">24</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = result_rules['VACATION_BASE']['total'] > 0 and version.l10n_ch_contractual_holidays_rate and version.l10n_ch_contractual_vacation_pay</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result_rate = version.l10n_ch_contractual_holidays_rate
|
|
result = result_rules['VACATION_BASE']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_hourly_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1161" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Compensation for public holidays</field>
|
|
<field name="code">PUBHOLALW</field>
|
|
<field name="l10n_ch_code">1161</field>
|
|
<field name="sequence">24</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = result_rules['VACATION_BASE']['total'] > 0 and version.l10n_ch_contractual_public_holidays_rate</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result_rate = version.l10n_ch_contractual_public_holidays_rate
|
|
result = result_rules['VACATION_BASE']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_caf_statement">0</field>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_hourly_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1010" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Professional Fees</field>
|
|
<field name="code">WT_1010</field>
|
|
<field name="l10n_ch_code">1010</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1010' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1010'].amount
|
|
result_name = inputs['WT_1010'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1015" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Auxiliary wages</field>
|
|
<field name="code">WT_1015</field>
|
|
<field name="l10n_ch_code">1015</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1015' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1015'].amount
|
|
result_name = inputs['WT_1015'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1016" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Salary for working from home</field>
|
|
<field name="code">WT_1016</field>
|
|
<field name="l10n_ch_code">1016</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1016' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1016'].amount
|
|
result_name = inputs['WT_1016'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1017" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Salary for cleaning</field>
|
|
<field name="code">WT_1017</field>
|
|
<field name="l10n_ch_code">1017</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1017' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1017'].amount
|
|
result_name = inputs['WT_1017'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1018" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Salary by task</field>
|
|
<field name="code">WT_1018</field>
|
|
<field name="l10n_ch_code">1018</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1018' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1018'].amount
|
|
result_name = inputs['WT_1018'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1020" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Indemnity for absence</field>
|
|
<field name="code">WT_1020</field>
|
|
<field name="l10n_ch_code">1020</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1020' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1020'].amount
|
|
result_name = inputs['WT_1020'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1021" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Authorities and commissions</field>
|
|
<field name="code">WT_1021</field>
|
|
<field name="l10n_ch_code">1021</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1021' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1021'].amount
|
|
result_name = inputs['WT_1021'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1030" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Length-of-service allowance</field>
|
|
<field name="code">WT_1030</field>
|
|
<field name="l10n_ch_code">1030</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1030' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1030'].amount
|
|
result_name = inputs['WT_1030'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1031" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Function allowance</field>
|
|
<field name="code">WT_1031</field>
|
|
<field name="l10n_ch_code">1031</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1031' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1031'].amount
|
|
result_name = inputs['WT_1031'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1032" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Compensation for replacement</field>
|
|
<field name="code">WT_1032</field>
|
|
<field name="l10n_ch_code">1032</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1032' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1032'].amount
|
|
result_name = inputs['WT_1032'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1033" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Residence allowance</field>
|
|
<field name="code">WT_1033</field>
|
|
<field name="l10n_ch_code">1033</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1033' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1033'].amount
|
|
result_name = inputs['WT_1033'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="12"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1034" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Cost-of-living allowance</field>
|
|
<field name="code">WT_1034</field>
|
|
<field name="l10n_ch_code">1034</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1034' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1034'].amount
|
|
result_name = inputs['WT_1034'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1040" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Family cost-of-living allowance</field>
|
|
<field name="code">WT_1040</field>
|
|
<field name="l10n_ch_code">1040</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1040' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1040'].amount
|
|
result_name = inputs['WT_1040'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1050" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Housing allowance</field>
|
|
<field name="code">WT_1050</field>
|
|
<field name="l10n_ch_code">1050</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1050' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1050'].amount
|
|
result_name = inputs['WT_1050'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="12"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1055" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Travel allowance</field>
|
|
<field name="code">WT_1055</field>
|
|
<field name="l10n_ch_code">1055</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1055' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1055'].amount
|
|
result_name = inputs['WT_1055'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1056" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Transfer allowance</field>
|
|
<field name="code">WT_1056</field>
|
|
<field name="l10n_ch_code">1056</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1056' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1056'].amount
|
|
result_name = inputs['WT_1056'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1060" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Extra work</field>
|
|
<field name="code">WT_1060</field>
|
|
<field name="l10n_ch_code">1060</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1060' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1060'].amount
|
|
result_name = inputs['WT_1060'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">P</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1070" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Team Work Allowance</field>
|
|
<field name="code">WT_1070</field>
|
|
<field name="l10n_ch_code">1070</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1070' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1070'].amount
|
|
result_name = inputs['WT_1070'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1071" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">On-call duty allowance</field>
|
|
<field name="code">WT_1071</field>
|
|
<field name="l10n_ch_code">1071</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_1071']['total'] > 0 or 'WT_1071' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1071' in inputs:
|
|
result = inputs['WT_1071'].amount
|
|
result_name = inputs['WT_1071'].name
|
|
else:
|
|
if ch_wage_components['CH_1071']['base'] and ch_wage_components['CH_1071']['rate']:
|
|
result = ch_wage_components['CH_1071']['base']
|
|
result_rate = ch_wage_components['CH_1071']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_1071']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1072" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Commitment allowance</field>
|
|
<field name="code">WT_1072</field>
|
|
<field name="l10n_ch_code">1072</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1072' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1072'].amount
|
|
result_name = inputs['WT_1072'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1073" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Sunday work allowance</field>
|
|
<field name="code">WT_1073</field>
|
|
<field name="l10n_ch_code">1073</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1073' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1073'].amount
|
|
result_name = inputs['WT_1073'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1074" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Compensation for inconvenience</field>
|
|
<field name="code">WT_1074</field>
|
|
<field name="l10n_ch_code">1074</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1074' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1074'].amount
|
|
result_name = inputs['WT_1074'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1075" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Night shift allowance</field>
|
|
<field name="code">WT_1075</field>
|
|
<field name="l10n_ch_code">1075</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_1075']['total'] > 0 or 'WT_1075' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1075' in inputs:
|
|
result = inputs['WT_1075'].amount
|
|
result_name = inputs['WT_1075'].name
|
|
else:
|
|
if ch_wage_components['CH_1075']['base'] and ch_wage_components['CH_1075']['rate']:
|
|
result = ch_wage_components['CH_1075']['base']
|
|
result_rate = ch_wage_components['CH_1075']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_1075']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1076" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Night work allowance</field>
|
|
<field name="code">WT_1076</field>
|
|
<field name="l10n_ch_code">1076</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1076' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1076'].amount
|
|
result_name = inputs['WT_1076'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1100" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Compensation for site inconvenience</field>
|
|
<field name="code">WT_1100</field>
|
|
<field name="l10n_ch_code">1100</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1100' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1100'].amount
|
|
result_name = inputs['WT_1100'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1101" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Compensation for arduous work</field>
|
|
<field name="code">WT_1101</field>
|
|
<field name="l10n_ch_code">1101</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1101' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1101'].amount
|
|
result_name = inputs['WT_1101'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1102" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Allowance for dirty work</field>
|
|
<field name="code">WT_1102</field>
|
|
<field name="l10n_ch_code">1102</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1102' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1102'].amount
|
|
result_name = inputs['WT_1102'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1103" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Dust allowance</field>
|
|
<field name="code">WT_1103</field>
|
|
<field name="l10n_ch_code">1103</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1103' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1103'].amount
|
|
result_name = inputs['WT_1103'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1104" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Compensation for underground work</field>
|
|
<field name="code">WT_1104</field>
|
|
<field name="l10n_ch_code">1104</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1104' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1104'].amount
|
|
result_name = inputs['WT_1104'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">J</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1110" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Advancement</field>
|
|
<field name="code">WT_1110</field>
|
|
<field name="l10n_ch_code">1110</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1110' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1110'].amount
|
|
result_name = inputs['WT_1110'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1111" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Bonus for drilling</field>
|
|
<field name="code">WT_1111</field>
|
|
<field name="l10n_ch_code">1111</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1111' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1111'].amount
|
|
result_name = inputs['WT_1111'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1112" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Tenacity bonus</field>
|
|
<field name="code">WT_1112</field>
|
|
<field name="l10n_ch_code">1112</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1112' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1112'].amount
|
|
result_name = inputs['WT_1112'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1130" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Commitment bonus</field>
|
|
<field name="code">WT_1130</field>
|
|
<field name="l10n_ch_code">1130</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1130' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1130'].amount
|
|
result_name = inputs['WT_1130'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1131" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Non-commitment indemnity</field>
|
|
<field name="code">WT_1131</field>
|
|
<field name="l10n_ch_code">1131</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1131' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1131'].amount
|
|
result_name = inputs['WT_1131'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1162" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Vacation payments</field>
|
|
<field name="code">WT_1162</field>
|
|
<field name="l10n_ch_code">1162</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1162' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1162'].amount
|
|
result_name = inputs['WT_1162'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="False"/>
|
|
<field name="l10n_ch_yearly_statement">P</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1163" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Vacation payment after departure</field>
|
|
<field name="code">WT_1163</field>
|
|
<field name="l10n_ch_code">1163</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1163' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1163'].amount
|
|
result_name = inputs['WT_1163'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">P</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1202" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Christmas Gratification</field>
|
|
<field name="code">WT_1202</field>
|
|
<field name="l10n_ch_code">1202</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1202' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1202'].amount
|
|
result_name = inputs['WT_1202'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1204" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Gratification</field>
|
|
<field name="code">WT_1204</field>
|
|
<field name="l10n_ch_code">1204</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1204' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1204'].amount
|
|
result_name = inputs['WT_1204'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1209" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Previous year's bonus payment</field>
|
|
<field name="code">WT_1209</field>
|
|
<field name="l10n_ch_code">1209</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1209' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1209'].amount
|
|
result_name = inputs['WT_1209'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1210" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Bonus</field>
|
|
<field name="code">WT_1210</field>
|
|
<field name="l10n_ch_code">1210</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1210' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1210'].amount
|
|
result_name = inputs['WT_1210'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1211" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Profit sharing</field>
|
|
<field name="code">WT_1211</field>
|
|
<field name="l10n_ch_code">1211</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1211' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1211'].amount
|
|
result_name = inputs['WT_1211'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1212" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Special allowance</field>
|
|
<field name="code">WT_1212</field>
|
|
<field name="l10n_ch_code">1212</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1212' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1212'].amount
|
|
result_name = inputs['WT_1212'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1213" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Success bonus</field>
|
|
<field name="code">WT_1213</field>
|
|
<field name="l10n_ch_code">1213</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1213' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1213'].amount
|
|
result_name = inputs['WT_1213'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1214" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Performance bonus</field>
|
|
<field name="code">WT_1214</field>
|
|
<field name="l10n_ch_code">1214</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1214' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1214'].amount
|
|
result_name = inputs['WT_1214'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1215" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Recognition bonus</field>
|
|
<field name="code">WT_1215</field>
|
|
<field name="l10n_ch_code">1215</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1215' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1215'].amount
|
|
result_name = inputs['WT_1215'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1216" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Incentive for improvement proposals</field>
|
|
<field name="code">WT_1216</field>
|
|
<field name="l10n_ch_code">1216</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1216' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1216'].amount
|
|
result_name = inputs['WT_1216'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1217" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Sales bonus</field>
|
|
<field name="code">WT_1217</field>
|
|
<field name="l10n_ch_code">1217</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1217' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1217'].amount
|
|
result_name = inputs['WT_1217'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1218" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Commission</field>
|
|
<field name="code">WT_1218</field>
|
|
<field name="l10n_ch_code">1218</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1218' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1218'].amount
|
|
result_name = inputs['WT_1218'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1219" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Attendance bonus</field>
|
|
<field name="code">WT_1219</field>
|
|
<field name="l10n_ch_code">1219</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1219' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1219'].amount
|
|
result_name = inputs['WT_1219'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1230" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Length of service gift</field>
|
|
<field name="code">WT_1230</field>
|
|
<field name="l10n_ch_code">1230</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1230' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1230'].amount
|
|
result_name = inputs['WT_1230'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1231" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Jubilee gift</field>
|
|
<field name="code">WT_1231</field>
|
|
<field name="l10n_ch_code">1231</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1231' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1231'].amount
|
|
result_name = inputs['WT_1231'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1232" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Loyalty bonus</field>
|
|
<field name="code">WT_1232</field>
|
|
<field name="l10n_ch_code">1232</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1232' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1232'].amount
|
|
result_name = inputs['WT_1232'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1250" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Damage prevention bonus</field>
|
|
<field name="code">WT_1250</field>
|
|
<field name="l10n_ch_code">1250</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1250' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1250'].amount
|
|
result_name = inputs['WT_1250'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1299" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Wages in the event of Maternity/Paternity Leave</field>
|
|
<field name="code">WT_1299</field>
|
|
<field name="l10n_ch_code">1299</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_MATERNITY']['total'] > 0 or 'WT_1299' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1299' in inputs:
|
|
result = inputs['WT_1299'].amount
|
|
result_name = inputs['WT_1299'].name
|
|
else:
|
|
if ch_wage_components['CH_MATERNITY']['base'] and ch_wage_components['CH_MATERNITY']['rate']:
|
|
result = ch_wage_components['CH_MATERNITY']['base']
|
|
result_rate = ch_wage_components['CH_MATERNITY']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_MATERNITY']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1300" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Wages in the event of an accident</field>
|
|
<field name="code">WT_1300</field>
|
|
<field name="l10n_ch_code">1300</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_ACCIDENT']['total'] > 0 or 'WT_1300' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1300' in inputs:
|
|
result = inputs['WT_1300'].amount
|
|
result_name = inputs['WT_1300'].name
|
|
else:
|
|
if ch_wage_components['CH_ACCIDENT']['base'] and ch_wage_components['CH_ACCIDENT']['rate']:
|
|
result = ch_wage_components['CH_ACCIDENT']['base']
|
|
result_rate = ch_wage_components['CH_ACCIDENT']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_ACCIDENT']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1301" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Wages in the event of illness</field>
|
|
<field name="code">WT_1301</field>
|
|
<field name="l10n_ch_code">1301</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_ILLNESS']['total'] > 0 or 'WT_1301' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1301' in inputs:
|
|
result = inputs['WT_1301'].amount
|
|
result_name = inputs['WT_1301'].name
|
|
else:
|
|
if ch_wage_components['CH_ILLNESS']['base'] and ch_wage_components['CH_ILLNESS']['rate']:
|
|
result = ch_wage_components['CH_ILLNESS']['base']
|
|
result_rate = ch_wage_components['CH_ILLNESS']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_ILLNESS']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1302" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Salary for military service/civil defense</field>
|
|
<field name="code">WT_1302</field>
|
|
<field name="l10n_ch_code">1302</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_MILITARY']['total'] > 0 or 'WT_1302' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1302' in inputs:
|
|
result = inputs['WT_1302'].amount
|
|
result_name = inputs['WT_1302'].name
|
|
else:
|
|
if ch_wage_components['CH_MILITARY']['base'] and ch_wage_components['CH_MILITARY']['rate']:
|
|
result = ch_wage_components['CH_MILITARY']['base']
|
|
result_rate = ch_wage_components['CH_MILITARY']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_MILITARY']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1303" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Training and development salary</field>
|
|
<field name="code">WT_1303</field>
|
|
<field name="l10n_ch_code">1303</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1303' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1303'].amount
|
|
result_name = inputs['WT_1303'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1304" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Hourly Wages in the event of an accident</field>
|
|
<field name="code">WT_1304</field>
|
|
<field name="l10n_ch_code">1304</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_ACCIDENT_HOURLY']['total'] > 0 or 'WT_1304' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1304' in inputs:
|
|
result = inputs['WT_1304'].amount
|
|
result_name = inputs['WT_1304'].name
|
|
else:
|
|
if ch_wage_components['CH_ACCIDENT_HOURLY']['base'] and ch_wage_components['CH_ACCIDENT_HOURLY']['rate']:
|
|
result = ch_wage_components['CH_ACCIDENT_HOURLY']['base']
|
|
result_rate = ch_wage_components['CH_ACCIDENT_HOURLY']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_ACCIDENT_HOURLY']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_hourly_included" eval="True"/>
|
|
<field name="l10n_ch_vacation_pay_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1305" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Hourly Wages in the event of illness</field>
|
|
<field name="code">WT_1305</field>
|
|
<field name="l10n_ch_code">1305</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_ILLNESS_HOURLY']['total'] > 0 or 'WT_1305' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1305' in inputs:
|
|
result = inputs['WT_1305'].amount
|
|
result_name = inputs['WT_1305'].name
|
|
else:
|
|
if ch_wage_components['CH_ILLNESS_HOURLY']['base'] and ch_wage_components['CH_ILLNESS_HOURLY']['rate']:
|
|
result = ch_wage_components['CH_ILLNESS_HOURLY']['base']
|
|
result_rate = ch_wage_components['CH_ILLNESS_HOURLY']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_ILLNESS_HOURLY']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_hourly_included" eval="True"/>
|
|
<field name="l10n_ch_vacation_pay_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1306" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Hourly Salary for military service/civil defense</field>
|
|
<field name="code">WT_1306</field>
|
|
<field name="l10n_ch_code">1306</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_MILITARY_HOURLY']['total'] > 0 or 'WT_1306' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1306' in inputs:
|
|
result = inputs['WT_1306'].amount
|
|
result_name = inputs['WT_1306'].name
|
|
else:
|
|
if ch_wage_components['CH_MILITARY_HOURLY']['base'] and ch_wage_components['CH_MILITARY_HOURLY']['rate']:
|
|
result = ch_wage_components['CH_MILITARY_HOURLY']['base']
|
|
result_rate = ch_wage_components['CH_MILITARY_HOURLY']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_MILITARY_HOURLY']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_hourly_included" eval="True"/>
|
|
<field name="l10n_ch_vacation_pay_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1307" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Hourly Wages in the event of Maternity/Paternity Leave</field>
|
|
<field name="code">WT_1307</field>
|
|
<field name="l10n_ch_code">1307</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = ch_wage_components['CH_MATERNITY_HOURLY']['total'] > 0 or 'WT_1307' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1307' in inputs:
|
|
result = inputs['WT_1307'].amount
|
|
result_name = inputs['WT_1307'].name
|
|
else:
|
|
if ch_wage_components['CH_MATERNITY_HOURLY']['base'] and ch_wage_components['CH_MATERNITY_HOURLY']['rate']:
|
|
result = ch_wage_components['CH_MATERNITY_HOURLY']['base']
|
|
result_rate = ch_wage_components['CH_MATERNITY_HOURLY']['rate']
|
|
else:
|
|
result = ch_wage_components['CH_MATERNITY_HOURLY']['total']
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_hourly_included" eval="True"/>
|
|
<field name="l10n_ch_vacation_pay_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_1400" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Severance pay (not subject to AHV)</field>
|
|
<field name="code">WT_1400</field>
|
|
<field name="l10n_ch_code">1400</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1400' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1400'].amount
|
|
result_name = inputs['WT_1400'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">4</field>
|
|
<field name="l10n_ch_yearly_statement">S</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1401" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Severance pay (subject to AHV)</field>
|
|
<field name="code">WT_1401</field>
|
|
<field name="l10n_ch_code">1401</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1401' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1401'].amount
|
|
result_name = inputs['WT_1401'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1410" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Lump-sum retirement benefit</field>
|
|
<field name="code">WT_1410</field>
|
|
<field name="l10n_ch_code">1410</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1410' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1410'].amount
|
|
result_name = inputs['WT_1410'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">4</field>
|
|
<field name="l10n_ch_yearly_statement">S</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1411" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Lump-sum benefit (subject to AHV)</field>
|
|
<field name="code">WT_1411</field>
|
|
<field name="l10n_ch_code">1411</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1411' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1411'].amount
|
|
result_name = inputs['WT_1411'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1420" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Payment of salary after death</field>
|
|
<field name="code">WT_1420</field>
|
|
<field name="l10n_ch_code">1420</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1420' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1420'].amount
|
|
result_name = inputs['WT_1420'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">4</field>
|
|
<field name="l10n_ch_yearly_statement">S</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1500" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Board fees</field>
|
|
<field name="code">WT_1500</field>
|
|
<field name="l10n_ch_code">1500</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1500' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1500'].amount
|
|
result_name = inputs['WT_1500'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">6</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1501" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Board indemnity</field>
|
|
<field name="code">WT_1501</field>
|
|
<field name="l10n_ch_code">1501</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1501' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1501'].amount
|
|
result_name = inputs['WT_1501'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">6</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1503" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Director fees</field>
|
|
<field name="code">WT_1503</field>
|
|
<field name="l10n_ch_code">1503</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1503' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1503'].amount
|
|
result_name = inputs['WT_1503'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">6</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1510" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Directors' profit-sharing</field>
|
|
<field name="code">WT_1510</field>
|
|
<field name="l10n_ch_code">1510</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1510' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1510'].amount
|
|
result_name = inputs['WT_1510'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">6</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1900" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Free meals</field>
|
|
<field name="code">WT_1900</field>
|
|
<field name="l10n_ch_code">1900</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1900' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1900'].amount
|
|
result_name = inputs['WT_1900'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">2.1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1901" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Free room</field>
|
|
<field name="code">WT_1901</field>
|
|
<field name="l10n_ch_code">1901</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1901' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1901'].amount
|
|
result_name = inputs['WT_1901'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">2.1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1902" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Free accommodation</field>
|
|
<field name="code">WT_1902</field>
|
|
<field name="l10n_ch_code">1902</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1902' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1902'].amount
|
|
result_name = inputs['WT_1902'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">2.3</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1910" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Private share of company car</field>
|
|
<field name="code">WT_1910</field>
|
|
<field name="l10n_ch_code">1910</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1910' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1910'].amount
|
|
result_name = inputs['WT_1910'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">2.2</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1920" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Tips subject to AHV contributions</field>
|
|
<field name="code">WT_1920</field>
|
|
<field name="l10n_ch_code">1920</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1920' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1920'].amount
|
|
result_name = inputs['WT_1920'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="False"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">I</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1950" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Rental housing rent reduction</field>
|
|
<field name="code">WT_1950</field>
|
|
<field name="l10n_ch_code">1950</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1950' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1950'].amount
|
|
result_name = inputs['WT_1950'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">2.3</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1953" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Expatriate benefits in kind</field>
|
|
<field name="code">WT_1953</field>
|
|
<field name="l10n_ch_code">1953</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1953' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1953'].amount
|
|
result_name = inputs['WT_1953'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">2.3</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1955" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Cash benefit</field>
|
|
<field name="code">WT_1955</field>
|
|
<field name="l10n_ch_code">1955</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1955' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1955'].amount
|
|
result_name = inputs['WT_1955'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">2.3</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1960" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Taxable profit-sharing rights</field>
|
|
<field name="code">WT_1960</field>
|
|
<field name="l10n_ch_code">1960</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1960' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1960'].amount
|
|
result_name = inputs['WT_1960'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">5</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1961" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Employee shares</field>
|
|
<field name="code">WT_1961</field>
|
|
<field name="l10n_ch_code">1961</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1961' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1961'].amount
|
|
result_name = inputs['WT_1961'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">5</field>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1962" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Employee options</field>
|
|
<field name="code">WT_1962</field>
|
|
<field name="l10n_ch_code">1962</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1962' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1962'].amount
|
|
result_name = inputs['WT_1962'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">5</field>
|
|
<field name="l10n_ch_yearly_statement">R</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1971" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Employee portion of KTG assumed by employer</field>
|
|
<field name="code">WT_1971</field>
|
|
<field name="l10n_ch_code">1971</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1971' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1971'].amount
|
|
result_name = inputs['WT_1971'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1972" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Employee portion PP assumed by employer</field>
|
|
<field name="code">WT_1972</field>
|
|
<field name="l10n_ch_code">1972</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1972' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1972'].amount
|
|
result_name = inputs['WT_1972'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1973" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Employee portion benefits purchase PP assumed by employer</field>
|
|
<field name="code">WT_1973</field>
|
|
<field name="l10n_ch_code">1973</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1973' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1973'].amount
|
|
result_name = inputs['WT_1973'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1974" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Employee portion CM assumed by employer</field>
|
|
<field name="code">WT_1974</field>
|
|
<field name="l10n_ch_code">1974</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1974' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1974'].amount
|
|
result_name = inputs['WT_1974'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1975" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Optional employer contribution AANP</field>
|
|
<field name="code">WT_1975</field>
|
|
<field name="l10n_ch_code">1975</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1975' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1975'].amount
|
|
result_name = inputs['WT_1975'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1976" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Optional employer contribution LAAC</field>
|
|
<field name="code">WT_1976</field>
|
|
<field name="l10n_ch_code">1976</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1976' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1976'].amount
|
|
result_name = inputs['WT_1976'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1977" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">3rd pillar B paid by employer</field>
|
|
<field name="code">WT_1977</field>
|
|
<field name="l10n_ch_code">1977</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1977' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1977'].amount
|
|
result_name = inputs['WT_1977'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1978" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">3rd pillar A paid by employer</field>
|
|
<field name="code">WT_1978</field>
|
|
<field name="l10n_ch_code">1978</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1978' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1978'].amount
|
|
result_name = inputs['WT_1978'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1979" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Source-Tax paid by employer</field>
|
|
<field name="code">WT_1979</field>
|
|
<field name="l10n_ch_code">1979</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1979' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1979'].amount
|
|
result_name = inputs['WT_1979'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_1980" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Further training (salary certificate)</field>
|
|
<field name="code">WT_1980</field>
|
|
<field name="l10n_ch_code">1980</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_1980' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_1980'].amount
|
|
result_name = inputs['WT_1980'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="False"/>
|
|
<field name="l10n_ch_salary_certificate">13.3</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2000" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Loss-of-earnings indemnity (APG)</field>
|
|
<field name="code">WT_2000</field>
|
|
<field name="l10n_ch_code">2000</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2000' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2000'].amount
|
|
result_name = inputs['WT_2000'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">Y</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2005" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Military compensation benefit (CCM)</field>
|
|
<field name="code">WT_2005</field>
|
|
<field name="l10n_ch_code">2005</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2005' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2005'].amount
|
|
result_name = inputs['WT_2005'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">Y</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2010" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Subsidiary military fund</field>
|
|
<field name="code">WT_2010</field>
|
|
<field name="l10n_ch_code">2010</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2010' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2010'].amount
|
|
result_name = inputs['WT_2010'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">Y</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2015" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Parifonds</field>
|
|
<field name="code">WT_2015</field>
|
|
<field name="l10n_ch_code">2015</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2015' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2015'].amount
|
|
result_name = inputs['WT_2015'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">Y</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2020" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Military insurance compensation</field>
|
|
<field name="code">WT_2020</field>
|
|
<field name="l10n_ch_code">2020</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2020' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2020'].amount
|
|
result_name = inputs['WT_2020'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">Y</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2021" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Military insurance pension</field>
|
|
<field name="code">WT_2021</field>
|
|
<field name="l10n_ch_code">2021</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2021' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2021'].amount
|
|
result_name = inputs['WT_2021'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="False"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2022" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Partial pension military insurance (AM)</field>
|
|
<field name="code">WT_2022</field>
|
|
<field name="l10n_ch_code">2022</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2022' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2022'].amount
|
|
result_name = inputs['WT_2022'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2025" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">DI allowance</field>
|
|
<field name="code">WT_2025</field>
|
|
<field name="l10n_ch_code">2025</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2025' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2025'].amount
|
|
result_name = inputs['WT_2025'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">Y</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2026" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">DI pension</field>
|
|
<field name="code">WT_2026</field>
|
|
<field name="l10n_ch_code">2026</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2026' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2026'].amount
|
|
result_name = inputs['WT_2026'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="False"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2027" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Partial DI pension</field>
|
|
<field name="code">WT_2027</field>
|
|
<field name="l10n_ch_code">2027</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2027' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2027'].amount
|
|
result_name = inputs['WT_2027'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2030" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Accident - daily allowance</field>
|
|
<field name="code">WT_2030</field>
|
|
<field name="l10n_ch_code">2030</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2030' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2030'].amount
|
|
result_name = inputs['WT_2030'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2031" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Accident - Pension</field>
|
|
<field name="code">WT_2031</field>
|
|
<field name="l10n_ch_code">2031</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2031' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2031'].amount
|
|
result_name = inputs['WT_2031'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="False"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2032" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Accident - Partial Pension</field>
|
|
<field name="code">WT_2032</field>
|
|
<field name="l10n_ch_code">2032</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2032' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2032'].amount
|
|
result_name = inputs['WT_2032'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2035" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Daily sickness allowance</field>
|
|
<field name="code">WT_2035</field>
|
|
<field name="l10n_ch_code">2035</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2035' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2035'].amount
|
|
result_name = inputs['WT_2035'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2040" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Maternity/Paternity allowance</field>
|
|
<field name="code">WT_2040</field>
|
|
<field name="l10n_ch_code">2040</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2040' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2040'].amount
|
|
result_name = inputs['WT_2040'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">Y</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2050" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Third Party Correction</field>
|
|
<field name="code">WT_2050</field>
|
|
<field name="l10n_ch_code">2050</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2050' in inputs or any(wt in inputs for wt in payslip._get_third_party_payment_wage_types())</field> <field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_2050' in inputs:
|
|
result = -inputs['WT_2050'].amount
|
|
result_name = inputs['WT_2050'].name
|
|
else:
|
|
result = 0
|
|
for wage_type in payslip._get_third_party_payment_wage_types():
|
|
if wage_type in inputs:
|
|
result -= inputs[wage_type].amount
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">Y</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2060" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Short-time work monthly</field>
|
|
<field name="code">WT_2060</field>
|
|
<field name="l10n_ch_code">2060</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2060' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_2060'].amount
|
|
result_name = inputs['WT_2060'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2065" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Short-time work hourly</field>
|
|
<field name="code">WT_2065</field>
|
|
<field name="l10n_ch_code">2065</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2065' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2065'].amount
|
|
result_name = inputs['WT_2065'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="False"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="False"/>
|
|
<field name="l10n_ch_wage_statement">Y</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2070" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">ALV compensation</field>
|
|
<field name="code">WT_2070</field>
|
|
<field name="l10n_ch_code">2070</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2070' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2070'].amount
|
|
result_name = inputs['WT_2070'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_2075" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Waiting day</field>
|
|
<field name="code">WT_2075</field>
|
|
<field name="l10n_ch_code">2075</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_2075' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_2075'].amount
|
|
result_name = inputs['WT_2075'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3000" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Child allowance</field>
|
|
<field name="code">WT_3000</field>
|
|
<field name="l10n_ch_code">3000</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3000' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3000'].amount
|
|
result_name = inputs['WT_3000'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">1</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_3001" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Backpayment Child allowance</field>
|
|
<field name="code">WT_3001</field>
|
|
<field name="l10n_ch_code">3001</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3001' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3001'].amount
|
|
result_name = inputs['WT_3001'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">1</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3004_fcf" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Child allowance paid by FCF (Geneva)</field>
|
|
<field name="code">WT_3004</field>
|
|
<field name="l10n_ch_code">3004</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3004' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3004'].amount
|
|
result_name = inputs['WT_3004'].name
|
|
</field>
|
|
<field name="l10n_ch_caf_statement">1</field>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3005_fcf" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Child allowance back payment paid by FCF (Geneva)</field>
|
|
<field name="code">WT_3005</field>
|
|
<field name="l10n_ch_code">3005</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3005' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3005'].amount
|
|
result_name = inputs['WT_3005'].name
|
|
</field>
|
|
<field name="l10n_ch_caf_statement">1</field>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3010" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Education allowance</field>
|
|
<field name="code">WT_3010</field>
|
|
<field name="l10n_ch_code">3010</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3010' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3010'].amount
|
|
result_name = inputs['WT_3010'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">1</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3011" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Backpayment Education allowance</field>
|
|
<field name="code">WT_3011</field>
|
|
<field name="l10n_ch_code">3011</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3011' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3011'].amount
|
|
result_name = inputs['WT_3011'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">1</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_3014_fcf" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Education allowance paid by FCF (Geneva)</field>
|
|
<field name="code">WT_3014</field>
|
|
<field name="l10n_ch_code">3014</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3014' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3014'].amount
|
|
result_name = inputs['WT_3014'].name
|
|
</field>
|
|
<field name="l10n_ch_caf_statement">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3015_fcf" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Backpayment Education allowance paid by FCF (Geneva)</field>
|
|
<field name="code">WT_3015</field>
|
|
<field name="l10n_ch_code">3015</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3015' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3015'].amount
|
|
result_name = inputs['WT_3015'].name
|
|
</field>
|
|
<field name="l10n_ch_caf_statement">1</field>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3030" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Family allowance</field>
|
|
<field name="code">WT_3030</field>
|
|
<field name="l10n_ch_code">3030</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3030' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3030'].amount
|
|
result_name = inputs['WT_3030'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">3</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3031" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Family allowance Backpayment</field>
|
|
<field name="code">WT_3031</field>
|
|
<field name="l10n_ch_code">3031</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3031' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3031'].amount
|
|
result_name = inputs['WT_3031'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">3</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3032" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Household allowance</field>
|
|
<field name="code">WT_3032</field>
|
|
<field name="l10n_ch_code">3032</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3032' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3032'].amount
|
|
result_name = inputs['WT_3032'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">3</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3033" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Backpayment Household allowance</field>
|
|
<field name="code">WT_3033</field>
|
|
<field name="l10n_ch_code">3033</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3033' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3033'].amount
|
|
result_name = inputs['WT_3033'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">3</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3034" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Childbirth allowance</field>
|
|
<field name="code">WT_3034</field>
|
|
<field name="l10n_ch_code">3034</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3034' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3034'].amount
|
|
result_name = inputs['WT_3034'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">2</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3038" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Childbirth allowance paid by FCF (Geneva)</field>
|
|
<field name="code">WT_3038</field>
|
|
<field name="l10n_ch_code">3038</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3038' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3038'].amount
|
|
result_name = inputs['WT_3038'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="False"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_caf_statement">2</field>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3035" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Wedding allowance</field>
|
|
<field name="code">WT_3035</field>
|
|
<field name="l10n_ch_code">3035</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3035' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3035'].amount
|
|
result_name = inputs['WT_3035'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_yearly_statement">Q</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3036" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Attendant care allowance</field>
|
|
<field name="code">WT_3036</field>
|
|
<field name="l10n_ch_code">3036</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3036' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3036'].amount
|
|
result_name = inputs['WT_3036'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_3037" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Backpayment Attendant care allowance</field>
|
|
<field name="code">WT_3037</field>
|
|
<field name="l10n_ch_code">3037</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_3037' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_3037'].amount
|
|
result_name = inputs['WT_3037'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="False"/>
|
|
<field name="l10n_ch_laac_included" eval="False"/>
|
|
<field name="l10n_ch_aanp_included" eval="False"/>
|
|
<field name="l10n_ch_ijm_included" eval="False"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="False"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">3</field>
|
|
<field name="l10n_ch_wage_statement">K</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_4900" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Net/Gross compensation</field>
|
|
<field name="code">WT_4900</field>
|
|
<field name="l10n_ch_code">4900</field>
|
|
<field name="sequence">20</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_4900' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['WT_4900'].amount
|
|
result_name = inputs['WT_4900'].name
|
|
</field>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_forecast" eval="False"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_lpp_retroactive" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_salary_certificate">7</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">T</field>
|
|
<field name="l10n_ch_13th_month_included" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_13_prov" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Thirteen Month Provision</field>
|
|
<field name="code">13THMONTHPROVISION</field>
|
|
<field name="l10n_ch_code">9005</field>
|
|
<field name="sequence">30</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = version.l10n_ch_thirteen_month</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_13th_month_included)
|
|
result_rate = version.l10n_ch_contractual_13th_month_rate
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="l10n_ch_5_cents_rounding" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_14_prov" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Fourteenth Month Provision</field>
|
|
<field name="code">14THMONTHPROVISION</field>
|
|
<field name="l10n_ch_code">9006</field>
|
|
<field name="sequence">30</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = version.l10n_ch_14th_month</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_13th_month_included)
|
|
result_rate = version.l10n_ch_contractual_13th_month_rate
|
|
</field>
|
|
<field name="l10n_ch_5_cents_rounding" eval="False"/>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_13_prov_hourly" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Thirteen Month Provision (Hourly)</field>
|
|
<field name="code">13THMONTHPROVISION_HOURLY</field>
|
|
<field name="l10n_ch_code" eval="False"/>
|
|
<field name="sequence">30</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = version.l10n_ch_thirteen_month</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_13th_month_hourly_included)
|
|
result_rate = version.l10n_ch_contractual_13th_month_rate
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="l10n_ch_5_cents_rounding" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_14_prov_hourly" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Fourteenth Month Provision (Hourly)</field>
|
|
<field name="code">14THMONTHPROVISION_HOURLY</field>
|
|
<field name="l10n_ch_code" eval="False"/>
|
|
<field name="sequence">30</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = version.l10n_ch_14th_month</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_13th_month_hourly_included)
|
|
result_rate = version.l10n_ch_contractual_13th_month_rate
|
|
</field>
|
|
<field name="l10n_ch_5_cents_rounding" eval="False"/>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1200" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Thirteenth Month</field>
|
|
<field name="code">13THMONTH</field>
|
|
<field name="l10n_ch_code">1200</field>
|
|
<field name="sequence">30</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = (version.l10n_ch_thirteen_month and payslip.l10n_ch_pay_13th_month) or 'WT_1200' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1200' in inputs:
|
|
result = inputs["WT_1200"].amount
|
|
else:
|
|
line_values = previous_payslips._get_line_values(['13THMONTHPROVISION', '13THMONTH'], compute_sum=True)
|
|
cumulated_13th_month_provision = line_values['13THMONTHPROVISION']['sum']['total'] + result_rules['13THMONTHPROVISION']['total']
|
|
paid_out_13th_month = line_values['13THMONTH']['sum']['total']
|
|
|
|
result = max(0, cumulated_13th_month_provision - paid_out_13th_month)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">O</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1205" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Fourteenth Month</field>
|
|
<field name="code">14THMONTH</field>
|
|
<field name="l10n_ch_code">1205</field>
|
|
<field name="sequence">30</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = (version.l10n_ch_14th_month and payslip.l10n_ch_pay_13th_month) or 'WT_1205' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1205' in inputs:
|
|
result = inputs["WT_1205"].amount
|
|
else:
|
|
line_values = previous_payslips._get_line_values(['14THMONTHPROVISION', '14THMONTH'], compute_sum=True)
|
|
cumulated_14th_month_provision = line_values['14THMONTHPROVISION']['sum']['total'] + result_rules['14THMONTHPROVISION']['total']
|
|
paid_out_14th_month = line_values['14THMONTH']['sum']['total']
|
|
|
|
result = max(0, cumulated_14th_month_provision - paid_out_14th_month)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">O</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1207_hourly" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Thirteen Month (Hourly)</field>
|
|
<field name="code">13THMONTH_HOURLY</field>
|
|
<field name="l10n_ch_code">1207</field>
|
|
<field name="sequence">30</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = result_rules['13THMONTHPROVISION_HOURLY']['total'] > 0 or ('WT_1207' in inputs)</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1207' in inputs:
|
|
result = inputs["WT_1207"].amount
|
|
else:
|
|
result = result_rules['13THMONTHPROVISION_HOURLY']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">O</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_1208_hourly" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Fourteenth Month (Hourly)</field>
|
|
<field name="code">14THMONTH_HOURLY</field>
|
|
<field name="l10n_ch_code">1208</field>
|
|
<field name="sequence">30</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = result_rules['14THMONTHPROVISION_HOURLY']['total'] > 0 or ('WT_1208' in inputs)</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if 'WT_1208' in inputs:
|
|
result = inputs["WT_1208"].amount
|
|
else:
|
|
result = result_rules['14THMONTHPROVISION_HOURLY']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
<field name="l10n_ch_gross_included" eval="True"/>
|
|
<field name="l10n_ch_aanp_included" eval="True"/>
|
|
<field name="l10n_ch_laac_included" eval="True"/>
|
|
<field name="l10n_ch_ac_included" eval="True"/>
|
|
<field name="l10n_ch_ijm_included" eval="True"/>
|
|
<field name="l10n_ch_lpp_factor" eval="0"/>
|
|
<field name="l10n_ch_salary_certificate">1</field>
|
|
<field name="l10n_ch_is_periodic" eval="True"/>
|
|
<field name="l10n_ch_source_tax_included" eval="True"/>
|
|
<field name="l10n_ch_yearly_statement">O</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5000" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.GROSS"/>
|
|
<field name="name">Gross Salary</field>
|
|
<field name="code">GROSS_SALARY</field>
|
|
<field name="l10n_ch_code">5000</field>
|
|
<field name="sequence">100</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_gross_included)
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<!-- Deductions -->
|
|
|
|
<record id="l10n_ch_elm_rule_9010" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AVS Base</field>
|
|
<field name="code">AVSBASE</field>
|
|
<field name="l10n_ch_code">9010</field>
|
|
<field name="sequence">105</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_ac_included)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_avs_franchise" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AVS Franchise</field>
|
|
<field name="code">AVSFRANCHISE</field>
|
|
<field name="sequence">110</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_avs_status == "retired"
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = payslip.l10n_ch_social_insurance_id._get_retirement_rente(payslip.date_from)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_avs_exoneration" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AVS Exoneration</field>
|
|
<field name="code">AVSEXO</field>
|
|
<field name="sequence">115</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_avs_status == "retired"
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
retired_slips = previous_payslips.filtered(lambda p: p.l10n_ch_avs_status == "retired")
|
|
current_franchise = result_rules['AVSFRANCHISE']['total']
|
|
cum_avs_salary = retired_slips._get_line_values(['AVSSALARY'], compute_sum=True)['AVSSALARY']['sum']['total'] + result_rules['AVSBASE']['total']
|
|
cum_franchise = retired_slips._get_line_values(['AVSFRANCHISE'], compute_sum=True)['AVSFRANCHISE']['sum']['total'] + result_rules['AVSFRANCHISE']['total']
|
|
cum_exon = retired_slips._get_line_values(['AVSEXO'], compute_sum=True)['AVSEXO']['sum']['total']
|
|
available_franchise = cum_franchise - cum_exon
|
|
|
|
if 0 > cum_avs_salary + cum_exon:
|
|
result = -cum_exon
|
|
else:
|
|
result = min(cum_avs_salary, available_franchise)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_9011" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AVS Salary</field>
|
|
<field name="code">AVSSALARY</field>
|
|
<field name="l10n_ch_code">9011</field>
|
|
<field name="sequence">120</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_avs_status not in ["exempted", "youth"]</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSBASE']['total'] - result_rules['AVSEXO']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_9012" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AVS OPEN</field>
|
|
<field name="code">AVSOPEN</field>
|
|
<field name="l10n_ch_code">9012</field>
|
|
<field name="sequence">125</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_avs_status
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSBASE']['total'] - result_rules['AVSSALARY']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5010" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">AHV/IV/EO contribution</field>
|
|
<field name="code">AVS</field>
|
|
<field name="l10n_ch_code">5010</field>
|
|
<field name="sequence">130</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
rate_date = payslip.date_from
|
|
if payslip.l10n_ch_after_departure_payment:
|
|
previous_non_departure_slips = previous_payslips.filtered(lambda p: not p.l10n_ch_after_departure_payment)
|
|
if previous_non_departure_slips:
|
|
rate_date = previous_non_departure_slips[-1].date_from
|
|
result_rate = - payslip.l10n_ch_social_insurance_id._get_avs_rates(rate_date)[0]
|
|
</field>
|
|
<field name="note">Old Age & Survivor's Insurance, Disability Insurance & Loss of Earnings</field>
|
|
<field name="l10n_ch_salary_certificate">9</field>
|
|
<field name="l10n_ch_wage_statement">L</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5400" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">General AVS Deduction in %</field>
|
|
<field name="code">AVS.GENERIC</field>
|
|
<field name="l10n_ch_code">5400</field>
|
|
<field name="sequence">131</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC'].name
|
|
result_rate = -inputs['AVS.GENERIC'].amount
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7400" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">General AVS Deduction in % Employer</field>
|
|
<field name="code">AVS.GENERIC.COMP</field>
|
|
<field name="l10n_ch_code">7400</field>
|
|
<field name="sequence">132</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.COMP' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.COMP'].name
|
|
result_rate = inputs['AVS.GENERIC.COMP'].amount
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5401" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">General AVS Deduction in % (2)</field>
|
|
<field name="code">AVS.GENERIC.2</field>
|
|
<field name="l10n_ch_code">5401</field>
|
|
<field name="sequence">131</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.2' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.2'].name
|
|
result_rate = -inputs['AVS.GENERIC.2'].amount
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7401" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">General AVS Deduction in % Employer (2)</field>
|
|
<field name="code">AVS.GENERIC.COMP.2</field>
|
|
<field name="l10n_ch_code">7401</field>
|
|
<field name="sequence">132</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.COMP.2' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.COMP.2'].name
|
|
result_rate = inputs['AVS.GENERIC.COMP.2'].amount
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5402" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">General AVS Deduction in % (3)</field>
|
|
<field name="code">AVS.GENERIC.3</field>
|
|
<field name="l10n_ch_code">5402</field>
|
|
<field name="sequence">131</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.3' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.3'].name
|
|
result_rate = -inputs['AVS.GENERIC.3'].amount
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7402" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">General AVS Deduction in % Employer (3)</field>
|
|
<field name="code">AVS.GENERIC.COMP.3</field>
|
|
<field name="l10n_ch_code">7402</field>
|
|
<field name="sequence">132</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.COMP.3' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.COMP.3'].name
|
|
result_rate = inputs['AVS.GENERIC.COMP.3'].amount
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5403" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">General AVS Deduction in % (4)</field>
|
|
<field name="code">AVS.GENERIC.4</field>
|
|
<field name="l10n_ch_code">5403</field>
|
|
<field name="sequence">131</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.4' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.4'].name
|
|
result_rate = -inputs['AVS.GENERIC.4'].amount
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7403" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">General AVS Deduction in % Employer (4)</field>
|
|
<field name="code">AVS.GENERIC.COMP.4</field>
|
|
<field name="l10n_ch_code">7403</field>
|
|
<field name="sequence">132</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.COMP.4' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.COMP.4'].name
|
|
result_rate = inputs['AVS.GENERIC.COMP.4'].amount
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5404" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">General AVS Deduction in % (5)</field>
|
|
<field name="code">AVS.GENERIC.5</field>
|
|
<field name="l10n_ch_code">5404</field>
|
|
<field name="sequence">131</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.5' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.5'].name
|
|
result_rate = -inputs['AVS.GENERIC.5'].amount
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7404" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">General AVS Deduction in % Employer (5)</field>
|
|
<field name="code">AVS.GENERIC.COMP.5</field>
|
|
<field name="l10n_ch_code">7404</field>
|
|
<field name="sequence">132</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.COMP.5' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.COMP.5'].name
|
|
result_rate = inputs['AVS.GENERIC.COMP.5'].amount
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5405" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">General AVS Deduction in % (6)</field>
|
|
<field name="code">AVS.GENERIC.6</field>
|
|
<field name="l10n_ch_code">5405</field>
|
|
<field name="sequence">131</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.6' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.6'].name
|
|
result_rate = -inputs['AVS.GENERIC.6'].amount
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7405" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">General AVS Deduction in % Employer (6)</field>
|
|
<field name="code">AVS.GENERIC.COMP.6</field>
|
|
<field name="l10n_ch_code">7405</field>
|
|
<field name="sequence">132</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.COMP.6' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.COMP.6'].name
|
|
result_rate = inputs['AVS.GENERIC.COMP.6'].amount
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5406" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">General AVS Deduction in % (7)</field>
|
|
<field name="code">AVS.GENERIC.7</field>
|
|
<field name="l10n_ch_code">5406</field>
|
|
<field name="sequence">131</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.7' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.7'].name
|
|
result_rate = -inputs['AVS.GENERIC.7'].amount
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7406" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">General AVS Deduction in % Employer (7)</field>
|
|
<field name="code">AVS.GENERIC.COMP.7</field>
|
|
<field name="l10n_ch_code">7406</field>
|
|
<field name="sequence">132</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.COMP.7' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.COMP.7'].name
|
|
result_rate = inputs['AVS.GENERIC.COMP.7'].amount
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5407" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">General AVS Deduction in % (8)</field>
|
|
<field name="code">AVS.GENERIC.8</field>
|
|
<field name="l10n_ch_code">5407</field>
|
|
<field name="sequence">131</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.8' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.8'].name
|
|
result_rate = -inputs['AVS.GENERIC.8'].amount
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7407" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">General AVS Deduction in % Employer (8)</field>
|
|
<field name="code">AVS.GENERIC.COMP.8</field>
|
|
<field name="l10n_ch_code">7407</field>
|
|
<field name="sequence">132</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.COMP.8' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.COMP.8'].name
|
|
result_rate = inputs['AVS.GENERIC.COMP.8'].amount
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5408" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">General AVS Deduction in % (9)</field>
|
|
<field name="code">AVS.GENERIC.9</field>
|
|
<field name="l10n_ch_code">5408</field>
|
|
<field name="sequence">131</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.9' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.9'].name
|
|
result_rate = -inputs['AVS.GENERIC.9'].amount
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7408" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">General AVS Deduction in % Employer (9)</field>
|
|
<field name="code">AVS.GENERIC.COMP.9</field>
|
|
<field name="l10n_ch_code">7408</field>
|
|
<field name="sequence">132</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and 'AVS.GENERIC.COMP.9' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_name = inputs['AVS.GENERIC.COMP.9'].name
|
|
result_rate = inputs['AVS.GENERIC.COMP.9'].amount
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7010" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">AHV/IV/EO Employer contribution</field>
|
|
<field name="code">AVS.COMP</field>
|
|
<field name="l10n_ch_code">7010</field>
|
|
<field name="sequence">135</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
rate_date = payslip.date_from
|
|
if payslip.l10n_ch_after_departure_payment:
|
|
previous_non_departure_slips = previous_payslips.filtered(lambda p: not p.l10n_ch_after_departure_payment)
|
|
if previous_non_departure_slips:
|
|
rate_date = previous_non_departure_slips[-1].date_from
|
|
result_rate = payslip.l10n_ch_social_insurance_id._get_avs_rates(rate_date)[1]
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7011" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">AHV/IV/EO Administrative Costs</field>
|
|
<field name="code">AVS.FEES</field>
|
|
<field name="l10n_ch_code">7011</field>
|
|
<field name="sequence">140</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -result_rules['AVS']['total'] + result_rules['AVS.COMP']['total']
|
|
rate_date = payslip.date_from
|
|
if payslip.l10n_ch_after_departure_payment:
|
|
previous_non_departure_slips = previous_payslips.filtered(lambda p: not p.l10n_ch_after_departure_payment)
|
|
if previous_non_departure_slips:
|
|
rate_date = previous_non_departure_slips[-1].date_from
|
|
result_rate = payslip.l10n_ch_social_insurance_id._get_avs_rates(rate_date)[2]
|
|
</field>
|
|
<field name="note">Old Age & Survivor's Insurance, Disability Insurance & Loss of Earnings</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_9020" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AC Base</field>
|
|
<field name="code">ACBASE</field>
|
|
<field name="l10n_ch_code">9020</field>
|
|
<field name="sequence">145</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSBASE']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ac_max" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AC Salary Threshold</field>
|
|
<field name="code">ACSALARYMAX</field>
|
|
<field name="sequence">150</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and not payslip.l10n_ch_avs_status</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = payslip.l10n_ch_social_insurance_id._get_ac_threshold(payslip.date_from) / 12
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_rule_9021" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AC Salary</field>
|
|
<field name="code">ACSALARY</field>
|
|
<field name="l10n_ch_code">9021</field>
|
|
<field name="sequence">155</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and not payslip.l10n_ch_avs_status</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
current_solution = payslip.l10n_ch_social_insurance_id
|
|
current_solution_slips = previous_payslips.filtered(lambda p : p.l10n_ch_social_insurance_id.id == current_solution.id)
|
|
|
|
ac_base = current_solution_slips._get_line_values(['ACBASE'], compute_sum=True)['ACBASE']['sum']['total'] + result_rules['ACBASE']['total']
|
|
ac_threshold = current_solution_slips._get_line_values(['ACSALARYMAX'], compute_sum=True)['ACSALARYMAX']['sum']['total'] + result_rules['ACSALARYMAX']['total']
|
|
previous_ac_salary = current_solution_slips._get_line_values(['ACSALARY'], compute_sum=True)['ACSALARY']['sum']['total']
|
|
result = min(ac_base, ac_threshold) - previous_ac_salary
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
|
|
|
|
<record id="l10n_ch_elm_rule_5020" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">ALV Contributions</field>
|
|
<field name="code">AC</field>
|
|
<field name="l10n_ch_code">5020</field>
|
|
<field name="sequence">165</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and not payslip.l10n_ch_avs_status</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['ACSALARY']['total']
|
|
rate_date = payslip.date_from
|
|
if payslip.l10n_ch_after_departure_payment:
|
|
previous_non_departure_slips = previous_payslips.filtered(lambda p: not p.l10n_ch_after_departure_payment)
|
|
if previous_non_departure_slips:
|
|
rate_date = previous_non_departure_slips[-1].date_from
|
|
result_rate = -payslip.l10n_ch_social_insurance_id._get_ac_rates(rate_date)[0]
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">9</field>
|
|
<field name="l10n_ch_wage_statement">L</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5020_comp" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">ALV Employer Contributions</field>
|
|
<field name="code">AC.COMP</field>
|
|
<field name="sequence">170</field>
|
|
<field name="l10n_ch_code">7020</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_social_insurance_id and not payslip.l10n_ch_avs_status</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['ACSALARY']['total']
|
|
rate_date = payslip.date_from
|
|
if payslip.l10n_ch_after_departure_payment:
|
|
previous_non_departure_slips = previous_payslips.filtered(lambda p: not p.l10n_ch_after_departure_payment)
|
|
if previous_non_departure_slips:
|
|
rate_date = previous_non_departure_slips[-1].date_from
|
|
|
|
result_rate = payslip.l10n_ch_social_insurance_id._get_ac_rates(rate_date)[1]
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="note">
|
|
Unemployment Insurance
|
|
Source: https://www.cvcicaisseavs.ch/en/employer/unemployment-insurance-ac.html
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_acc_salary_max" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">ACC Salary Maximum</field>
|
|
<field name="code">ACCSALARYMAX</field>
|
|
<field name="l10n_ch_code">9022</field>
|
|
<field name="sequence">171</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if payslip.l10n_ch_avs_status or payslip.l10n_ch_after_departure_payment:
|
|
result = 0
|
|
else:
|
|
result = (payslip.l10n_ch_social_insurance_id._get_acc_threshold(payslip.date_from) - payslip.l10n_ch_social_insurance_id._get_ac_threshold(payslip.date_from)) / 12
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_acc_salary" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">ACC Salary</field>
|
|
<field name="code">ACCSALARY</field>
|
|
<field name="sequence">172</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = not payslip.l10n_ch_avs_status</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
current_solution = payslip.l10n_ch_social_insurance_id
|
|
current_solution_slips = previous_payslips.filtered(lambda p : p.l10n_ch_social_insurance_id.id == current_solution.id)
|
|
|
|
|
|
ac_base = current_solution_slips._get_line_values(['ACBASE'], compute_sum=True)['ACBASE']['sum']['total'] + result_rules['ACBASE']['total']
|
|
max_cum_acc_possible = current_solution_slips._get_line_values(['ACCSALARYMAX'], compute_sum=True)['ACCSALARYMAX']['sum']['total'] + result_rules['ACCSALARYMAX']['total']
|
|
max_cum_ac_possible = current_solution_slips._get_line_values(['ACSALARYMAX'], compute_sum=True)['ACSALARYMAX']['sum']['total'] + result_rules['ACSALARYMAX']['total']
|
|
|
|
acc_salary_cum = current_solution_slips._get_line_values(['ACCSALARY'], compute_sum=True)['ACCSALARY']['sum']['total']
|
|
ac_salary_cum = current_solution_slips._get_line_values(['ACSALARY'], compute_sum=True)['ACSALARY']['sum']['total'] + result_rules['ACSALARY']['total']
|
|
trimmed_base = max(0, ac_base - max_cum_ac_possible)
|
|
result = max(min(trimmed_base, max_cum_acc_possible), 0) - acc_salary_cum
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ac_open" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">AC OPEN</field>
|
|
<field name="code">ACOPEN</field>
|
|
<field name="sequence">173</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['ACBASE']['total'] - result_rules['ACSALARY']['total'] - result_rules['ACCSALARY']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_compl_ac" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">ACC</field>
|
|
<field name="code">ACC</field>
|
|
<field name="l10n_ch_code">5030</field>
|
|
<field name="sequence">174</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = not payslip.l10n_ch_avs_status and payslip.l10n_ch_social_insurance_id and payslip.l10n_ch_social_insurance_id._get_additional_ac_rates(payslip.date_from)[0]</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['ACCSALARY']['total']
|
|
rate_date = payslip.date_from
|
|
if payslip.l10n_ch_after_departure_payment:
|
|
previous_non_departure_slips = previous_payslips.filtered(lambda p: not p.l10n_ch_after_departure_payment)
|
|
if previous_non_departure_slips:
|
|
rate_date = previous_non_departure_slips[-1].date_from
|
|
result_rate = -payslip.l10n_ch_social_insurance_id._get_additional_ac_rates(rate_date)[0]
|
|
</field>
|
|
<field name="note">Additional Unemployment Insurance</field>
|
|
<field name="l10n_ch_wage_statement">L</field>
|
|
<field name="l10n_ch_salary_certificate">9</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_compl_ac_comp" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">ACC Employer Contributions</field>
|
|
<field name="code">ACC.COMP</field>
|
|
<field name="sequence">175</field>
|
|
<field name="l10n_ch_code">7030</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = not payslip.l10n_ch_avs_status and payslip.l10n_ch_social_insurance_id and payslip.l10n_ch_social_insurance_id._get_additional_ac_rates(payslip.date_from)[1]</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['ACCSALARY']['total']
|
|
rate_date = payslip.date_from
|
|
if payslip.l10n_ch_after_departure_payment:
|
|
previous_non_departure_slips = previous_payslips.filtered(lambda p: not p.l10n_ch_after_departure_payment)
|
|
if previous_non_departure_slips:
|
|
rate_date = previous_non_departure_slips[-1].date_from
|
|
|
|
result_rate = payslip.l10n_ch_social_insurance_id._get_additional_ac_rates(rate_date)[1]
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="note">Additional Unemployment Insurance</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_rule_9030" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAA Base</field>
|
|
<field name="code">LAABASE</field>
|
|
<field name="l10n_ch_code">9030</field>
|
|
<field name="sequence">176</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_aanp_included)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laa_max" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAA Salary Maximum</field>
|
|
<field name="code">LAASALARYMAX</field>
|
|
<field name="sequence">180</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_laa_group and not payslip.l10n_ch_after_departure_payment</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
laa_t, laa_aap, laa_aanp, laa_comp = payslip.l10n_ch_laa_group.get_rates(payslip.date_from)
|
|
if payslip.laa_solution_number == '0':
|
|
result = 0
|
|
else:
|
|
result = laa_t / 12
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_9031" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAA Salary</field>
|
|
<field name="code">LAASALARY</field>
|
|
<field name="l10n_ch_code">9031</field>
|
|
<field name="sequence">185</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_laa_group</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
current_solution = payslip.l10n_ch_laa_group
|
|
if payslip.laa_solution_number in ['1', '2']:
|
|
current_solution_slips = previous_payslips.filtered(lambda p : p.laa_solution_number in ['1', '2'] and p.l10n_ch_laa_group.id == current_solution.id)
|
|
else:
|
|
current_solution_slips = previous_payslips.filtered(lambda p : p.l10n_ch_laa_group.id == current_solution.id and p.laa_solution_number == payslip.laa_solution_number)
|
|
previous_laa_salary = current_solution_slips._get_line_values(['LAASALARY'], compute_sum=True)['LAASALARY']['sum']['total']
|
|
current_laa_base = current_solution_slips._get_line_values(['LAABASE'], compute_sum=True)['LAABASE']['sum']['total'] + result_rules['LAABASE']['total']
|
|
|
|
laa_threshold = current_solution_slips._get_line_values(['LAASALARYMAX'], compute_sum=True)['LAASALARYMAX']['sum']['total'] + result_rules['LAASALARYMAX']['total']
|
|
|
|
result = min(current_laa_base, laa_threshold) - previous_laa_salary
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_aap_comp" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">Occupational Accident Insurance Employer Contributions</field>
|
|
<field name="code">AAP.COMP</field>
|
|
<field name="sequence">190</field>
|
|
<field name="l10n_ch_code">9032</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_laa_group</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
solution_number = payslip.laa_solution_number
|
|
laa_t, laa_aap, laa_aanp, laa_comp = payslip.l10n_ch_laa_group.get_rates(payslip.date_from)
|
|
result_rate = 0
|
|
if solution_number in ["1", "2", "3"]:
|
|
result_rate = laa_aap
|
|
result = result_rules['LAASALARY']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5040" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Non-Occupational Accident Insurance Contribution</field>
|
|
<field name="code">AANP</field>
|
|
<field name="l10n_ch_code">5040</field>
|
|
<field name="sequence">195</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_laa_group and payslip.laa_solution_number == "1"</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
laa_t, laa_aap, laa_aanp, laa_comp = payslip.l10n_ch_laa_group.get_rates(payslip.date_from)
|
|
result_rate = -laa_aanp * (100 - laa_comp) / 100
|
|
result = result_rules['LAASALARY']['total']
|
|
</field>
|
|
<field name="note">Accident Insurance (Non Occupational Rates)</field>
|
|
<field name="l10n_ch_wage_statement">L</field>
|
|
<field name="l10n_ch_salary_certificate">9</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5040_comp" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">Non-Occupational Accident Insurance Employer Contribution</field>
|
|
<field name="code">AANP.COMP</field>
|
|
<field name="sequence">200</field>
|
|
<field name="l10n_ch_code">7040</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_laa_group and payslip.laa_solution_number in ["1", "2"]</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
laa_t, laa_aap, laa_aanp, laa_comp = payslip.l10n_ch_laa_group.get_rates(payslip.date_from)
|
|
result_rate = 0
|
|
if solution_number == "1":
|
|
result_rate = laa_aanp * (laa_comp / 100)
|
|
elif solution_number == "2":
|
|
result_rate = laa_aanp
|
|
result = result_rules['LAASALARY']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_base" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAAC Base</field>
|
|
<field name="code">LAACBASE</field>
|
|
<field name="l10n_ch_code">9040</field>
|
|
<field name="sequence">210</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_laac_included)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_salary_max_1" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAAC Salary Maximum Main Insurance</field>
|
|
<field name="code">LAACSALARYMAX1</field>
|
|
<field name="sequence">215</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_additional_accident_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if not payslip.l10n_ch_after_departure_payment:
|
|
current_solution = payslip.l10n_ch_additional_accident_insurance_line_ids[0]
|
|
laac_wages = current_solution._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result = laac_wages[1] / 12
|
|
else:
|
|
result = 0
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_salary_max_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAAC Salary Maximum Second Insurance</field>
|
|
<field name="code">LAACSALARYMAX2</field>
|
|
<field name="sequence">220</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_additional_accident_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if not payslip.l10n_ch_after_departure_payment:
|
|
current_solution = payslip.l10n_ch_additional_accident_insurance_line_ids[1]
|
|
laac_wages = current_solution._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result = laac_wages[1] / 12
|
|
else:
|
|
result = 0
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_salary_min_1" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAAC Salary Minimum Main Insurance</field>
|
|
<field name="code">LAACSALARYMIN1</field>
|
|
<field name="sequence">225</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_additional_accident_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if not payslip.l10n_ch_after_departure_payment:
|
|
current_solution = payslip.l10n_ch_additional_accident_insurance_line_ids[0]
|
|
laac_wages = current_solution._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result = laac_wages[0] / 12
|
|
else:
|
|
result = 0
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_salary_min_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAAC Salary Minimum Second Insurance</field>
|
|
<field name="code">LAACSALARYMIN2</field>
|
|
<field name="sequence">230</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_additional_accident_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if not payslip.l10n_ch_after_departure_payment:
|
|
current_solution = payslip.l10n_ch_additional_accident_insurance_line_ids[1]
|
|
laac_wages = current_solution._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result = laac_wages[0] / 12
|
|
else:
|
|
result = 0
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_salary_1" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAAC Salary Main Insurance</field>
|
|
<field name="code">LAACSALARY1</field>
|
|
<field name="l10n_ch_code">9041</field>
|
|
<field name="sequence">235</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_additional_accident_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
current_solution = payslip.l10n_ch_additional_accident_insurance_line_ids[0]
|
|
current_solution_slips_position_1 = previous_payslips.filtered(lambda p : p.l10n_ch_additional_accident_insurance_line_ids and p.l10n_ch_additional_accident_insurance_line_ids[0].id == current_solution.id)
|
|
current_solution_slips_position_2 = previous_payslips.filtered(lambda p : len(p.l10n_ch_additional_accident_insurance_line_ids) > 1 and p.l10n_ch_additional_accident_insurance_line_ids[1].id == current_solution.id)
|
|
|
|
previous_laac_1_salary_1 = current_solution_slips_position_1._get_line_values(['LAACSALARY1'], compute_sum=True)['LAACSALARY1']['sum']['total']
|
|
previous_laac_1_salary_2 = current_solution_slips_position_2._get_line_values(['LAACSALARY2'], compute_sum=True)['LAACSALARY2']['sum']['total']
|
|
|
|
current_laac_1_base_1 = current_solution_slips_position_1._get_line_values(['LAACBASE'], compute_sum=True)['LAACBASE']['sum']['total']
|
|
current_laac_2_base_2 = current_solution_slips_position_2._get_line_values(['LAACBASE'], compute_sum=True)['LAACBASE']['sum']['total']
|
|
|
|
wage_from_cum1 = current_solution_slips_position_1._get_line_values(['LAACSALARYMIN1'], compute_sum=True)['LAACSALARYMIN1']['sum']['total']
|
|
wage_from_cum2 = current_solution_slips_position_2._get_line_values(['LAACSALARYMIN2'], compute_sum=True)['LAACSALARYMIN2']['sum']['total']
|
|
|
|
laac_1_threshold_1 = current_solution_slips_position_1._get_line_values(['LAACSALARYMAX1'], compute_sum=True)['LAACSALARYMAX1']['sum']['total']
|
|
laac_1_threshold_2 = current_solution_slips_position_2._get_line_values(['LAACSALARYMAX2'], compute_sum=True)['LAACSALARYMAX2']['sum']['total']
|
|
|
|
previous_laac_1_salary = previous_laac_1_salary_1 + previous_laac_1_salary_2
|
|
current_laac_1_base = current_laac_1_base_1 + current_laac_2_base_2 + result_rules['LAACBASE']['total']
|
|
wage_from_cum = wage_from_cum1 + wage_from_cum2 + result_rules['LAACSALARYMIN1']['total']
|
|
laac_1_threshold = laac_1_threshold_1 + laac_1_threshold_2 + result_rules['LAACSALARYMAX1']['total']
|
|
|
|
if wage_from_cum > 0:
|
|
trimmed_base = max(0, min(current_laac_1_base - wage_from_cum, laac_1_threshold - wage_from_cum))
|
|
elif wage_from_cum == 0 and laac_1_threshold > 0:
|
|
trimmed_base = min(current_laac_1_base - wage_from_cum, laac_1_threshold - wage_from_cum)
|
|
else:
|
|
trimmed_base = 0
|
|
result = trimmed_base - previous_laac_1_salary
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_salary_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">LAAC Salary Second Insurance</field>
|
|
<field name="code">LAACSALARY2</field>
|
|
<field name="l10n_ch_code">9043</field>
|
|
<field name="sequence">240</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_additional_accident_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
current_solution = payslip.l10n_ch_additional_accident_insurance_line_ids[1]
|
|
current_solution_slips_position_1 = previous_payslips.filtered(lambda p : p.l10n_ch_additional_accident_insurance_line_ids and p.l10n_ch_additional_accident_insurance_line_ids[0].id == current_solution.id)
|
|
current_solution_slips_position_2 = previous_payslips.filtered(lambda p : len(p.l10n_ch_additional_accident_insurance_line_ids) > 1 and p.l10n_ch_additional_accident_insurance_line_ids[1].id == current_solution.id)
|
|
|
|
previous_laac_1_salary_1 = current_solution_slips_position_1._get_line_values(['LAACSALARY1'], compute_sum=True)['LAACSALARY1']['sum']['total']
|
|
previous_laac_1_salary_2 = current_solution_slips_position_2._get_line_values(['LAACSALARY2'], compute_sum=True)['LAACSALARY2']['sum']['total']
|
|
|
|
current_laac_1_base_1 = current_solution_slips_position_1._get_line_values(['LAACBASE'], compute_sum=True)['LAACBASE']['sum']['total']
|
|
current_laac_2_base_2 = current_solution_slips_position_2._get_line_values(['LAACBASE'], compute_sum=True)['LAACBASE']['sum']['total']
|
|
|
|
wage_from_cum1 = current_solution_slips_position_1._get_line_values(['LAACSALARYMIN1'], compute_sum=True)['LAACSALARYMIN1']['sum']['total']
|
|
wage_from_cum2 = current_solution_slips_position_2._get_line_values(['LAACSALARYMIN2'], compute_sum=True)['LAACSALARYMIN2']['sum']['total']
|
|
|
|
laac_1_threshold_1 = current_solution_slips_position_1._get_line_values(['LAACSALARYMAX1'], compute_sum=True)['LAACSALARYMAX1']['sum']['total']
|
|
laac_1_threshold_2 = current_solution_slips_position_2._get_line_values(['LAACSALARYMAX2'], compute_sum=True)['LAACSALARYMAX2']['sum']['total']
|
|
|
|
previous_laac_1_salary = previous_laac_1_salary_1 + previous_laac_1_salary_2
|
|
current_laac_1_base = current_laac_1_base_1 + current_laac_2_base_2 + result_rules['LAACBASE']['total']
|
|
wage_from_cum = wage_from_cum1 + wage_from_cum2 + result_rules['LAACSALARYMIN2']['total']
|
|
laac_1_threshold = laac_1_threshold_1 + laac_1_threshold_2 + result_rules['LAACSALARYMAX2']['total']
|
|
|
|
if wage_from_cum > 0:
|
|
trimmed_base = max(0, min(current_laac_1_base - wage_from_cum, laac_1_threshold - wage_from_cum))
|
|
elif wage_from_cum == 0 and laac_1_threshold > 0:
|
|
trimmed_base = min(current_laac_1_base - wage_from_cum, laac_1_threshold - wage_from_cum)
|
|
else:
|
|
trimmed_base = 0
|
|
result = trimmed_base - previous_laac_1_salary
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac1" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Additional Accident Insurance 1</field>
|
|
<field name="code">LAAC1</field>
|
|
<field name="l10n_ch_code">5041</field>
|
|
<field name="sequence">245</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_additional_accident_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['LAACSALARY1']['total']
|
|
wage_from, wage_to, rate, employer_rate = payslip.l10n_ch_additional_accident_insurance_line_ids[0]._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result_rate = -rate * (100 - employer_rate)/100
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Additional Accident Insurance 2</field>
|
|
<field name="code">LAAC2</field>
|
|
<field name="l10n_ch_code">5043</field>
|
|
<field name="sequence">250</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_additional_accident_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['LAACSALARY2']['total']
|
|
wage_from, wage_to, rate, employer_rate = payslip.l10n_ch_additional_accident_insurance_line_ids[1]._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result_rate = -rate * (100 - employer_rate) / 100
|
|
</field>
|
|
<field name="note">Second Additional Accident Insurance (LAAC)</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_comp_1" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">Additional Accident Insurance 1 Employer Contributions</field>
|
|
<field name="code">LAAC1.COMP</field>
|
|
<field name="sequence">255</field>
|
|
<field name="l10n_ch_code">7041</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_additional_accident_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['LAACSALARY1']['total']
|
|
wage_from, wage_to, rate, employer_rate = payslip.l10n_ch_additional_accident_insurance_line_ids[0]._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result_rate = rate * (employer_rate) / 100
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="note">Additional Accident Insurance (LAAC)</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_laac_comp_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">Additional Accident Insurance 2 Employer Contributions</field>
|
|
<field name="code">LAAC2.COMP</field>
|
|
<field name="sequence">260</field>
|
|
<field name="l10n_ch_code">7043</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_additional_accident_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['LAACSALARY2']['total']
|
|
wage_from, wage_to, rate, employer_rate = payslip.l10n_ch_additional_accident_insurance_line_ids[1]._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result_rate = rate * (employer_rate) / 100
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="note">Additional Accident Insurance (LAAC)</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_base" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">IJM Base</field>
|
|
<field name="code">IJMBASE</field>
|
|
<field name="l10n_ch_code">9050</field>
|
|
<field name="sequence">270</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_ijm_included)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_salary_max_1" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">IJM Salary Maximum Main Insurance</field>
|
|
<field name="code">IJMSALARYMAX1</field>
|
|
<field name="sequence">275</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_sickness_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if not payslip.l10n_ch_after_departure_payment:
|
|
current_solution = payslip.l10n_ch_sickness_insurance_line_ids[0]
|
|
ijm_wages = current_solution._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result = ijm_wages[1] / 12
|
|
else:
|
|
result = 0
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_salary_max_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">IJM Salary Maximum Second Insurance</field>
|
|
<field name="code">IJMSALARYMAX2</field>
|
|
<field name="sequence">280</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_sickness_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if not payslip.l10n_ch_after_departure_payment:
|
|
current_solution = payslip.l10n_ch_sickness_insurance_line_ids[1]
|
|
ijm_wages = current_solution._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result = ijm_wages[1] / 12
|
|
else:
|
|
result = 0
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_salary_min_1" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">IJM Salary Minimum Main Insurance</field>
|
|
<field name="code">IJMSALARYMIN1</field>
|
|
<field name="sequence">285</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_sickness_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if not payslip.l10n_ch_after_departure_payment:
|
|
current_solution = payslip.l10n_ch_sickness_insurance_line_ids[0]
|
|
ijm_wages = current_solution._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result = ijm_wages[0] / 12
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
else:
|
|
result = 0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_salary_min_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">IJM Salary Maximum Second Insurance</field>
|
|
<field name="code">IJMSALARYMIN2</field>
|
|
<field name="sequence">290</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_sickness_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if not payslip.l10n_ch_after_departure_payment:
|
|
current_solution = payslip.l10n_ch_sickness_insurance_line_ids[1]
|
|
ijm_wages = current_solution._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result = ijm_wages[0] / 12
|
|
result_rate = result_rules['ASDAYS']['total'] / 30.0 * 100.0
|
|
|
|
else:
|
|
result = 0
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_salary_1" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">IJM Salary Main Insurance</field>
|
|
<field name="code">IJMSALARY1</field>
|
|
<field name="l10n_ch_code">9051</field>
|
|
<field name="sequence">295</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_sickness_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
current_solution = payslip.l10n_ch_sickness_insurance_line_ids[0]
|
|
current_solution_slips_position_1 = previous_payslips.filtered(lambda p : p.l10n_ch_sickness_insurance_line_ids and p.l10n_ch_sickness_insurance_line_ids[0].id == current_solution.id)
|
|
current_solution_slips_position_2 = previous_payslips.filtered(lambda p : len(p.l10n_ch_sickness_insurance_line_ids) > 1 and p.l10n_ch_sickness_insurance_line_ids[1].id == current_solution.id)
|
|
|
|
previous_ijm_1_salary_1 = current_solution_slips_position_1._get_line_values(['IJMSALARY1'], compute_sum=True)['IJMSALARY1']['sum']['total']
|
|
previous_ijm_1_salary_2 = current_solution_slips_position_2._get_line_values(['IJMSALARY2'], compute_sum=True)['IJMSALARY2']['sum']['total']
|
|
|
|
current_ijm_1_base_1 = current_solution_slips_position_1._get_line_values(['IJMBASE'], compute_sum=True)['IJMBASE']['sum']['total']
|
|
current_ijm_2_base_2 = current_solution_slips_position_2._get_line_values(['IJMBASE'], compute_sum=True)['IJMBASE']['sum']['total']
|
|
|
|
wage_from_cum1 = current_solution_slips_position_1._get_line_values(['IJMSALARYMIN1'], compute_sum=True)['IJMSALARYMIN1']['sum']['total']
|
|
wage_from_cum2 = current_solution_slips_position_2._get_line_values(['IJMSALARYMIN2'], compute_sum=True)['IJMSALARYMIN2']['sum']['total']
|
|
|
|
ijm_1_threshold_1 = current_solution_slips_position_1._get_line_values(['IJMSALARYMAX1'], compute_sum=True)['IJMSALARYMAX1']['sum']['total']
|
|
ijm_1_threshold_2 = current_solution_slips_position_2._get_line_values(['IJMSALARYMAX2'], compute_sum=True)['IJMSALARYMAX2']['sum']['total']
|
|
|
|
|
|
previous_ijm_1_salary = previous_ijm_1_salary_1 + previous_ijm_1_salary_2
|
|
current_ijm_1_base = current_ijm_1_base_1 + current_ijm_2_base_2 + result_rules['IJMBASE']['total']
|
|
wage_from_cum = wage_from_cum1 + wage_from_cum2 + result_rules['IJMSALARYMIN1']['total']
|
|
ijm_1_threshold = ijm_1_threshold_1 + ijm_1_threshold_2 + result_rules['IJMSALARYMAX1']['total']
|
|
|
|
if wage_from_cum > 0:
|
|
trimmed_base = max(0, min(current_ijm_1_base - wage_from_cum, ijm_1_threshold - wage_from_cum))
|
|
elif wage_from_cum == 0 and ijm_1_threshold > 0:
|
|
trimmed_base = min(current_ijm_1_base - wage_from_cum, ijm_1_threshold - wage_from_cum)
|
|
else:
|
|
trimmed_base = 0
|
|
result = trimmed_base - previous_ijm_1_salary
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_salary_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">IJM Salary Second Insurance</field>
|
|
<field name="code">IJMSALARY2</field>
|
|
<field name="l10n_ch_code">9053</field>
|
|
<field name="sequence">300</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_sickness_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
current_solution = payslip.l10n_ch_sickness_insurance_line_ids[1]
|
|
current_solution_slips_position_1 = previous_payslips.filtered(lambda p : p.l10n_ch_sickness_insurance_line_ids and p.l10n_ch_sickness_insurance_line_ids[0].id == current_solution.id)
|
|
current_solution_slips_position_2 = previous_payslips.filtered(lambda p : len(p.l10n_ch_sickness_insurance_line_ids) > 1 and p.l10n_ch_sickness_insurance_line_ids[1].id == current_solution.id)
|
|
|
|
previous_ijm_1_salary_1 = current_solution_slips_position_1._get_line_values(['IJMSALARY1'], compute_sum=True)['IJMSALARY1']['sum']['total']
|
|
previous_ijm_1_salary_2 = current_solution_slips_position_2._get_line_values(['IJMSALARY2'], compute_sum=True)['IJMSALARY2']['sum']['total']
|
|
|
|
current_ijm_1_base_1 = current_solution_slips_position_1._get_line_values(['IJMBASE'], compute_sum=True)['IJMBASE']['sum']['total']
|
|
current_ijm_2_base_2 = current_solution_slips_position_2._get_line_values(['IJMBASE'], compute_sum=True)['IJMBASE']['sum']['total']
|
|
|
|
wage_from_cum1 = current_solution_slips_position_1._get_line_values(['IJMSALARYMIN1'], compute_sum=True)['IJMSALARYMIN1']['sum']['total']
|
|
wage_from_cum2 = current_solution_slips_position_2._get_line_values(['IJMSALARYMIN2'], compute_sum=True)['IJMSALARYMIN2']['sum']['total']
|
|
|
|
ijm_1_threshold_1 = current_solution_slips_position_1._get_line_values(['IJMSALARYMAX1'], compute_sum=True)['IJMSALARYMAX1']['sum']['total']
|
|
ijm_1_threshold_2 = current_solution_slips_position_2._get_line_values(['IJMSALARYMAX2'], compute_sum=True)['IJMSALARYMAX2']['sum']['total']
|
|
|
|
|
|
previous_ijm_1_salary = previous_ijm_1_salary_1 + previous_ijm_1_salary_2
|
|
current_ijm_1_base = current_ijm_1_base_1 + current_ijm_2_base_2 + result_rules['IJMBASE']['total']
|
|
wage_from_cum = wage_from_cum1 + wage_from_cum2 + result_rules['IJMSALARYMIN2']['total']
|
|
ijm_1_threshold = ijm_1_threshold_1 + ijm_1_threshold_2 + result_rules['IJMSALARYMAX2']['total']
|
|
|
|
if wage_from_cum > 0:
|
|
trimmed_base = max(0, min(current_ijm_1_base - wage_from_cum, ijm_1_threshold - wage_from_cum))
|
|
elif wage_from_cum == 0 and ijm_1_threshold > 0:
|
|
trimmed_base = min(current_ijm_1_base - wage_from_cum, ijm_1_threshold - wage_from_cum)
|
|
else:
|
|
trimmed_base = 0
|
|
|
|
result = trimmed_base - previous_ijm_1_salary
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_1" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Daily Sickness Insurance 1</field>
|
|
<field name="code">IJM1</field>
|
|
<field name="l10n_ch_code">5045</field>
|
|
<field name="sequence">305</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_sickness_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['IJMSALARY1']['total']
|
|
wage_to, wage_from, rate, employer_part = payslip.l10n_ch_sickness_insurance_line_ids[0]._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result_rate = -rate * (100 - employer_part) / 100
|
|
</field>
|
|
<field name="note">Daily Sickness Insurance</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Daily Sickness Insurance 2</field>
|
|
<field name="code">IJM2</field>
|
|
<field name="l10n_ch_code">5047</field>
|
|
<field name="sequence">310</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_sickness_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['IJMSALARY2']['total']
|
|
wage_to, wage_from, rate, employer_part = payslip.l10n_ch_sickness_insurance_line_ids[1]._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result_rate = -rate * (100 - employer_part) / 100
|
|
</field>
|
|
<field name="note">Daily Sickness Insurance</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_comp_1" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">Daily Sickness Insurance 1 Employer</field>
|
|
<field name="code">IJM1.COMP</field>
|
|
<field name="sequence">315</field>
|
|
<field name="l10n_ch_code">7045</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_sickness_insurance_line_ids
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['IJMSALARY1']['total']
|
|
wage_to, wage_from, rate, employer_part = payslip.l10n_ch_sickness_insurance_line_ids[0]._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result_rate = rate * (employer_part / 100)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="note">Daily Sickness Insurance</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ijm_comp_2" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">Daily Sickness Insurance 2 Employer</field>
|
|
<field name="code">IJM2.COMP</field>
|
|
<field name="sequence">320</field>
|
|
<field name="l10n_ch_code">7046</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = len(payslip.l10n_ch_sickness_insurance_line_ids) > 1
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['IJMSALARY2']['total']
|
|
wage_to, wage_from, rate, employer_part = payslip.l10n_ch_sickness_insurance_line_ids[1]._get_rates(payslip.date_from, version.employee_id.sex)
|
|
result_rate = rate * (employer_part / 100)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="note">Daily Sickness Insurance</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_5050" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">PP Contributions</field>
|
|
<field name="code">LPP</field>
|
|
<field name="l10n_ch_code">5050</field>
|
|
<field name="sequence">350</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "LPP" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['LPP'].amount
|
|
result_name = inputs['LPP'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">10.1</field>
|
|
<field name="l10n_ch_wage_statement">M</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_5052" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">PP Complementary Contributions</field>
|
|
<field name="code">LPP.COMPL</field>
|
|
<field name="l10n_ch_code">5052</field>
|
|
<field name="sequence">350</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "LPP.COMPL" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['LPP.COMPL'].amount
|
|
result_name = inputs['LPP.COMPL'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">10.1</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_5111" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">PP Employer Contributions Compensation</field>
|
|
<field name="code">LPP.COMP.CONT</field>
|
|
<field name="l10n_ch_code">5111</field>
|
|
<field name="sequence">355</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "LPP.COMP.CONT" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['LPP.COMP.CONT'].amount
|
|
result_name = inputs['LPP.COMP.CONT'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">10.1</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_5112" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">PP Benefits Purchase Employer Contributions Compensation</field>
|
|
<field name="code">LPP.P.COMP.CONT</field>
|
|
<field name="l10n_ch_code">5112</field>
|
|
<field name="sequence">360</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "LPP.P.COMP.CONT" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['LPP.P.COMP.CONT'].amount
|
|
result_name = inputs['LPP.P.COMP.CONT'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">10.2</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_5051" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">PP Benefits Purchase</field>
|
|
<field name="code">LPP.RACHAT</field>
|
|
<field name="l10n_ch_code">5051</field>
|
|
<field name="sequence">365</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "LPP.RACHAT" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['LPP.RACHAT'].amount
|
|
result_name = inputs['LPP.RACHAT'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">10.2</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_7050" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">PP Employer Contributions</field>
|
|
<field name="code">LPP.COMP</field>
|
|
<field name="l10n_ch_code">7050</field>
|
|
<field name="sequence">370</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "LPP.COMP" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['LPP.COMP'].amount
|
|
result_name = inputs['LPP.COMP'].name
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_7052" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">PP Complementary Employer Contributions</field>
|
|
<field name="code">LPP.COMP.COMPL</field>
|
|
<field name="l10n_ch_code">7052</field>
|
|
<field name="sequence">355</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "LPP.COMP.COMPL" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['LPP.COMP.COMPL'].amount
|
|
result_name = inputs['LPP.COMP.COMPL'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_7051" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">PP Benefits Purchase Employer Contributions</field>
|
|
<field name="code">LPP.RACHAT.COMP</field>
|
|
<field name="l10n_ch_code">7051</field>
|
|
<field name="sequence">370</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "LPP.RACHAT.COMP" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['LPP.RACHAT.COMP'].amount
|
|
result_name = inputs['LPP.RACHAT.COMP'].name
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<!-- Tax At Source -->
|
|
<record id="l10n_ch_elm_rule_5061" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Source-Tax Adjustment</field>
|
|
<field name="code">ISCOR</field>
|
|
<field name="l10n_ch_code">5061</field>
|
|
<field name="sequence">400</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_is_correction and payslip.l10n_ch_is_code</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
canton, is_code, municipality = payslip.l10n_ch_is_code.split('-')
|
|
total_compensation = 0
|
|
if payslip.l10n_ch_is_correction.correction_method == 'manual':
|
|
for correction in payslip.l10n_ch_is_correction.manual_correction_ids:
|
|
total_compensation += payslip._reverse_log_lines(correction.payslip_id, correction)
|
|
else:
|
|
for slip in payslip.l10n_ch_is_correction.payslips_to_correct:
|
|
total_compensation += payslip._reverse_log_lines(slip)
|
|
result = total_compensation
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">12</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_9065" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Source Tax Base</field>
|
|
<field name="code">ISBASE</field>
|
|
<field name="l10n_ch_code">9065</field>
|
|
<field name="sequence">400</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = sum(result_rules[rule.code]['total'] for rule in payslip.struct_id.rule_ids if rule.l10n_ch_source_tax_included)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ISSALARYDTP" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Source-Tax Determinant Periodic Salary</field>
|
|
<field name="code">ISSALARYDTP</field>
|
|
<field name="sequence">405</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
periodic_rules = [rule for rule in payslip.struct_id.rule_ids if rule.l10n_ch_source_tax_included and rule.l10n_ch_is_periodic]
|
|
result = sum(result_rules[rule.code]['total'] for rule in periodic_rules)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_ISSALARYDATP" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Source-Tax Determinant Aperiodic Salary</field>
|
|
<field name="code">ISSALARYDTAP</field>
|
|
<field name="sequence">410</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
periodic_rules = [rule for rule in payslip.struct_id.rule_ids if rule.l10n_ch_source_tax_included and not rule.l10n_ch_is_periodic]
|
|
result = sum(result_rules[rule.code]['total'] for rule in periodic_rules)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_9070" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Source-Tax Salary</field>
|
|
<field name="code">ISSALARY</field>
|
|
<field name="l10n_ch_code">9070</field>
|
|
<field name="sequence">415</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_is_code and not payslip.l10n_ch_is_code.split('-')[1].startswith('NO')
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
canton, code, municipality = payslip.l10n_ch_is_code.split('-')
|
|
if not payslip.l10n_ch_after_departure_payment:
|
|
log_lines = (previous_payslips + payslip)._get_is_log_lines(compute_total=True)["total"][canton]
|
|
year_days = log_lines['ISWORKEDDAYS']
|
|
year_days_ch = log_lines['ISWORKEDDAYSINCH']
|
|
thirteen_m = result_rules['13THMONTH']['total'] + result_rules['13THMONTH_HOURLY']['total'] + result_rules['14THMONTH']['total'] + result_rules['14THMONTH_HOURLY']['total']
|
|
salary_month = (result_rules['ISSALARYDTP']['total'] - thirteen_m) * result_rules['ISWORKEDDAYSINCH']['total'] / result_rules['ISWORKEDDAYS']['total']
|
|
salary_year = (result_rules['ISSALARYDTAP']['total'] + thirteen_m) * year_days_ch / year_days
|
|
result = salary_month + salary_year
|
|
payslip._log_is_line(
|
|
is_canton=canton,
|
|
municipality=municipality,
|
|
is_code=code,
|
|
code='ISSALARY',
|
|
amount=result)
|
|
else:
|
|
last_slip_lines = reference_is_slip._get_is_log_lines(compute_total=True)["total"]
|
|
right_canton = False
|
|
for canton in last_slip_lines:
|
|
if last_slip_lines[canton]['ISWORKEDDAYS'] > 0:
|
|
right_canton = canton
|
|
if right_canton:
|
|
last_days = last_slip_lines[right_canton]['ISWORKEDDAYS']
|
|
last_days_in_ch = last_slip_lines[right_canton]['ISWORKEDDAYSINCH']
|
|
log_lines = (previous_payslips + payslip)._get_is_log_lines(compute_total=True)["total"][right_canton]
|
|
year_days = log_lines['ISWORKEDDAYS']
|
|
year_days_ch = log_lines['ISWORKEDDAYSINCH']
|
|
salary_month = result_rules['ISSALARYDTP']['total'] * (last_days_in_ch / last_days)
|
|
salary_year = result_rules['ISSALARYDTAP']['total'] * (year_days_ch / year_days)
|
|
else:
|
|
salary_month = result_rules['ISSALARYDTP']['total']
|
|
salary_year = result_rules['ISSALARYDTAP']['total']
|
|
result = salary_month + salary_year
|
|
canton, code, municipality = payslip.l10n_ch_is_code.split('-')
|
|
if not payslip.l10n_ch_after_departure_payment == "NK":
|
|
payslip._log_is_line(
|
|
is_canton=canton,
|
|
municipality=municipality,
|
|
is_code=code,
|
|
code='ISSALARY',
|
|
amount=result)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_9072" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Source-Tax Determinant Aperiodic Salary</field>
|
|
<field name="code">ISDTSALARYAPERIODIC</field>
|
|
<field name="l10n_ch_code">9072</field>
|
|
<field name="sequence">420</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_is_code and not payslip.l10n_ch_is_code.split('-')[1].startswith('NO')
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['ISSALARYDTAP']['total']
|
|
if not payslip.l10n_ch_after_departure_payment == "NK":
|
|
canton, code, municipality = payslip.l10n_ch_is_code.split('-')
|
|
payslip._log_is_line(is_canton=canton, municipality=municipality, is_code=code, code='ISDTSALARYAPERIODIC', amount=result)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_activity_rate_total" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Activity Rate Total</field>
|
|
<field name="code">ACTIVITYRATETOTAL</field>
|
|
<field name="sequence">423</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
if "ACTIVITYRATETOTAL" in inputs:
|
|
result = inputs["ACTIVITYRATETOTAL"].amount
|
|
else:
|
|
if payslip.version_id.l10n_ch_other_employment:
|
|
if payslip.version_id.l10n_ch_total_activity_type == 'gross':
|
|
result = (payslip.version_id.l10n_ch_other_activity_gross / result_rules['ISSALARYDTP']['total'] * result_rules['ACTIVITYRATE']['total']) + result_rules['ACTIVITYRATE']['total']
|
|
elif payslip.version_id.l10n_ch_total_activity_type == 'percentage':
|
|
result = result_rules['ACTIVITYRATE']['total'] + payslip.version_id.l10n_ch_other_activity_percentage
|
|
else:
|
|
result = 100
|
|
else:
|
|
result = result_rules['ACTIVITYRATE']['total']
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="l10n_ch_5_cents_rounding" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_employees_9071" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Source-Tax Determinant Periodic Salary</field>
|
|
<field name="code">ISDTSALARYPERIODIC</field>
|
|
<field name="l10n_ch_code">9071</field>
|
|
<field name="sequence">425</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_is_code and not payslip.l10n_ch_is_code.split('-')[1].startswith('NO')
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['ISSALARYDTP']['total'] / (result_rules['ACTIVITYRATE']['total']/100) * (result_rules['ACTIVITYRATETOTAL']['total']/100)
|
|
canton, code, municipality = payslip.l10n_ch_is_code.split('-')
|
|
payslip._log_is_line(is_canton=canton, municipality=municipality, is_code=code, code='ISDTSALARYPERIODIC', amount=result)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_9073" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Source-Tax Rate Determinant Salary</field>
|
|
<field name="code">ISDTSALARY</field>
|
|
<field name="l10n_ch_code">9073</field>
|
|
<field name="sequence">430</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_is_code and not payslip.l10n_ch_is_code.split('-')[1].startswith('NO')
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
canton, is_code, municipality = payslip.l10n_ch_is_code.split('-')
|
|
if payslip.l10n_ch_is_model == "monthly":
|
|
is_dt_periodic = result_rules['ISDTSALARYPERIODIC']['total']
|
|
is_dt_aperiodic = result_rules['ISDTSALARYAPERIODIC']['total']
|
|
if payslip.l10n_ch_after_departure_payment:
|
|
log_lines = reference_is_slip._get_is_log_lines(compute_total=True)["total"][canton]
|
|
if log_lines['ASDAYS'] > 0:
|
|
as_days = log_lines['ASDAYS']
|
|
is_dt_periodic += log_lines['ISDTSALARYPERIODIC']
|
|
else:
|
|
as_days = 30
|
|
else :
|
|
as_days = result_rules['ASDAYS']['total']
|
|
result = is_dt_periodic / as_days * 30 + is_dt_aperiodic
|
|
|
|
elif payslip.l10n_ch_is_model == "yearly":
|
|
is_line_values = (previous_payslips + payslip)._get_is_log_lines(compute_total=True)["total"][canton]
|
|
total_is_dt_periodic = is_line_values['ISDTSALARYPERIODIC']
|
|
total_is_dt_aperiodic = is_line_values['ISDTSALARYAPERIODIC']
|
|
if payslip.l10n_ch_after_departure_payment == "NK":
|
|
total_is_dt_aperiodic += result_rules["ISDTSALARYAPERIODIC"]["total"]
|
|
total_as_days = is_line_values['ASDAYS']
|
|
yearly_is_dt_salary = total_is_dt_periodic / total_as_days * 360 + total_is_dt_aperiodic
|
|
result = yearly_is_dt_salary / 12.0
|
|
else:
|
|
result = 0
|
|
if not payslip.l10n_ch_after_departure_payment == "NK":
|
|
payslip._log_is_line(is_canton=canton, municipality=municipality, is_code=code, code='ISDTSALARY', amount=result)
|
|
</field>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5061_nk" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Source-Tax Adjustment after departure</field>
|
|
<field name="code">ISCORDEP</field>
|
|
<field name="l10n_ch_code">5062</field>
|
|
<field name="sequence">435</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_after_departure_payment == 'NK' and payslip.l10n_ch_is_code and reference_is_slip</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
total_compensation = 0
|
|
reference_canton, reference_is_code, reference_municipality, = reference_is_slip.l10n_ch_is_code.split('-')
|
|
ref_line_values = reference_is_slip._get_is_log_lines()[reference_canton][reference_is_code]
|
|
current_line_values = payslip._get_is_log_lines()[reference_canton][reference_is_code]
|
|
previous_is_dt_salary = ref_line_values['ISDTSALARY']
|
|
previous_is_amount = ref_line_values['IS']
|
|
previous_is_salary = ref_line_values['ISSALARY']
|
|
previous_sporadic_benefits = ref_line_values['ISDTSALARYAPERIODIC']
|
|
new_is_dt_salary = result_rules['ISDTSALARY']['total']
|
|
new_is_salary = result_rules['ISSALARY']['total'] + previous_is_salary
|
|
new_sporadic_benefits = result_rules['ISDTSALARYAPERIODIC']['total'] + previous_sporadic_benefits
|
|
|
|
payslip._log_is_line(is_canton=reference_canton, municipality=reference_municipality, is_code=reference_is_code, code='ISDTSALARY', amount=-previous_is_dt_salary, corrected_payslip_id=reference_is_slip.id, is_correction=True, correction_type='old')
|
|
payslip._log_is_line(is_canton=reference_canton, municipality=reference_municipality, is_code=reference_is_code, code='IS', amount=-previous_is_amount, corrected_payslip_id=reference_is_slip.id, is_correction=True, correction_type='old')
|
|
payslip._log_is_line(is_canton=reference_canton, municipality=reference_municipality, is_code=reference_is_code, code='ISSALARY', amount=-previous_is_salary, corrected_payslip_id=reference_is_slip.id, is_correction=True, correction_type='old')
|
|
payslip._log_is_line(is_canton=reference_canton, municipality=reference_municipality, is_code=reference_is_code, code='ISDTSALARYAPERIODIC', amount=-previous_sporadic_benefits, corrected_payslip_id=reference_is_slip.id, is_correction=True, correction_type='old')
|
|
|
|
payslip._log_is_line(is_canton=reference_canton, municipality=reference_municipality, is_code=reference_is_code, code='ISDTSALARY', amount=new_is_dt_salary, corrected_payslip_id=reference_is_slip.id, is_correction=True, correction_type='new')
|
|
payslip._log_is_line(is_canton=reference_canton, municipality=reference_municipality, is_code=reference_is_code, code='ISSALARY', amount=new_is_salary, corrected_payslip_id=reference_is_slip.id, is_correction=True, correction_type='new')
|
|
payslip._log_is_line(is_canton=reference_canton, municipality=reference_municipality, is_code=reference_is_code, code='ISDTSALARYAPERIODIC', amount=new_sporadic_benefits, corrected_payslip_id=reference_is_slip.id, is_correction=True, correction_type='new')
|
|
|
|
if payslip.l10n_ch_is_model == 'monthly':
|
|
min_amount, rate = payslip._find_rate(reference_is_slip.l10n_ch_is_code, new_is_dt_salary, reference_is_slip.date_from)
|
|
new_is_amount = max(min_amount, new_is_salary*rate/100)
|
|
payslip._log_is_line(is_canton=reference_canton, municipality=reference_municipality, is_code=reference_is_code, code='IS', amount=new_is_amount, corrected_payslip_id=reference_is_slip.id, is_correction=True, correction_type='new')
|
|
elif payslip.l10n_ch_is_model == 'yearly':
|
|
combined_slips = (previous_payslips + payslip)._get_is_log_lines()[canton][reference_is_code]
|
|
yearly_is_salary = combined_slips["ISSALARY"]
|
|
yearly_paid_is = combined_slips["IS"]
|
|
new_min, new_is_rate = payslip._find_rate(reference_is_slip.l10n_ch_is_code, new_is_dt_salary, reference_is_slip.date_from)
|
|
new_is_amount = (yearly_is_salary*new_is_rate/100) - yearly_paid_is
|
|
|
|
if new_is_amount >= 0:
|
|
new_is_amount = max(new_min, new_is_amount)
|
|
payslip._log_is_line(is_canton=reference_canton, municipality=reference_municipality, is_code=reference_is_code, code='IS', amount=new_is_amount, corrected_payslip_id=reference_is_slip.id, is_correction=True, correction_type='new')
|
|
total_compensation = previous_is_amount - new_is_amount
|
|
result = total_compensation
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">12</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_9075" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Source-Tax Rate</field>
|
|
<field name="code">ISRATE</field>
|
|
<field name="l10n_ch_code">9075</field>
|
|
<field name="sequence">435</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_is_code and not payslip.l10n_ch_is_code.split('-')[1].startswith('NO')
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
def find_rates(x, rates):
|
|
x = float_round(x, precision_rounding=1, rounding_method='DOWN')
|
|
for low, high, min_amount, rate in rates:
|
|
if low <= x <= high:
|
|
return min_amount, rate
|
|
return 0, 0
|
|
|
|
if not payslip.l10n_ch_is_code:
|
|
result = 0
|
|
else:
|
|
is_code = payslip.l10n_ch_is_code
|
|
if payslip.l10n_ch_is_code[3:5] in ['HE', 'ME', 'NO', 'SF']:
|
|
canton, tax_code, municipality = payslip.l10n_ch_is_code.split("-")
|
|
category_code = tax_code[0:2]
|
|
church_tax = tax_code[2]
|
|
parameter_code = f"l10n_ch_withholding_tax_rates_{canton}_{category_code}_{church_tax}"
|
|
else:
|
|
canton, (tax_scale, child_count, church_tax), municipality = payslip.l10n_ch_is_code.split("-")
|
|
parameter_code = f"l10n_ch_withholding_tax_rates_{canton}_{church_tax}_{tax_scale}_{child_count}"
|
|
|
|
if payslip.l10n_ch_after_departure_payment == "NK":
|
|
rates = payslip._rule_parameter(parameter_code, reference_is_slip.date_to)
|
|
else:
|
|
rates = payslip._rule_parameter(parameter_code)
|
|
|
|
is_dt_salary = result_rules['ISDTSALARY']['total']
|
|
min_amount, rate = find_rates(is_dt_salary, rates)
|
|
result = rate
|
|
result_rules["ISMIN"]['total'] = min_amount # Yes this is a trick
|
|
</field>
|
|
<field name="l10n_ch_5_cents_rounding" eval="False"/>
|
|
<field name="appears_on_payslip" eval="False"/>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
|
|
<record id="l10n_ch_elm_rule_5060" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Source-Tax</field>
|
|
<field name="code">IS</field>
|
|
<field name="l10n_ch_code">5060</field>
|
|
<field name="sequence">445</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_is_code</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
canton, code, municipality = payslip.l10n_ch_is_code.split('-')
|
|
if payslip.l10n_ch_is_code and not payslip.l10n_ch_after_departure_payment == 'NK':
|
|
if payslip.l10n_ch_after_departure_payment == 'N' or payslip.l10n_ch_is_model== "monthly":
|
|
is_salary = result_rules['ISSALARY']['total']
|
|
is_dt_salary = result_rules['ISDTSALARY']['total']
|
|
min_is, rate = payslip._find_rate(payslip.l10n_ch_is_code, is_dt_salary)
|
|
is_amount = max(is_salary * rate / 100, 0, min_is)
|
|
result = -is_amount
|
|
payslip._log_is_line(is_canton=canton, municipality=municipality, is_code=code, code='IS', amount=is_amount)
|
|
else:
|
|
total_is = 0
|
|
is_log_lines = (previous_payslips + payslip)._get_is_log_lines()[canton]
|
|
is_dt_salary = result_rules['ISDTSALARY']['total']
|
|
for st_code in is_log_lines:
|
|
is_code = f"{canton}-{st_code}-{municipality}"
|
|
code_is_salary, code_total_is = is_log_lines[st_code]['ISSALARY'], is_log_lines[st_code]['IS']
|
|
min_is, rate = payslip._find_rate(is_code, is_dt_salary)
|
|
is_amount = code_is_salary * rate / 100 - code_total_is
|
|
if is_amount >= 0:
|
|
is_amount = max(min_is, is_amount)
|
|
total_is -= is_amount
|
|
payslip._log_is_line(is_canton=canton, municipality=municipality, is_code=st_code, code='IS', amount=is_amount)
|
|
result = total_is
|
|
else:
|
|
result = 0
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">12</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5060_manual" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Source-Tax : Manual Correction</field>
|
|
<field name="code">IS_MANUAL_CORR</field>
|
|
<field name="l10n_ch_code">5061</field>
|
|
<field name="sequence">446</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = payslip.l10n_ch_is_code and 'IS_MANUAL_CORR' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
canton, code, municipality = payslip.l10n_ch_is_code.split('-')
|
|
source_tax_amount = inputs['IS_MANUAL_CORR'].amount
|
|
result = -source_tax_amount
|
|
payslip._log_is_line(is_canton=canton, municipality=municipality, is_code=code, code='IS', amount=source_tax_amount)
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">12</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5070" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">FCF Contribution</field>
|
|
<field name="code">CAF</field>
|
|
<field name="l10n_ch_code">5070</field>
|
|
<field name="sequence">450</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_compensation_fund_id and payslip.l10n_ch_compensation_fund_id._get_caf_rates(payslip.date_from, 'employee_rate') > 0
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_rate = - payslip.l10n_ch_compensation_fund_id._get_caf_rates(payslip.date_from, 'employee_rate')
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7070" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">FCF Employer Contribution</field>
|
|
<field name="code">CAF.COMP</field>
|
|
<field name="l10n_ch_code">7070</field>
|
|
<field name="sequence">455</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = payslip.l10n_ch_compensation_fund_id and payslip.l10n_ch_compensation_fund_id._get_caf_rates(payslip.date_from, 'company_rate') > 0
|
|
</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['AVSSALARY']['total']
|
|
result_rate = - payslip.l10n_ch_compensation_fund_id._get_caf_rates(payslip.date_from, 'company_rate')
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5080" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Deduction Private portion of company car</field>
|
|
<field name="code">WT_5080</field>
|
|
<field name="l10n_ch_code">5080</field>
|
|
<field name="sequence">500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_5080' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_5080'].amount
|
|
result_name = inputs['WT_5080'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5081" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Deduction for Prosecution Office</field>
|
|
<field name="code">WT_5081</field>
|
|
<field name="l10n_ch_code">5081</field>
|
|
<field name="sequence">500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_5081' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_5081'].amount
|
|
result_name = inputs['WT_5081'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5082" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Alimony Deduction</field>
|
|
<field name="code">WT_5082</field>
|
|
<field name="l10n_ch_code">5082</field>
|
|
<field name="sequence">500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_5082' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_5082'].amount
|
|
result_name = inputs['WT_5082'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5100" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Correction benefits in kind</field>
|
|
<field name="code">WT_5100</field>
|
|
<field name="l10n_ch_code">5100</field>
|
|
<field name="sequence">500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_5100' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_5100'].amount
|
|
result_name = inputs['WT_5100'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5110" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Cash Advantage Correction</field>
|
|
<field name="code">CASHCORRECTION</field>
|
|
<field name="l10n_ch_code">5110</field>
|
|
<field name="sequence">500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_5110' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_5110'].amount
|
|
result_name = inputs['WT_5110'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5310" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Joint National Commission</field>
|
|
<field name="code">WT_5310</field>
|
|
<field name="l10n_ch_code">5310</field>
|
|
<field name="sequence">500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_5310' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_5310'].amount
|
|
result_name = inputs['WT_5310'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7310" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">Joint National Commission Employer</field>
|
|
<field name="code">WT_7310</field>
|
|
<field name="l10n_ch_code">7310</field>
|
|
<field name="sequence">500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_7310' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_7310'].amount
|
|
result_name = inputs['WT_7310'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_5300" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.DED"/>
|
|
<field name="name">Joint Commission</field>
|
|
<field name="code">WT_5300</field>
|
|
<field name="l10n_ch_code">5300</field>
|
|
<field name="sequence">500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_5300' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_5300'].amount
|
|
result_name = inputs['WT_5300'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_7300" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_company_contributions"/>
|
|
<field name="name">Joint Commission Employer</field>
|
|
<field name="code">WT_7300</field>
|
|
<field name="l10n_ch_code">7300</field>
|
|
<field name="sequence">500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = 'WT_7300' in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_7300'].amount
|
|
result_name = inputs['WT_7300'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
<field name="appears_on_employee_cost_dashboard" eval="True"/>
|
|
</record>
|
|
|
|
<!-- Expenses -->
|
|
|
|
<record id="l10n_ch_hr_elm_6000" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Expenses travel, car, overnight accommodation</field>
|
|
<field name="code">EXP6000</field>
|
|
<field name="l10n_ch_code">6000</field>
|
|
<field name="sequence">700</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "EXP6000" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['EXP6000'].amount
|
|
result_name = inputs['EXP6000'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">13.1.1</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_6020" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Effective expenses expatriates</field>
|
|
<field name="code">EXP6020</field>
|
|
<field name="l10n_ch_code">6020</field>
|
|
<field name="sequence">705</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "EXP6020" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['EXP6020'].amount
|
|
result_name = inputs['EXP6020'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">13.1.2</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_6030" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Other Effective Expenses</field>
|
|
<field name="code">EXP6030</field>
|
|
<field name="l10n_ch_code">6030</field>
|
|
<field name="sequence">710</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "EXP6030" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['EXP6030'].amount
|
|
result_name = inputs['EXP6030'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">13.1.2</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_6035" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Lump sum professional expenses expatriates</field>
|
|
<field name="code">EXP6035</field>
|
|
<field name="l10n_ch_code">6035</field>
|
|
<field name="sequence">715</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "EXP6035" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['EXP6035'].amount
|
|
result_name = inputs['EXP6035'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">2.3</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_6040" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Lump-sum representation expenses</field>
|
|
<field name="code">EXP6040</field>
|
|
<field name="l10n_ch_code">6040</field>
|
|
<field name="sequence">720</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "EXP6040" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['EXP6040'].amount
|
|
result_name = inputs['EXP6040'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">13.2.1</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_6050" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Lump sum car expenses</field>
|
|
<field name="code">EXP6050</field>
|
|
<field name="l10n_ch_code">6050</field>
|
|
<field name="sequence">725</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "EXP6050" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['EXP6050'].amount
|
|
result_name = inputs['EXP6050'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">13.2.2</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_hr_elm_6070" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
|
<field name="name">Other lump sum expenses</field>
|
|
<field name="code">EXP6070</field>
|
|
<field name="l10n_ch_code">6070</field>
|
|
<field name="sequence">730</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "EXP6070" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = inputs['EXP6070'].amount
|
|
result_name = inputs['EXP6070'].name
|
|
</field>
|
|
<field name="l10n_ch_salary_certificate">13.2.3</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<!-- Net Salary -->
|
|
|
|
<record id="l10n_ch_elm_rule_6500" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Net Salary</field>
|
|
<field name="code">Net_Salary</field>
|
|
<field name="l10n_ch_code">6500</field>
|
|
<field name="sequence">1000</field>
|
|
<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="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_6510" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Salary Advance Already Paid</field>
|
|
<field name="code">WT_6510</field>
|
|
<field name="l10n_ch_code">6510</field>
|
|
<field name="sequence">1100</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = "WT_6510" in inputs</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = -inputs['WT_6510'].amount
|
|
result_name = inputs['WT_6510'].name
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_6600" model="hr.salary.rule">
|
|
<field name="category_id" ref="hr_payroll.NET"/>
|
|
<field name="name">Net Paid</field>
|
|
<field name="code">NET</field>
|
|
<field name="l10n_ch_code">6600</field>
|
|
<field name="sequence">1200</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result = result_rules['Net_Salary']['total'] + result_rules['WT_6510']['total']
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_vacation_provision" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Vacation pay Provision</field>
|
|
<field name="code">HOLALWPROV</field>
|
|
<field name="l10n_ch_code">9000</field>
|
|
<field name="sequence">1500</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">
|
|
result = result = result_rules['VACATION_BASE']['total'] > 0 and version.l10n_ch_contractual_holidays_rate and not version.l10n_ch_contractual_vacation_pay</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
result_rate = version.l10n_ch_contractual_holidays_rate
|
|
result = result = result_rules['VACATION_BASE']['total']
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
|
|
<record id="l10n_ch_elm_rule_vacation_balance" model="hr.salary.rule">
|
|
<field name="category_id" ref="l10n_ch_hr_payroll.l10n_ch_elm_technical_category"/>
|
|
<field name="name">Vacation pay Balance</field>
|
|
<field name="code">HOLALWTOT</field>
|
|
<field name="l10n_ch_code">9001</field>
|
|
<field name="sequence">1500</field>
|
|
<field name="condition_select">none</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
line_values = previous_payslips._get_line_values(['HOLALWPROV', 'WT_1162', 'WT_1163'], compute_sum=True)
|
|
total_provision = line_values['HOLALWPROV']['sum']['total'] + result_rules['HOLALWPROV']['total']
|
|
total_paid = line_values['WT_1162']['sum']['total'] + line_values['WT_1163']['sum']['total'] + result_rules['WT_1162']['total'] + result_rules['WT_1163']['total']
|
|
result = total_provision - total_paid
|
|
</field>
|
|
<field name="struct_id" ref="l10n_ch_hr_payroll.hr_payroll_structure_ch_elm"/>
|
|
</record>
|
|
</odoo>
|