diff --git a/odex25_hr/exp_payroll_custom/models/hr_advance_payslip.py b/odex25_hr/exp_payroll_custom/models/hr_advance_payslip.py index 3f9803fa4..3f3b753a6 100644 --- a/odex25_hr/exp_payroll_custom/models/hr_advance_payslip.py +++ b/odex25_hr/exp_payroll_custom/models/hr_advance_payslip.py @@ -488,7 +488,7 @@ class SalaryRuleInput(models.Model): #if payslip.date_from >= holiday.date_from and payslip.date_to >= holiday.date_to: if payslip_date_from >= holiday_date_from and payslip_date_to >= holiday_date_to: start_date = datetime.strptime(payslip_date_from, "%Y-%m-%d").date() - end_date = datetime.strptime(holiday_date_to, "%Y-%m-%d %H:%M:%S").date() + timedelta( + end_date = datetime.strptime(holiday_date_to, "%Y-%m-%d").date() + timedelta( days=1) number_of_days = relativedelta(end_date, start_date).days if number_of_days >= 0: # number_of_days <= 0 @@ -539,9 +539,10 @@ class SalaryRuleInput(models.Model): 'number_of_hours': holiday.holiday_status_id.percentage, 'contract_id': payslip.contract_id.id})] elif holiday.holiday_status_id.payslip_type == 'addition': - if payslip.date_from >= holiday.date_from and payslip.date_to >= holiday.date_to: - start_date = datetime.strptime(str(payslip.date_from), "%Y-%m-%d").date() - end_date = datetime.strptime(str(holiday.date_to), "%Y-%m-%d %H:%M:%S").date() + timedelta( + # if payslip.date_from >= holiday.date_from and payslip.date_to >= holiday.date_to: + if payslip_date_from >= holiday_date_from and payslip_date_to >= holiday_date_to: + start_date = datetime.strptime(str(payslip_date_from), "%Y-%m-%d").date() + end_date = datetime.strptime(str(holiday_date_to), "%Y-%m-%d").date() + timedelta( days=1) number_of_days = relativedelta(end_date, start_date).days if number_of_days >= 0: # number_of_days <= 0 @@ -553,7 +554,7 @@ class SalaryRuleInput(models.Model): 'number_of_days': number_of_days, 'number_of_hours': 0.0, 'contract_id': payslip.contract_id.id})] - elif payslip.date_to >= holiday.date_to and holiday.date_from >= payslip.date_from: + elif payslip_date_to >= holiday_date_to and holiday_date_from >= payslip_date_from: if holiday.number_of_days_temp >= 0: # holiday.number_of_days_temp <= 0 payslip.worked_days_line_ids = [(0, 0, { 'name': "Additional Paid Holidays", @@ -563,9 +564,9 @@ class SalaryRuleInput(models.Model): 'number_of_days': holiday.number_of_days_temp, 'number_of_hours': 0.0, 'contract_id': payslip.contract_id.id})] - elif holiday.date_from >= payslip.date_from and payslip.date_to <= holiday.date_to: - start_date = datetime.strptime(str(holiday.date_from), "%Y-%m-%d %H:%M:%S").date() - end_date = datetime.strptime(str(payslip.date_to), "%Y-%m-%d").date() + elif holiday_date_from >= payslip_date_from and payslip_date_to <= holiday_date_to: + start_date = datetime.strptime(str(holiday_date_from), "%Y-%m-%d").date() + end_date = datetime.strptime(str(payslip_date_to), "%Y-%m-%d").date() number_of_days = relativedelta(end_date, start_date).days + 1 if number_of_days >= 0: # number_of_days <= 0 payslip.worked_days_line_ids = [(0, 0, { @@ -577,9 +578,9 @@ class SalaryRuleInput(models.Model): 'number_of_hours': 0.0, 'contract_id': payslip.contract_id.id})] else: - if payslip.date_to <= holiday.date_to: - start_date = datetime.strptime(str(payslip.date_from), "%Y-%m-%d").date() - end_date = datetime.strptime(str(payslip.date_to), "%Y-%m-%d").date() + timedelta( + if payslip_date_to <= holiday_date_to: + start_date = datetime.strptime(str(payslip_date_from), "%Y-%m-%d").date() + end_date = datetime.strptime(str(payslip_date_to), "%Y-%m-%d").date() + timedelta( days=1) number_of_days = relativedelta(end_date, start_date).days if number_of_days >= 0: # number_of_days <= 0