1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/l10n_lt_hr_payroll/models/hr_payslip.py
2024-12-10 09:04:09 +07:00

43 lines
1.8 KiB
Python

# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
class HrEmployee(models.Model):
_inherit = 'hr.payslip'
def _get_data_files_to_update(self):
# Note: file order should be maintained
return super()._get_data_files_to_update() + [(
'l10n_lt_hr_payroll', [
'data/hr_salary_rule_category_data.xml',
'data/hr_payroll_structure_type_data.xml',
'data/hr_payroll_structure_data.xml',
'data/hr_rule_parameters_data.xml',
'data/hr_salary_rule_data.xml',
])]
def _get_l10n_lt_taxable_amount(self, localdict, sick=False):
self.ensure_one()
categories = localdict['categories']
taxable_amount = categories['GROSS']
if not self.employee_id.is_non_resident:
low = self._rule_parameter('l10n_lt_tax_exempt_low')
high = self._rule_parameter('l10n_lt_tax_exempt_high')
basic = self._rule_parameter('l10n_lt_tax_exempt_basic')
rate = self._rule_parameter('l10n_lt_tax_exempt_rate')
if taxable_amount <= low:
taxable_amount -= basic
elif taxable_amount <= high:
taxable_amount -= basic - rate * (taxable_amount - low)
if self.employee_id.l10n_lt_working_capacity == "0_25":
taxable_amount -= self._rule_parameter('l10n_lt_tax_exempt_0_25')
elif self.employee_id.l10n_lt_working_capacity == "30_55":
taxable_amount -= self._rule_parameter('l10n_lt_tax_exempt_30_55')
sick_amount = sum(self.worked_days_line_ids.filtered(lambda wd: wd.code == 'LEAVE110').mapped('amount'))
if sick:
return min(taxable_amount, sick_amount)
return max(taxable_amount - sick_amount, 0)