+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
+
-
-
-
+
+
-
+
@@ -69,10 +90,11 @@
context="{'employee_id': employee_id, 'default_date_from': start_time, 'default_date_to': end_time}"
options="{'no_create': True, 'no_open': True, 'request_type': 'leave'}"
/>
-
-
-
-
+
+
+
+
+
From 77a38900ba169d4b787896488050d5259109fbda Mon Sep 17 00:00:00 2001
From: zhouzhou <123@qq.com>
Date: Sat, 14 Dec 2024 16:26:55 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
yuthon_hr_attendance/models/go_approval.py | 3 ++-
yuthon_hr_attendance/models/hr_attendance.py | 10 ++++++----
yuthon_hr_attendance/models/overtime_approval.py | 10 ----------
yuthon_hr_attendance/views/go_approval.xml | 3 ++-
yuthon_hr_attendance/views/overtime_approval.xml | 10 ++++------
.../views/yuthon_special_approval_views.xml | 2 +-
6 files changed, 15 insertions(+), 23 deletions(-)
diff --git a/yuthon_hr_attendance/models/go_approval.py b/yuthon_hr_attendance/models/go_approval.py
index 1878728b9..ce97c28e0 100644
--- a/yuthon_hr_attendance/models/go_approval.py
+++ b/yuthon_hr_attendance/models/go_approval.py
@@ -21,8 +21,9 @@ class GoApprovals(models.Model):
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
reason_application = fields.Char(string="事由")
is_issues = fields.Boolean(string='是否上会')
- employee_ids = fields.Many2many('hr.employee', string="外出人", default=lambda self: self.env['hr.employee'].search([('user_id', '=', self.env.uid)]))
+ employee_ids = fields.Many2many('hr.employee', string="外出人", default=lambda self: self.env['hr.employee'].search([('user_id', '=', self.env.uid)]))
documents_ids = fields.Many2many('ir.attachment', string="附件")
+ details = fields.Text(string="外出说明", default="1.可通过填写天数和小时,直接获得结束时间\n 2.一份外出单,可同时选择多人一次审批")
related_issues_id = fields.Many2one('issue.library', string="关联议题")
date_start = fields.Datetime(string="开始时间", default=fields.Datetime.now)
date_end = fields.Datetime(string="结束时间")
diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py
index 422b1a502..6f63bd5f3 100644
--- a/yuthon_hr_attendance/models/hr_attendance.py
+++ b/yuthon_hr_attendance/models/hr_attendance.py
@@ -286,12 +286,14 @@ class HrAttendance(models.Model):
self.card_out_comment(resource.employee_id)
def card_in_comment(self, employee_id):
- data = "您还有10分钟上班,记得打卡"
- self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
+ print('测试')
+ # data = "您还有10分钟上班,记得打卡"
+ # self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
def card_out_comment(self, employee_id):
- data = "下班时间到了,记得打卡"
- self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
+ print('测试')
+ # data = "下班时间到了,记得打卡"
+ # self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
diff --git a/yuthon_hr_attendance/models/overtime_approval.py b/yuthon_hr_attendance/models/overtime_approval.py
index 81bac362c..5797344ca 100644
--- a/yuthon_hr_attendance/models/overtime_approval.py
+++ b/yuthon_hr_attendance/models/overtime_approval.py
@@ -26,7 +26,6 @@ class OvertimeApprovals(models.Model):
overtime_hours = fields.Float(string="本月加班时长")
start_time = fields.Datetime(string="开始时间")
end_time = fields.Datetime(string="结束时间")
- hours = fields.Float(string="加班时长", compute="_compute_hours")
type_overtime = fields.Selection([('work', '工作日加班'), ('weekend', '周末加班'), ('holiday', '节假日加班')],
string="加班类型", compute="_compute_overtime_type")
@@ -113,15 +112,6 @@ class OvertimeApprovals(models.Model):
else:
rec.name = f"{rec.users_id.name}加班{rec.duration}小时"
- @api.depends('start_time', 'end_time')
- def _compute_hours(self):
- for record in self:
- if record.start_time and record.end_time:
- delta = record.end_time - record.start_time
- record.hours = delta.total_seconds() / 3600
- else:
- record.hours = 0
-
@api.depends('start_time', 'end_time')
def _compute_overtime_type(self):
for record in self:
diff --git a/yuthon_hr_attendance/views/go_approval.xml b/yuthon_hr_attendance/views/go_approval.xml
index fee147c00..d09299c5f 100644
--- a/yuthon_hr_attendance/views/go_approval.xml
+++ b/yuthon_hr_attendance/views/go_approval.xml
@@ -32,9 +32,10 @@
+
+
-
diff --git a/yuthon_hr_attendance/views/overtime_approval.xml b/yuthon_hr_attendance/views/overtime_approval.xml
index b9c380f8f..f431ce9ca 100644
--- a/yuthon_hr_attendance/views/overtime_approval.xml
+++ b/yuthon_hr_attendance/views/overtime_approval.xml
@@ -30,19 +30,17 @@
-
+
+
+
-
-
+
-
-
-
diff --git a/yuthon_hr_attendance/views/yuthon_special_approval_views.xml b/yuthon_hr_attendance/views/yuthon_special_approval_views.xml
index 9adfbc130..b5dba1f4d 100644
--- a/yuthon_hr_attendance/views/yuthon_special_approval_views.xml
+++ b/yuthon_hr_attendance/views/yuthon_special_approval_views.xml
@@ -24,7 +24,7 @@
-
+
From 637fc11718f9e488cf9b52224bc83933dc732aff Mon Sep 17 00:00:00 2001
From: zhouzhou <123@qq.com>
Date: Sat, 14 Dec 2024 17:00:44 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
yuthon_hr_attendance/models/hr_attendance.py | 44 +++++++-------------
1 file changed, 14 insertions(+), 30 deletions(-)
diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py
index 6f63bd5f3..e5bf13dd4 100644
--- a/yuthon_hr_attendance/models/hr_attendance.py
+++ b/yuthon_hr_attendance/models/hr_attendance.py
@@ -260,40 +260,24 @@ class HrAttendance(models.Model):
('start_datetime', '>=', today.strftime('%Y-%m-%d 00:00:00')),
('start_datetime', '<', tomorrow.strftime('%Y-%m-%d 00:00:00')),
])
- for slot in today_slots_id:
- name = slot.template_id.planning_name
- now = datetime.now()+timedelta(hours=8)
- department_id_name = slot.template_id.department_id.name
- resource = self.env['resource.resource'].browse(resource_id)
- if department_id_name == '工程部' and name in ('白班', '中值夜班'):
- if now <= slot.start_datetime + timedelta(hours=8):
- self.card_in_comment(resource.employee_id)
- elif now >= slot.end_datetime + timedelta(hours=8):
- self.card_out_comment(resource.employee_id)
- elif department_id_name == '保安部' and name in ('白班', '中班', '夜班'):
- _logger.info("判断前now:{}---start:{}".format(now+ timedelta(hours=8), slot.start_datetime + timedelta(hours=8)))
- if now <= slot.start_datetime + timedelta(hours=8):
- _logger.info("判断后now:{}---start:{}".format(now+ timedelta(hours=8), slot.start_datetime + timedelta(hours=8)))
- self.card_in_comment(resource.employee_id)
- elif now >= slot.end_datetime + timedelta(hours=8):
- self.card_out_comment(resource.employee_id)
- elif department_id_name == '联安粮库' and name in ('粮库白班', '粮库值班'):
- _logger.info("判断前now:{}---start:{}".format(now, slot.start_datetime + timedelta(hours=8)))
- if now <= slot.start_datetime + timedelta(hours=8):
- _logger.info("判断后now:{}---start:{}".format(now, slot.start_datetime + timedelta(hours=8)))
- self.card_in_comment(resource.employee_id)
- elif now >= slot.end_datetime + timedelta(hours=8):
- self.card_out_comment(resource.employee_id)
+ now = datetime.now()+timedelta(hours=8)
+ strat_time = today_slots_id.start_datetime + timedelta(hours=8)
+ end_time = today_slots_id.end_datetime + timedelta(hours=8)
+ resource = self.env['resource.resource'].browse(resource_id)
+ _logger.info("判断前now:{}---start:{}".format(now + timedelta(hours=8),today_slots_id.start_datetime + timedelta(hours=8)))
+ if now <= strat_time:
+ _logger.info("判断后now:{}---start:{}".format(now + timedelta(hours=8),today_slots_id.start_datetime + timedelta(hours=8)))
+ self.card_in_comment(resource.employee_id)
+ elif now >= end_time:
+ self.card_out_comment(resource.employee_id)
def card_in_comment(self, employee_id):
- print('测试')
- # data = "您还有10分钟上班,记得打卡"
- # self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
+ data = "您还有10分钟上班,记得打卡"
+ self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
def card_out_comment(self, employee_id):
- print('测试')
- # data = "下班时间到了,记得打卡"
- # self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
+ data = "下班时间到了,记得打卡"
+ self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)