@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user