From 7d0a537bde575d7827f3e320b665ae055c21eb24 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 29 Sep 2022 20:22:54 +0000 Subject: [PATCH] [IMP] l10n_pe_hr_payroll: support household allowance, and EE EPS rule --- l10n_pe_hr_payroll/data/base.xml | 36 +++++++++++++++++++ l10n_pe_hr_payroll/data/ir_5ta_cat_rules.xml | 13 +++++++ .../models/pe_payroll_config.py | 4 +++ l10n_pe_hr_payroll/models/rules/ir_5ta_cat.py | 3 +- .../views/pe_payroll_config_views.xml | 2 ++ 5 files changed, 57 insertions(+), 1 deletion(-) diff --git a/l10n_pe_hr_payroll/data/base.xml b/l10n_pe_hr_payroll/data/base.xml index bb664c89..ae59e259 100644 --- a/l10n_pe_hr_payroll/data/base.xml +++ b/l10n_pe_hr_payroll/data/base.xml @@ -153,4 +153,40 @@ + + + + Peru Minimum Wage + pe_min_wage + + + + 930.0 + + + + + + Peru Minor Dependent Rate + pe_minor_dependent_rate + + + + 10.0 + + + + + + python + result = contract.pe_payroll_config_value('has_minor_dependent') + code + result, result_rate = payslip.rule_parameter('pe_min_wage'), payslip.rule_parameter('pe_minor_dependent_rate') + BASIC_HOUSEHOLD + + Basic: Household Allowance + + + + 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 123dbb5f..b9ca44cf 100644 --- a/l10n_pe_hr_payroll/data/ir_5ta_cat_rules.xml +++ b/l10n_pe_hr_payroll/data/ir_5ta_cat_rules.xml @@ -80,6 +80,19 @@ + + + + + Household Allowance + ALW_GRATIF_HOUSEHOLD + python + result = contract.pe_payroll_config_value('has_minor_dependent') + code + result, result_rate = payslip.rule_parameter('pe_min_wage'), payslip.rule_parameter('pe_minor_dependent_rate') + + + diff --git a/l10n_pe_hr_payroll/models/pe_payroll_config.py b/l10n_pe_hr_payroll/models/pe_payroll_config.py index 97d58319..5a8e4e13 100644 --- a/l10n_pe_hr_payroll/models/pe_payroll_config.py +++ b/l10n_pe_hr_payroll/models/pe_payroll_config.py @@ -10,6 +10,7 @@ class HRContractPEPayrollConfig(models.Model): name = fields.Char(string="Description") employee_id = fields.Many2one('hr.employee', string="Employee", required=True) + has_minor_dependent = fields.Boolean(string='Has Minor Dependent', help='Eligible for Household Allowance') ee_5ta_cat_exempt = fields.Boolean(string='Exempt from 5th Cat. withholding.') retirement_type = fields.Selection([ @@ -34,6 +35,9 @@ class HRContractPEPayrollConfig(models.Model): ('essalud', 'Essalud'), ('eps', 'EPS'), ], string='Company Social Services', default='essalud') + comp_ss_eps_ee_rule_id = fields.Many2one('hr.salary.rule', string='Employee Social Security EPS Rule', + domain=[('code', '=like', 'EE_PE_EPS%')], + help="Rule code prefix 'EE_PE_EPS' to select here.") comp_ss_eps_rule_id = fields.Many2one('hr.salary.rule', string='Company Social Security EPS Rule', domain=[('code', '=like', 'ER_PE_EPS%')], help="Rule code prefix 'ER_PE_EPS' to select here.") 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 167e1320..6945274a 100644 --- a/l10n_pe_hr_payroll/models/rules/ir_5ta_cat.py +++ b/l10n_pe_hr_payroll/models/rules/ir_5ta_cat.py @@ -99,5 +99,6 @@ def ir_5ta_cat(payslip, categories, worked_days, inputs): return wage_period, (remaining_tax / wage_period * 100.0) tax = -(total_tax - ytd_tax) / pay_periods_at_current - _logger.info('ir_5ta_cat locals: ' + str(pformat(locals()))) + # uncomment to see a lot of detail + # _logger.info('ir_5ta_cat locals: ' + str(pformat(locals()))) return wage_period, (tax / wage_period * 100.0) 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 3cb941f4..6be79864 100644 --- a/l10n_pe_hr_payroll/views/pe_payroll_config_views.xml +++ b/l10n_pe_hr_payroll/views/pe_payroll_config_views.xml @@ -26,6 +26,7 @@ + @@ -34,6 +35,7 @@

Not supported. Specify rule.

+