diff --git a/yuthon_hr_attendance/models/vacation_overtime_active.py b/yuthon_hr_attendance/models/vacation_overtime_active.py index c8bfd2fbe..3c095bb39 100644 --- a/yuthon_hr_attendance/models/vacation_overtime_active.py +++ b/yuthon_hr_attendance/models/vacation_overtime_active.py @@ -164,18 +164,37 @@ class VacationOvertimeActive(models.Model): def open_record(self): self.ensure_one() - selected_date = f"{self.select_year}-{self.select_month.zfill(2)}-01" + import datetime + year = int(self.select_year) + month = int(self.select_month) + + if month == 12: + last_day_date = datetime.date(year, 12, 31) + else: + next_month_first = datetime.date(year, month + 1, 1) + last_day_date = next_month_first - datetime.timedelta(days=1) + + last_day = last_day_date.strftime("%Y-%m-%d") domain = [ ('over_line_id.vacation_id.employee_id', '=', self.employee_id.id), - ('carry_forward_date', '>=', selected_date), - ('carryover_type', 'in', ['leave', 'fee']), - ('is_void', '=', False) + ('is_void', '=', False), + '|', + '&', + ('carryover_type', '=', 'fee'), + ('carry_forward_date', '=', last_day), + '&', + ('carryover_type', '=', 'leave'), + ('carry_forward_date', '>', last_day), ] + + view_id = self.env.ref('yuthon_hr_attendance.view_overtime_carryover_tree1').id + return { 'name': f'加班明细', 'type': 'ir.actions.act_window', 'res_model': 'overtime.carryover', 'view_mode': 'tree', + 'view_id': view_id, 'domain': domain, - 'target': 'current' + 'target': 'current', } diff --git a/yuthon_hr_attendance/views/overtime_carryover_views.xml b/yuthon_hr_attendance/views/overtime_carryover_views.xml index 025a4e518..e2bf1c9ed 100644 --- a/yuthon_hr_attendance/views/overtime_carryover_views.xml +++ b/yuthon_hr_attendance/views/overtime_carryover_views.xml @@ -3,6 +3,23 @@ overtime.carryover.tree overtime.carryover + + + + + + + + + + +