diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py index 20e74f407..792538690 100644 --- a/yuthon_hr_attendance/models/hr_attendance.py +++ b/yuthon_hr_attendance/models/hr_attendance.py @@ -533,11 +533,10 @@ class HrAttendance(models.Model): 确保选择期间每位员工至少有一条记录 若没有则创建一条默认记录 """ - start_date = fields.Date.from_string('2025-12-01') + start_date = fields.Date.from_string('2026-01-01') end_date = fields.Date.from_string('2026-01-09') - # 获取所有员工 - existing_employees = self.env['hr.employee'].search([('name', 'not in', ['郭一鸣','罗白义', '罗琼芳', '肖琼', '李芳萍', '钱康', 'Administrator'])]) + existing_employees = self.env['hr.employee'].search([('name', 'not in', ['Administrator'])]) if not existing_employees: return @@ -550,16 +549,14 @@ class HrAttendance(models.Model): existing_records = self.search([ ('employee_id', 'in', existing_employees.ids), - ('check_in', '>=', fields.Date.to_string(start_date)), - ('check_in', '<=', fields.Date.to_string(end_date + timedelta(days=1))) + ('current_data', '>=', fields.Date.to_string(start_date)), + ('current_data', '<=', fields.Date.to_string(end_date + timedelta(days=1))) ]) existing_map = {} for record in existing_records: - record_date = fields.Date.from_string(record.check_in) if record.check_in else fields.Date.from_string( - record.check_out) - if not record_date: + if not record.current_data: continue - key = (record.employee_id.id, fields.Date.to_string(record_date)) + key = (record.employee_id.id, fields.Date.to_string(record.current_data)) existing_map[key] = True # 检查每个员工在每个日期是否有记录 diff --git a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py index 7c71529cc..bc5306c11 100644 --- a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py +++ b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py @@ -324,8 +324,9 @@ class HrAttendanceDetail(models.Model): hours = int(float_time) minutes = int((float_time - hours) * 60) return fields.Datetime.to_datetime(f"{base_date} {hours:02d}:{minutes:02d}:00") - sch_check_in_time = float_to_datetime(breastfeeding_record.check_in, current_date) - timedelta(hours=8) - sch_check_out_time = float_to_datetime(breastfeeding_record.check_out, current_date)- timedelta(hours=8) + if breastfeeding_record: + sch_check_in_time = float_to_datetime(breastfeeding_record.check_in, current_date) - timedelta(hours=8) + sch_check_out_time = float_to_datetime(breastfeeding_record.check_out, current_date)- timedelta(hours=8) is_early_card, is_late_card, is_abnormal, is_warning, absenteeism_card, is_no_card = self.state_judgment(employee, check_in_time, check_out_time, sch_check_in_time, sch_check_out_time, current_data, is_manual) is_expatriation = self.env['expatriation.approval'].search([('work_end', '=', True),('expatriates_ids', 'in', [employee.id]), ('is_effect', '=', False)])