Merge pull request !12382 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2026-07-09 02:40:31 +00:00
committed by Gitee
2 changed files with 26 additions and 16 deletions
@@ -94,8 +94,8 @@ class SoongWorkflowCommentWizard(models.TransientModel):
@api.onchange('scope_type', 'employee_ids1', 'department_id', 'company_id')
def _onchange_employee_ids1(self):
self.employee_ids = False
if not self.employee_ids1:
self.employee_ids = False
return
filtered_employees = self.employee_ids1
# 范围过滤
@@ -209,6 +209,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
@api.onchange('trans_link_id')
def onchange_trans_employee_ids(self):
for record in self:
# 先清空
record_id = self.env[record.res_model].browse(record.res_id) if record.res_model and record.res_id else None
ctx_links = self.env.context.get('all_workflow_links', [])
valid_links = self.env['trans.link'].browse(ctx_links) if isinstance(ctx_links, (list, tuple)) else ctx_links
+24 -15
View File
@@ -316,21 +316,27 @@ class YuthonCatering(models.Model):
return False
def is_leave(self, current_data, employee):
att_id = self.env['hr.attendance'].search([
leaves = self.env['hr.leave'].search([
('employee_id', '=', employee.id),
('current_data', '=', current_data)
], limit=1)
if not (att_id and att_id.workflow_id and att_id.workflow_id.name == '请假'):
return False
leave_record = self.env[att_id.workflow_id.res_model].browse(att_id.workflow_id.res_id)
if not leave_record:
return False
if not (leave_record.start_date and leave_record.end_date):
return False
total_leave_days = leave_record.days + 1
used_days = (current_data - leave_record.start_date).days + 1
remaining_days = total_leave_days - used_days
return remaining_days >= 0
('state', '=', 'validate'),
])
for leave in leaves:
if leave.date_from.date() <= current_data <= leave.date_to.date():
return True
return False
def is_maternity_leave(self, employee):
"""判断员工当前是否在产假期间"""
today = fields.Date.today()
leaves = self.env['hr.leave'].search([
('employee_id', '=', employee.id),
('state', '=', 'validate'),
('holiday_status_id.name', '=', '产假'),
])
for leave in leaves:
if leave.date_from.date() <= today <= leave.date_to.date():
return True
return False
# 定义定时任务方法,每天九点半发送消息提醒
def cron_send_message(self):
@@ -352,13 +358,16 @@ class YuthonCatering(models.Model):
return
# 判断今天是否为工作日
today = fields.Date.today()
if not self._process_shift_days(today):
if not self._process_shift_days(today) :
# 如果不是工作日,则不发送提醒
return
# 发送通用提醒消息
employees = self._get_active_conf_employees()
for employee in employees:
# 产假期间不发消息
if self.is_maternity_leave(employee):
continue
if employee.user_id: # 确保员工有关联的用户
# 构造跳转URL,格式为 f'https://phone.thtzjt.com/phone/Restaurant/(users_id)
users_id = employee.user_id.id