Files
ihrm/payroll/methods/limits.py
Horilla b1a9ee02e2 Payroll beta (#17)
* [ADD]payroll

* [UPDT]add payroll to submenu

* [UPDT]add payroll url to main urls

* [FIX]payroll url to main urls

* [FIX]payslip generate date bug

* [UPDT]Payroll changes
2023-07-26 10:32:58 +05:30

57 lines
1.7 KiB
Python

"""
limit.py
This module is used to compute the limit for allowance and deduction
"""
# from payroll.models.models import Allowance
def compute_limit(component, amount, _day_dict):
"""
limit compute method
"""
# day_dict = [
# {
# "month": 5,
# "year": 2023,
# "days": 31,
# "start_date": "2023-05-01",
# "end_date": "2023-05-31",
# "working_days_on_period": 27,
# "working_days_on_month": 27,
# "per_day_amount": 555.5555555555555,
# },
# {
# "month": 6,
# "year": 2023,
# "days": 30,
# "start_date": "2023-06-01",
# "end_date": "2023-06-23",
# "working_days_on_period": 20,
# "working_days_on_month": 26,
# "per_day_amount": 576.9230769230769,
# },
# ]
if component.has_max_limit:
max_amount = component.maximum_amount
amount = min(amount, max_amount)
# if (
# isinstance(component, Allowance)
# and component.has_max_limit
# and not component.is_fixed
# ):
# amount = min(amount, max_amount)
# elif component.has_max_limit:
# unit = component.maximum_unit
# amount = 0
# if unit == "month_working_days":
# for month in day_dict:
# working_days_on_month = month["working_days_on_month"]
# working_days_on_period = month["working_days_on_period"]
# # maximum amount for one working day
# max_day_amount = max_amount / working_days_on_month
# amount = amount + (max_day_amount * working_days_on_period)
return amount