From 9150eb38b5c698ff8dad7dfeae26caf2b4f7ed41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Wed, 27 Nov 2024 14:27:28 +0800 Subject: [PATCH] pengyuthon wechat --- yuthon_will_task/models/yuthon_will_task.py | 30 ++++++++++++--------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/yuthon_will_task/models/yuthon_will_task.py b/yuthon_will_task/models/yuthon_will_task.py index b26ff2d3c..a3c643e49 100644 --- a/yuthon_will_task/models/yuthon_will_task.py +++ b/yuthon_will_task/models/yuthon_will_task.py @@ -3,6 +3,8 @@ import datetime from datetime import datetime, timedelta, time from odoo.exceptions import UserError +now = datetime.now() + class YuthonWillTask(models.Model): _name = 'yuthon.will.task' @@ -19,22 +21,26 @@ class YuthonWillTask(models.Model): employee_ids = fields.Many2many('hr.employee', string='人员', default=lambda self: self.env.user.employee_id) task_time_ids = fields.Many2many('yuthon.task.time', string='提醒') start_time = fields.Datetime(string='开始时间', default=fields.Date.today()) - end_time = fields.Datetime(string='结束时间', default=lambda self: datetime.combine(datetime.now().date(), time(11, 0, 0))) + end_time = fields.Datetime(string='结束时间', default=lambda self: datetime.combine(now.date(), time(11, 0, 0))) def will_task_time(self): tasks = self.env['yuthon.will.task'].search([]) for task in tasks: - for task_time in task.task_time_ids: - duration = self._compute_duration(task_time) - day_now = (datetime.now() + duration).day - day_start = task.start_time.day - hour_now = (datetime.now() + duration).hour - hour_start = task.start_time.hour - min_now = (datetime.now() + duration).minute - min_start = task.start_time.minute - if day_now == day_start and hour_now == hour_start and min_now == min_start: - task.add_comment() - break + if now <= task.start_time: + if task.task_time_ids: + for task_time in task.task_time_ids: + duration = self._compute_duration(task_time) + day_now = (now + duration).day + day_start = task.start_time.day + hour_now = (now + duration).hour + hour_start = task.start_time.hour + min_now = (now + duration).minute + min_start = task.start_time.minute + if day_now == day_start and hour_now == hour_start and min_now == min_start: + task.add_comment() + else: + if now.day == task.start_time.day and now.hour == task.start_time.hour and now.minute == task.start_time.minute: + task.add_comment() def _compute_duration(self, task_time): if task_time.task_unit == 'min':