mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
[REF] l10n_pe_hr_payroll: extraordinary input for extra paid day off
Several BASIC rules became ALW to remove the dependency on BASIC rule for calculation on IR 5th CAT.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
{
|
||||
'name': 'Peru - Payroll',
|
||||
'author': 'Hibou Corp. <hello@hibou.io>',
|
||||
'version': '15.0.2022.0.0',
|
||||
'version': '15.0.2022.1.0',
|
||||
'category': 'Payroll Localization',
|
||||
'depends': [
|
||||
'hr_payroll_hibou',
|
||||
|
||||
@@ -99,6 +99,28 @@
|
||||
<field name="parent_id" ref="hr_payroll.COMP"/>
|
||||
</record>
|
||||
|
||||
<!-- Extra input & rule -->
|
||||
<record id="input_type_extra" model="hr.payslip.input.type">
|
||||
<field name="name">Extraordinary Wage</field>
|
||||
<field name="code">EXTRA</field>
|
||||
<field name="country_id" ref="base.pe" />
|
||||
<field name="struct_ids" eval="[
|
||||
(4, ref('l10n_pe_hr_payroll.hr_payroll_structure')),
|
||||
]" />
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_extra" model="hr.salary.rule">
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = inputs.EXTRA.amount > 0.0 if inputs.EXTRA else False</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.EXTRA.amount if inputs.EXTRA else 0</field>
|
||||
<field name="code">ALW_EXTRA</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="name">Extraordinary Wage</field>
|
||||
<field name="sequence" eval="24"/>
|
||||
<field name="struct_id" ref="l10n_pe_hr_payroll.hr_payroll_structure"/>
|
||||
</record>
|
||||
|
||||
<!-- Bonus input & rule -->
|
||||
<record id="input_type_bono" model="hr.payslip.input.type">
|
||||
<field name="name">Bonus</field>
|
||||
@@ -114,8 +136,8 @@
|
||||
<field name="condition_python">result = inputs.BONO.amount > 0.0 if inputs.BONO else False</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.BONO.amount if inputs.BONO else 0</field>
|
||||
<field name="code">BASIC_BONO</field>
|
||||
<field name="category_id" ref="hr_payroll.BASIC"/>
|
||||
<field name="code">ALW_BONO</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="name">Bonus</field>
|
||||
<field name="sequence" eval="25"/>
|
||||
<field name="struct_id" ref="l10n_pe_hr_payroll.hr_payroll_structure"/>
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
<field name="name">ER: PE Essalud</field>
|
||||
<field name="code">ER_PE_ESSALUD</field>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = categories.BASIC</field>
|
||||
<field name="condition_python">result = categories.GROSS</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.GROSS, -payslip.rule_parameter('er_essalud')</field>
|
||||
<field name="appears_on_payslip" eval="True"/>
|
||||
<field name="partner_id" ref="partner_sunat"/>
|
||||
</record>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<field name="condition_python">result = inputs.COMMISSION.amount > 0.0 if inputs.COMMISSION else False</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.COMMISSION.amount if inputs.COMMISSION else 0</field>
|
||||
<field name="code">BASIC_COM</field>
|
||||
<field name="code">ALW_COM</field>
|
||||
<field name="category_id" ref="hr_payroll.BASIC"/>
|
||||
<field name="name">Commissions</field>
|
||||
<field name="sequence" eval="20"/>
|
||||
@@ -19,7 +19,7 @@
|
||||
<field name="condition_python">result = inputs.BADGES.amount > 0.0 if inputs.BADGES else False</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.BADGES.amount if inputs.BADGES else 0</field>
|
||||
<field name="code">BASIC_BADGES</field>
|
||||
<field name="code">ALW_BADGES</field>
|
||||
<field name="category_id" ref="hr_payroll.BASIC"/>
|
||||
<field name="name">Badges</field>
|
||||
<field name="sequence" eval="20"/>
|
||||
|
||||
@@ -51,9 +51,9 @@
|
||||
<field name="name">EE: PE IR 5th Cat.</field>
|
||||
<field name="code">EE_PE_IR_5TA_CAT</field>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result, _ = ir_5ta_cat(payslip, categories, worked_days, inputs, BASIC)</field>
|
||||
<field name="condition_python">result, _ = ir_5ta_cat(payslip, categories, worked_days, inputs)</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)</field>
|
||||
<field name="appears_on_payslip" eval="True"/>
|
||||
<field name="partner_id" ref="partner_sunat"/>
|
||||
</record>
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
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 = categories.BASIC
|
||||
if payslip.dict.contract_id.pe_payroll_config_value('ee_5ta_cat_exempt'):
|
||||
return 0.0, 0.0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user