[IMP] l10n_pe_payroll: ir_5ta_cat exempt, partners for SUNAT, AFP

This commit is contained in:
Jared Kipe
2022-05-13 15:05:24 +00:00
parent effadc891a
commit 3b2cfc3eda
10 changed files with 27 additions and 0 deletions

View File

@@ -31,6 +31,7 @@
<field name="amount_select">code</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="amount_python_compute">result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][4]</field>
<field name="appears_on_payslip" eval="True"/> <field name="appears_on_payslip" eval="True"/>
<field name="partner_id" ref="partner_afp"/>
</record> </record>
<record id="hr_payroll_rule_ee_afp_seguro" model="hr.salary.rule"> <record id="hr_payroll_rule_ee_afp_seguro" model="hr.salary.rule">
@@ -54,6 +55,7 @@ rate = -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_t
result, result_rate = eligible_wage, rate result, result_rate = eligible_wage, rate
</field> </field>
<field name="appears_on_payslip" eval="True"/> <field name="appears_on_payslip" eval="True"/>
<field name="partner_id" ref="partner_afp"/>
</record> </record>
<record id="hr_payroll_rule_ee_afp_comision_mixta" model="hr.salary.rule"> <record id="hr_payroll_rule_ee_afp_comision_mixta" model="hr.salary.rule">
@@ -67,6 +69,7 @@ result, result_rate = eligible_wage, rate
<field name="amount_select">code</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="amount_python_compute">result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][1]</field>
<field name="appears_on_payslip" eval="True"/> <field name="appears_on_payslip" eval="True"/>
<field name="partner_id" ref="partner_afp"/>
</record> </record>
<record id="hr_payroll_rule_ee_afp_comision_non_mixta" model="hr.salary.rule"> <record id="hr_payroll_rule_ee_afp_comision_non_mixta" model="hr.salary.rule">
@@ -80,6 +83,7 @@ result, result_rate = eligible_wage, rate
<field name="amount_select">code</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="amount_python_compute">result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][0]</field>
<field name="appears_on_payslip" eval="True"/> <field name="appears_on_payslip" eval="True"/>
<field name="partner_id" ref="partner_afp"/>
</record> </record>
</odoo> </odoo>

View File

@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<record id="partner_sunat" model="res.partner">
<field name="name">SUNAT</field>
</record>
<record id="partner_afp" model="res.partner">
<field name="name">AFP</field>
</record>
<record id="structure_type_employee" model="hr.payroll.structure.type"> <record id="structure_type_employee" model="hr.payroll.structure.type">
<field name="name">Peru Employee (5ta Cat.)</field> <field name="name">Peru Employee (5ta Cat.)</field>
<field name="default_resource_calendar_id" ref="resource.resource_calendar_std"/> <field name="default_resource_calendar_id" ref="resource.resource_calendar_std"/>

View File

@@ -25,6 +25,7 @@
<field name="amount_select">code</field> <field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = categories.BASIC, -payslip.rule_parameter('er_essalud')</field> <field name="amount_python_compute">result, result_rate = categories.BASIC, -payslip.rule_parameter('er_essalud')</field>
<field name="appears_on_payslip" eval="True"/> <field name="appears_on_payslip" eval="True"/>
<field name="partner_id" ref="partner_sunat"/>
</record> </record>
</odoo> </odoo>

View File

@@ -25,6 +25,7 @@
<field name="amount_select">code</field> <field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ir_4ta_cat(payslip, categories, worked_days, inputs)</field> <field name="amount_python_compute">result, result_rate = ir_4ta_cat(payslip, categories, worked_days, inputs)</field>
<field name="appears_on_payslip" eval="True"/> <field name="appears_on_payslip" eval="True"/>
<field name="partner_id" ref="partner_sunat"/>
</record> </record>
</odoo> </odoo>

View File

@@ -55,6 +55,7 @@
<field name="amount_select">code</field> <field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = ir_5ta_cat(payslip, categories, worked_days, inputs, BASIC)</field> <field name="amount_python_compute">result, result_rate = ir_5ta_cat(payslip, categories, worked_days, inputs, BASIC)</field>
<field name="appears_on_payslip" eval="True"/> <field name="appears_on_payslip" eval="True"/>
<field name="partner_id" ref="partner_sunat"/>
</record> </record>
</odoo> </odoo>

View File

@@ -25,6 +25,7 @@
<field name="amount_select">code</field> <field name="amount_select">code</field>
<field name="amount_python_compute">result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_onp')</field> <field name="amount_python_compute">result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_onp')</field>
<field name="appears_on_payslip" eval="True"/> <field name="appears_on_payslip" eval="True"/>
<field name="partner_id" ref="partner_sunat"/>
</record> </record>
</odoo> </odoo>

View File

@@ -206,6 +206,11 @@ msgstr "Essalud"
msgid "Exempt from 4th Cat. withholding." msgid "Exempt from 4th Cat. withholding."
msgstr "Exento de Retención de la 4ta Cat." msgstr "Exento de Retención de la 4ta Cat."
#. module: l10n_pe_hr_payroll
#: model:ir.model.fields,field_description:l10n_pe_hr_payroll.field_hr_contract_pe_payroll_config__ee_5ta_cat_exempt
msgid "Exempt from 5th Cat. withholding."
msgstr "Exento de Retención de la 5ta Cat."
#. module: l10n_pe_hr_payroll #. module: l10n_pe_hr_payroll
#: model:ir.model.fields,help:l10n_pe_hr_payroll.field_hr_contract_pe_payroll_config__date_hired #: model:ir.model.fields,help:l10n_pe_hr_payroll.field_hr_contract_pe_payroll_config__date_hired
msgid "For calculations like IR 5TH CAT." msgid "For calculations like IR 5TH CAT."

View File

@@ -12,6 +12,8 @@ class HRContractPEPayrollConfig(models.Model):
date_hired = fields.Date(string='Date Hired', required=True, default=fields.Date.today, date_hired = fields.Date(string='Date Hired', required=True, default=fields.Date.today,
help='For calculations like IR 5TH CAT.') help='For calculations like IR 5TH CAT.')
ee_5ta_cat_exempt = fields.Boolean(string='Exempt from 5th Cat. withholding.')
retirement_type = fields.Selection([ retirement_type = fields.Selection([
('afp', 'AFP'), ('afp', 'AFP'),
('onp', 'ONP'), ('onp', 'ONP'),

View File

@@ -3,6 +3,9 @@
from datetime import date from datetime import date
def ir_5ta_cat(payslip, categories, worked_days, inputs, basic_wage): def ir_5ta_cat(payslip, categories, worked_days, inputs, basic_wage):
if payslip.dict.contract_id.pe_payroll_config_value('ee_5ta_cat_exempt'):
return 0.0, 0.0
pay_periods_in_year = payslip.pay_periods_in_year pay_periods_in_year = payslip.pay_periods_in_year
uit = payslip.rule_parameter('pe_uit') uit = payslip.rule_parameter('pe_uit')
payslip_date_end = payslip.dict.date_to payslip_date_end = payslip.dict.date_to

View File

@@ -28,6 +28,7 @@
</group> </group>
<group> <group>
<group name="employee" string="Employee"> <group name="employee" string="Employee">
<field name="ee_5ta_cat_exempt"/>
<field name="retirement_type"/> <field name="retirement_type"/>
<field name="afp_type" attrs="{'invisible': [('retirement_type', '!=', 'afp')]}"/> <field name="afp_type" attrs="{'invisible': [('retirement_type', '!=', 'afp')]}"/>
<field name="afp_comision_type" attrs="{'invisible': [('retirement_type', '!=', 'afp')]}"/> <field name="afp_comision_type" attrs="{'invisible': [('retirement_type', '!=', 'afp')]}"/>