diff --git a/addons/hr_attendance/models/hr_attendance.py b/addons/hr_attendance/models/hr_attendance.py index eb46b60e530..08d6c714d17 100644 --- a/addons/hr_attendance/models/hr_attendance.py +++ b/addons/hr_attendance/models/hr_attendance.py @@ -163,7 +163,7 @@ class HrAttendance(models.Model): start, stop, emp.resource_id )[emp.resource_id.id] # Substract Global Leaves and Employee's Leaves - leave_intervals = emp.resource_calendar_id._leave_intervals_batch(start, stop, emp.resource_id) + leave_intervals = emp.resource_calendar_id._leave_intervals_batch(start, stop, emp.resource_id, domain=[]) expected_attendances -= leave_intervals[False] | leave_intervals[emp.resource_id.id] # working_times = {date: [(start, stop)]} diff --git a/addons/hr_holidays_attendance/models/hr_leave.py b/addons/hr_holidays_attendance/models/hr_leave.py index ec5fe57fe02..c10df0f6149 100644 --- a/addons/hr_holidays_attendance/models/hr_leave.py +++ b/addons/hr_holidays_attendance/models/hr_leave.py @@ -2,6 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from collections import defaultdict +from datetime import timedelta from odoo import api, fields, models, _ from odoo.exceptions import ValidationError @@ -95,6 +96,7 @@ class HRLeave(models.Model): employee_dates = defaultdict(set) for leave in self: if leave.employee_id and leave.employee_company_id.hr_attendance_overtime: - employee_dates[leave.employee_id].add(self.env['hr.attendance']._get_day_start_and_day(leave.employee_id, leave.date_from)) + for d in range((leave.date_to - leave.date_from).days + 1): + employee_dates[leave.employee_id].add(self.env['hr.attendance']._get_day_start_and_day(leave.employee_id, leave.date_from + timedelta(days=d))) if employee_dates: self.env['hr.attendance']._update_overtime(employee_dates)