添加功能

This commit is contained in:
李鹏宇
2026-09-02 15:29:38 +08:00
parent cc1cb69233
commit 0b40fc154d
@@ -2999,15 +2999,26 @@ class YuthonVacationReports(models.Model):
if not user:
return False, ''
# 查找当月考勤分组下 users_ids 包含当前用户的未办结流程
pending_records = self.env['soong.workflow.record'].sudo().search([
('users_ids', 'in', user.id),
# 基础域:当月考勤分组下未办结流程
base_domain = [
('approvals_group_id.name', '=', '考勤'),
('reclaim_state', '=', False),
('approve_state', '=', 'pending'),
('workflow_happen_date', '>=', month_start),
('workflow_happen_date', '<=', month_end),
])
]
# 查找当月考勤分组下 users_ids 包含当前用户的未办结流程
pending_records = self.env['soong.workflow.record'].sudo().search([
('users_ids', 'in', user.id),
] + base_domain)
# 加班特殊处理:加班人(employee_ids many2many)并不写入 record.users_ids,
# 仅按 users_ids 搜索会漏掉"本人是加班人但不在 users_ids 中"的加班流程,
# 导致该加班人也能确认考勤。故额外捞出当月"加班"流程,下方按加班人字段判定当事人。
overtime_records = self.env['soong.workflow.record'].sudo().search([
('workflow_id.name', '=', '加班'),
] + base_domain)
pending_records |= overtime_records # 合并并去重(recordset 自动去重)
pending_codes = []
for record in pending_records:
workflow_name = record.workflow_id.name