This commit is contained in:
李鹏宇
2026-03-16 19:54:24 +08:00
+34 -2
View File
@@ -198,7 +198,7 @@ class YuthonCatering(models.Model):
# 补全后自动确认当天所有未确认记录
self.cron_auto_confirm_today()
# 定时任务:每天晙21点把当天未确认的餐饮记录自动改为已确认
# 定时任务:每天晙21点把当天未确认的餐饮记录自动改为已确认并早餐午餐都吃(除外派)
def cron_auto_confirm_today(self):
today = fields.Date.today()
# 检查当天是否有菜单记录,没有则跳过
@@ -210,7 +210,39 @@ class YuthonCatering(models.Model):
('state', '=', 'unconfirmed'),
])
if unconfirmed_records:
unconfirmed_records.write({'state': 'confirmed'})
for record in unconfirmed_records:
if self.is_expatriates(today, record.employee_id):
breakfast = False
lunch = False
else:
breakfast = True
lunch = True
record.write({'state': 'confirmed',
'breakfast': breakfast, 'lunch': lunch})
def is_expatriates(self, current_data, employee):
expat_approval = self.env['expatriation.approval'].search([
('is_effect', '=', False),
('work_end', '=', True),
('expatriates_ids', 'in', [employee.id])
], limit=1)
# 查找有效的返回审批单
back_approval = self.env['back.approval'].search([
('is_void', '=', False),
('work_end', '=', True),
('expatriates_id', '=', employee.id)
], limit=1)
# 3. 外派中:当前时间 >= 外派开始日期 → 属于外派
if expat_approval and expat_approval.start_date:
if current_data >= expat_approval.start_date:
return True
if back_approval and back_approval.end_date:
if current_data >= back_approval.end_date:
return False
# 定义定时任务方法,每天九点半发送消息提醒
def cron_send_message(self):