diff --git a/l10n_pe_hr_payroll/data/afp_rules.xml b/l10n_pe_hr_payroll/data/afp_rules.xml index ffeed643..276c88d9 100644 --- a/l10n_pe_hr_payroll/data/afp_rules.xml +++ b/l10n_pe_hr_payroll/data/afp_rules.xml @@ -31,6 +31,7 @@ code result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][4] + @@ -54,6 +55,7 @@ rate = -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_t result, result_rate = eligible_wage, rate + @@ -67,6 +69,7 @@ result, result_rate = eligible_wage, rate code result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][1] + @@ -80,6 +83,7 @@ result, result_rate = eligible_wage, rate code result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_afp')[contract.pe_payroll_config_value('afp_type')][0] + diff --git a/l10n_pe_hr_payroll/data/base.xml b/l10n_pe_hr_payroll/data/base.xml index 09d6d494..a33cb6c8 100644 --- a/l10n_pe_hr_payroll/data/base.xml +++ b/l10n_pe_hr_payroll/data/base.xml @@ -1,6 +1,14 @@ + + SUNAT + + + + AFP + + Peru Employee (5ta Cat.) diff --git a/l10n_pe_hr_payroll/data/er_rules.xml b/l10n_pe_hr_payroll/data/er_rules.xml index a5d97b44..87bc9cc5 100644 --- a/l10n_pe_hr_payroll/data/er_rules.xml +++ b/l10n_pe_hr_payroll/data/er_rules.xml @@ -25,6 +25,7 @@ code result, result_rate = categories.BASIC, -payslip.rule_parameter('er_essalud') + diff --git a/l10n_pe_hr_payroll/data/ir_4ta_cat_rules.xml b/l10n_pe_hr_payroll/data/ir_4ta_cat_rules.xml index d18d87f3..2ed482e7 100644 --- a/l10n_pe_hr_payroll/data/ir_4ta_cat_rules.xml +++ b/l10n_pe_hr_payroll/data/ir_4ta_cat_rules.xml @@ -25,6 +25,7 @@ code result, result_rate = ir_4ta_cat(payslip, categories, worked_days, inputs) + diff --git a/l10n_pe_hr_payroll/data/ir_5ta_cat_rules.xml b/l10n_pe_hr_payroll/data/ir_5ta_cat_rules.xml index bafd7b5b..c1ac88cb 100644 --- a/l10n_pe_hr_payroll/data/ir_5ta_cat_rules.xml +++ b/l10n_pe_hr_payroll/data/ir_5ta_cat_rules.xml @@ -55,6 +55,7 @@ code result, result_rate = ir_5ta_cat(payslip, categories, worked_days, inputs, BASIC) + diff --git a/l10n_pe_hr_payroll/data/onp_rules.xml b/l10n_pe_hr_payroll/data/onp_rules.xml index b2f81e34..09791d98 100644 --- a/l10n_pe_hr_payroll/data/onp_rules.xml +++ b/l10n_pe_hr_payroll/data/onp_rules.xml @@ -25,6 +25,7 @@ code result, result_rate = categories.GROSS, -payslip.rule_parameter('ee_onp') + diff --git a/l10n_pe_hr_payroll/i18n/es.po b/l10n_pe_hr_payroll/i18n/es.po index da3d014e..38efba65 100644 --- a/l10n_pe_hr_payroll/i18n/es.po +++ b/l10n_pe_hr_payroll/i18n/es.po @@ -206,6 +206,11 @@ msgstr "Essalud" msgid "Exempt from 4th Cat. withholding." 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 #: model:ir.model.fields,help:l10n_pe_hr_payroll.field_hr_contract_pe_payroll_config__date_hired msgid "For calculations like IR 5TH CAT." diff --git a/l10n_pe_hr_payroll/models/pe_payroll_config.py b/l10n_pe_hr_payroll/models/pe_payroll_config.py index ebac2dc1..7ec13f85 100644 --- a/l10n_pe_hr_payroll/models/pe_payroll_config.py +++ b/l10n_pe_hr_payroll/models/pe_payroll_config.py @@ -12,6 +12,8 @@ class HRContractPEPayrollConfig(models.Model): date_hired = fields.Date(string='Date Hired', required=True, default=fields.Date.today, help='For calculations like IR 5TH CAT.') + ee_5ta_cat_exempt = fields.Boolean(string='Exempt from 5th Cat. withholding.') + retirement_type = fields.Selection([ ('afp', 'AFP'), ('onp', 'ONP'), diff --git a/l10n_pe_hr_payroll/models/rules/ir_5ta_cat.py b/l10n_pe_hr_payroll/models/rules/ir_5ta_cat.py index da802e61..f137c0b5 100644 --- a/l10n_pe_hr_payroll/models/rules/ir_5ta_cat.py +++ b/l10n_pe_hr_payroll/models/rules/ir_5ta_cat.py @@ -3,6 +3,9 @@ from datetime import date 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 uit = payslip.rule_parameter('pe_uit') payslip_date_end = payslip.dict.date_to diff --git a/l10n_pe_hr_payroll/views/pe_payroll_config_views.xml b/l10n_pe_hr_payroll/views/pe_payroll_config_views.xml index 4ae8e587..38ec9bda 100644 --- a/l10n_pe_hr_payroll/views/pe_payroll_config_views.xml +++ b/l10n_pe_hr_payroll/views/pe_payroll_config_views.xml @@ -28,6 +28,7 @@ +