From 8be81d2791655c9ba2788f41a04fa8274e694cd7 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Mon, 17 Mar 2025 17:04:45 +0800
Subject: [PATCH 1/2] =?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_holiday/models/inherit_hr_leave.py | 45 ++++++++++++-------
yuthon_holiday/views/hr_leave_batch.xml | 4 +-
.../views/yuthon_fixes_approval_views.xml | 1 +
.../models/overtime_approval.py | 11 +++++
yuthon_hr_attendance/views/card_approval.xml | 1 +
yuthon_hr_attendance/views/duty_approval.xml | 1 +
yuthon_hr_attendance/views/go_approval.xml | 1 +
.../views/overtime_approval.xml | 7 +--
.../models/yuthon_hr_employee.py | 14 ++++++
.../views/yuthon_hr_employee_views.xml | 26 +++++++++--
10 files changed, 86 insertions(+), 25 deletions(-)
diff --git a/yuthon_holiday/models/inherit_hr_leave.py b/yuthon_holiday/models/inherit_hr_leave.py
index 6e2bd2c4a..b93c8dc79 100644
--- a/yuthon_holiday/models/inherit_hr_leave.py
+++ b/yuthon_holiday/models/inherit_hr_leave.py
@@ -219,6 +219,8 @@ class HolidaysRequestBatch(models.Model):
leave_by_day = fields.Boolean(string='请假单位(天)', default=True)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
+ start_date = fields.Date(string="开始时间")
+ end_date = fields.Date(string="结束时间")
custom_document_ids = fields.Many2many(
string='文件',
comodel_name='ir.attachment',
@@ -246,23 +248,6 @@ class HolidaysRequestBatch(models.Model):
self.leave_ids.action_validate()
self.hour_leave_ids.action_validate()
- @api.onchange('hour_leave_ids', 'leave_ids', 'users_id')
- def _onchange_name(self):
- employee_name = self.users_id.name
- if self.is_day or self.is_hour:
- number_day = 0
- number_hours = 0
- for leave in self.leave_ids:
- if leave.number_of_days_display:
- number_day += leave.number_of_days_display
- for hour_leave in self.hour_leave_ids:
- if hour_leave.number_of_hours_text:
- hours_str = re.search(r'\d+', hour_leave.number_of_hours_text).group()
- number_hours += float(hours_str)
- self.name = f"{employee_name}的休假:{number_day + (number_hours * 0.125)}天"
- else:
- self.name = f'{employee_name}的休假'
-
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
@@ -279,6 +264,32 @@ class HolidaysRequestBatch(models.Model):
raise ValidationError("休假时长必须为 2、4、6 或 8 小时才可以保存!")
return super(HolidaysRequestBatch, self).create(vals_list)
+ @api.onchange('leave_ids', 'hour_leave_ids', 'employee_id')
+ def _onchange_leave_dates(self):
+ all_dates = []
+ for leave in self.leave_ids:
+ if leave.request_date_from:
+ all_dates.append(leave.request_date_from)
+ if leave.request_date_to:
+ all_dates.append(leave.request_date_to)
+ for hour_leave in self.hour_leave_ids:
+ if hour_leave.request_date_from:
+ all_dates.append(hour_leave.request_date_from)
+ if all_dates:
+ self.start_date = min(all_dates)
+ self.end_date = max(all_dates)
+ else:
+ self.start_date = False
+ self.end_date = False
+
+ if self.employee_id and self.start_date and self.end_date:
+ start = datetime.strptime(str(self.start_date), '%Y-%m-%d')
+ end = datetime.strptime(str(self.end_date), '%Y-%m-%d')
+ date_diff = (end - start).days
+ self.name = f"{self.employee_id.name}的休假{date_diff}天"
+ else:
+ self.name = f"{self.employee_id.name}"
+
class HrLeaveLine(models.Model):
_name = 'hr.leave.line'
diff --git a/yuthon_holiday/views/hr_leave_batch.xml b/yuthon_holiday/views/hr_leave_batch.xml
index 6c18debb9..87d5b7b40 100644
--- a/yuthon_holiday/views/hr_leave_batch.xml
+++ b/yuthon_holiday/views/hr_leave_batch.xml
@@ -57,6 +57,8 @@
+
+
@@ -210,8 +212,8 @@
hr.leave.batch
tree,form
{}
+ [('users_id', '=', uid)]
- []