Merge branch 'dev' of https://gitee.com/jinan-pengyusen-data/gzth into dev_wang
This commit is contained in:
@@ -585,6 +585,60 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
current_user = self.env.user
|
||||
current_datetime = fields.Datetime.now()
|
||||
is_admin = current_user.has_group('base.group_system')
|
||||
# 归档判断
|
||||
last_log = record_id.log_ids[-1] if record_id.log_ids else None
|
||||
if last_log:
|
||||
same_name_logs = record_id.log_ids.filtered(
|
||||
lambda log: log.name == last_log.name and log.node_btn_name == '4' and log.id != last_log.id
|
||||
)
|
||||
all_approved = all(log.approval_state in ['2', '3'] for log in same_name_logs) or not same_name_logs
|
||||
if all_approved:
|
||||
workflow_record = self.env['soong.workflow.record'].search([('code', '=', record_id.code)],
|
||||
limit=1)
|
||||
has_archive_btn = any(btn_name.name == '归档' for btn_name in self.node_btn_id.node_id.button_ids)
|
||||
if has_archive_btn:
|
||||
log_id = record_id.log_ids.filtered(lambda l: l.name == '归档')
|
||||
employee_id = self.env['hr.employee'].sudo().search(
|
||||
[('user_id', '=', record_id.log_ids[0].done_by.id)], limit=1)
|
||||
if workflow_record:
|
||||
workflow_record.write({
|
||||
'approve_state': 'end',
|
||||
'employee_ids': [(6, 0, [employee_id.id])],
|
||||
'soong_state': 'to_active',
|
||||
'node_id': False,
|
||||
})
|
||||
if not log_id:
|
||||
self.env["soong.workflow.log"].create({
|
||||
'name': '归档',
|
||||
"code": self.code,
|
||||
"model": self.res_model,
|
||||
"res_id": self.res_id,
|
||||
"workflow_id": self.node_btn_id.workflow_id.id,
|
||||
"done_by": record_id.log_ids[0].done_by.id,
|
||||
"approval_state": "0",
|
||||
"node_btn_id": self.node_btn_id.id,
|
||||
})
|
||||
is_work_remind = True
|
||||
else:
|
||||
log_id.write({
|
||||
'document_ids': [(6, 0, self.document_ids.ids)],
|
||||
"approval_state": "2",
|
||||
'lase_click_date': fields.Datetime.now(),
|
||||
})
|
||||
workflow_record.write({
|
||||
'soong_state': 'active',
|
||||
'employee_ids': False,
|
||||
})
|
||||
else:
|
||||
if workflow_record:
|
||||
workflow_record.sudo().write({
|
||||
'approve_state': 'end',
|
||||
'employee_ids': False,
|
||||
'node_id': False,
|
||||
'soong_state': 'done',
|
||||
})
|
||||
record_id.work_end = True
|
||||
|
||||
if is_admin:
|
||||
user_log = record_id.log_ids.filtered(
|
||||
lambda log: log.done_by == current_user and log.node_btn_name != '1' and log.approval_state == '0'
|
||||
@@ -679,58 +733,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
title=record_id._description + "传阅/抄送",
|
||||
description=description, url=url,
|
||||
btntxt="查看详情")
|
||||
# if not record_id.log_ids2.search([('approval_state', '=', '0')]) or record_id.log_ids2:
|
||||
last_log = record_id.log_ids[-1] if record_id.log_ids else None
|
||||
if last_log:
|
||||
same_name_logs = record_id.log_ids.filtered(
|
||||
lambda log: log.name == last_log.name and log.node_btn_name == '4' and log.id != last_log.id
|
||||
)
|
||||
all_approved = all(log.approval_state in ['2', '3'] for log in same_name_logs) or not same_name_logs
|
||||
if all_approved:
|
||||
workflow_record = self.env['soong.workflow.record'].search([('code', '=', record_id.code)],
|
||||
limit=1)
|
||||
has_archive_btn = any(btn_name.name == '归档' for btn_name in self.node_btn_id.node_id.button_ids)
|
||||
if has_archive_btn:
|
||||
log_id = record_id.log_ids.filtered(lambda l: l.name == '归档')
|
||||
employee_id = self.env['hr.employee'].sudo().search([('user_id', '=', record_id.log_ids[0].done_by.id)], limit=1)
|
||||
if workflow_record:
|
||||
workflow_record.write({
|
||||
'approve_state': 'end',
|
||||
'employee_ids': [(6, 0, [employee_id.id])],
|
||||
'soong_state': 'to_active',
|
||||
'node_id': False,
|
||||
})
|
||||
if not log_id:
|
||||
self.env["soong.workflow.log"].create({
|
||||
'name': '归档',
|
||||
"code": self.code,
|
||||
"model": self.res_model,
|
||||
"res_id": self.res_id,
|
||||
"workflow_id": self.node_btn_id.workflow_id.id,
|
||||
"done_by": record_id.log_ids[0].done_by.id,
|
||||
"approval_state": "0",
|
||||
"node_btn_id": self.node_btn_id.id,
|
||||
})
|
||||
is_work_remind = True
|
||||
else:
|
||||
log_id.write({
|
||||
'document_ids': [(6, 0, self.document_ids.ids)],
|
||||
"approval_state": "2",
|
||||
'lase_click_date': fields.Datetime.now(),
|
||||
})
|
||||
workflow_record.write({
|
||||
'soong_state': 'active',
|
||||
'employee_ids': False,
|
||||
})
|
||||
else:
|
||||
if workflow_record:
|
||||
workflow_record.sudo().write({
|
||||
'approve_state': 'end',
|
||||
'employee_ids': False,
|
||||
'node_id': False,
|
||||
'soong_state': 'done',
|
||||
})
|
||||
record_id.work_end = True
|
||||
|
||||
# 给申请人发消息
|
||||
if is_work_remind:
|
||||
biz_record = self.env[self.res_model].browse(self.res_id)
|
||||
|
||||
@@ -79,6 +79,8 @@ class CustomerPortal(portal.CustomerPortal):
|
||||
num = float(value or 0) * multiply
|
||||
if num == 0:
|
||||
return "0"
|
||||
if unit == "小时":
|
||||
return f"{round(num, 1)}{unit}"
|
||||
return f"{num}{unit}"
|
||||
|
||||
data = {
|
||||
|
||||
Reference in New Issue
Block a user