From 9ab01463fcd1ec75877e9c2a73dbf1803d4a8fda Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Mon, 6 Jan 2025 19:02:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_hr_attendance/models/card_approval.py | 19 ++++++++++++------- yuthon_hr_attendance/views/card_approval.xml | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/yuthon_hr_attendance/models/card_approval.py b/yuthon_hr_attendance/models/card_approval.py index 3aebfe5ec..0d7295ff2 100644 --- a/yuthon_hr_attendance/models/card_approval.py +++ b/yuthon_hr_attendance/models/card_approval.py @@ -58,18 +58,23 @@ class CardApprovals(models.Model): max_hour = int(max_hour_to) max_minute = int(max_hour_to * 10 % max_hour_to) for rec in self: - # if rec.replacement_time == 'work': - # rec.attendance_id.check_in = rec.attendance_id.check_in.replace(hour=min_hour, minute=min_minute) - timedelta(hours=8) - # if rec.replacement_time == 'quitting': - # rec.attendance_id.check_out = rec.attendance_id.check_in.replace(hour=max_hour, minute=max_minute) - timedelta(hours=8) - # if rec.replacement_time == 'all': - rec.attendance_id.check_in = rec.attendance_id.check_in.replace(hour=min_hour, minute=min_minute) - timedelta(hours=8) - rec.attendance_id.check_out = rec.attendance_id.check_in.replace(hour=max_hour, minute=max_minute) - timedelta(hours=8) + current_data = rec.attendance_id.current_data + current_datetime = datetime.combine(current_data, datetime.min.time()) + if rec.attendance_id.check_in: + rec.attendance_id.check_in = rec.attendance_id.check_in.replace(hour=min_hour, minute=min_minute) - timedelta(hours=8) + else: + rec.attendance_id.check_in = current_datetime.replace(hour=min_hour, minute=min_minute) - timedelta(hours=8) + if rec.attendance_id.check_out: + rec.attendance_id.check_out = rec.attendance_id.check_in.replace(hour=max_hour, minute=max_minute) - timedelta(hours=8) + else: + rec.attendance_id.check_out = current_datetime.replace(hour=min_hour, minute=min_minute) - timedelta(hours=8) + rec.attendance_id.is_approval = True rec.attendance_id.is_abnormal = False rec.attendance_id.is_no_card = False rec.attendance_id.is_early_card = False rec.attendance_id.is_late_card = False + @api.onchange('is_issues') def _onchange_is_issues(self): if self.is_issues: diff --git a/yuthon_hr_attendance/views/card_approval.xml b/yuthon_hr_attendance/views/card_approval.xml index 9fabf0c16..68e2a50d8 100644 --- a/yuthon_hr_attendance/views/card_approval.xml +++ b/yuthon_hr_attendance/views/card_approval.xml @@ -29,7 +29,7 @@ - +