mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
92 lines
5.1 KiB
XML
92 lines
5.1 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<odoo>
|
|
|
|
<!-- Parameters -->
|
|
<record id="rule_parameter_ee_afp" model="hr.rule.parameter">
|
|
<field name="name">EE: AFP</field>
|
|
<field name="code">ee_afp</field>
|
|
<field name="country_id" ref="base.pe"/>
|
|
</record>
|
|
<record id="rule_parameter_ee_afp_2020" model="hr.rule.parameter.value">
|
|
<field name="parameter_value">{
|
|
# non-mixta, mixta_monthly, mixta_annually, iss, ley, maximum (iss wage base)
|
|
'habitat': (1.47, 0.38, 1.25, 1.35, 10.0, 9707.03),
|
|
'integra': (1.55, 0.00, 1.82, 1.35, 10.0, 9707.03),
|
|
'prima': (1.60, 0.18, 1.25, 1.35, 10.0, 9707.03),
|
|
'profuturo': (1.69, 0.67, 1.20, 1.35, 10.0, 9707.03),
|
|
}</field>
|
|
<field name="rule_parameter_id" ref="rule_parameter_ee_afp"/>
|
|
<field name="date_from" eval="datetime(2020, 1, 1).date()"/>
|
|
</record>
|
|
|
|
<!-- Partner -->
|
|
<record id="res_partner_afp" model="res.partner">
|
|
<field name="name">AFP</field>
|
|
</record>
|
|
|
|
<!-- EE Rules -->
|
|
<record id="hr_payroll_rule_ee_afp_pensiones" model="hr.salary.rule">
|
|
<field name="sequence" eval="190"/>
|
|
<field name="struct_id" ref="hr_payroll_structure"/>
|
|
<field name="category_id" ref="hr_payroll_category_ee_pe_afp"/>
|
|
<field name="name">EE: PE AFP Pensiones</field>
|
|
<field name="code">EE_PE_AFP_PENSIONES</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = categories.GROSS and contract.pe_payroll_config_value('retirement_type') == 'afp'</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][4]</field>
|
|
<field name="partner_id" ref="res_partner_afp"/>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
</record>
|
|
|
|
<record id="hr_payroll_rule_ee_afp_seguro" model="hr.salary.rule">
|
|
<field name="sequence" eval="191"/>
|
|
<field name="struct_id" ref="hr_payroll_structure"/>
|
|
<field name="category_id" ref="hr_payroll_category_ee_pe_afp"/>
|
|
<field name="name">EE: PE AFP Seguro</field>
|
|
<field name="code">EE_PE_AFP_SEGURO</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = categories.GROSS and contract.pe_payroll_config_value('retirement_type') == 'afp'</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">
|
|
year = payslip.dict.get_year()
|
|
ytd_wage = payslip.sum_category('GROSS', str(year) + '-01-01', str(year+1) + '-01-01')
|
|
wage = categories.GROSS
|
|
wage_base = payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][5]
|
|
rate = payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][3]
|
|
result, result_rate = general_rate(payslip, wage, ytd_wage, wage_base=wage_base, rate=rate)
|
|
</field>
|
|
<field name="partner_id" ref="res_partner_afp"/>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
</record>
|
|
|
|
<record id="hr_payroll_rule_ee_afp_comision_mixta" model="hr.salary.rule">
|
|
<field name="sequence" eval="192"/>
|
|
<field name="struct_id" ref="hr_payroll_structure"/>
|
|
<field name="category_id" ref="hr_payroll_category_ee_pe_afp"/>
|
|
<field name="name">EE: PE AFP Comisión Mixta</field>
|
|
<field name="code">EE_PE_AFP_COMISION_MIXTA</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = categories.GROSS and contract.pe_payroll_config_value('retirement_type') == 'afp' and contract.pe_payroll_config_value('afp_comision_type') == 'mixta'</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][1]</field>
|
|
<field name="partner_id" ref="res_partner_afp"/>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
</record>
|
|
|
|
<record id="hr_payroll_rule_ee_afp_comision_non_mixta" model="hr.salary.rule">
|
|
<field name="sequence" eval="192"/>
|
|
<field name="struct_id" ref="hr_payroll_structure"/>
|
|
<field name="category_id" ref="hr_payroll_category_ee_pe_afp"/>
|
|
<field name="name">EE: PE AFP Comisión (Non-Mixta)</field>
|
|
<field name="code">EE_PE_AFP_COMISION_NON_MIXTA</field>
|
|
<field name="condition_select">python</field>
|
|
<field name="condition_python">result = categories.GROSS and contract.pe_payroll_config_value('retirement_type') == 'afp' and contract.pe_payroll_config_value('afp_comision_type') == 'non_mixta'</field>
|
|
<field name="amount_select">code</field>
|
|
<field name="amount_python_compute">result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][0]</field>
|
|
<field name="partner_id" ref="res_partner_afp"/>
|
|
<field name="appears_on_payslip" eval="True"/>
|
|
</record>
|
|
|
|
</odoo>
|