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)]
- []