@@ -320,8 +320,8 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
record_obj = self.env["soong.workflow.record"].search([("res_model", "=", rec._name), ("res_id", "=", rec.id)])
|
||||
record_id = self.env[rec._name].search([('id', '=', rec.id)])
|
||||
current_user_id = self.env.user.id
|
||||
button_ids = self.workflow_id.node_ids.search([('node_name', '=', self.state), ('workflow_id', '=', self.workflow_id.id)]).button_ids
|
||||
if self.state in ['申请人', 'start', '拟办']:
|
||||
# button_ids = self.workflow_id.node_ids.search([('node_name', '=', self.state), ('workflow_id', '=', self.workflow_id.id)]).button_ids
|
||||
if self.state in ['申请人', '拟办']:
|
||||
if not record_obj:
|
||||
self.env["soong.workflow.record"].create({
|
||||
"code": record_id.code,
|
||||
@@ -333,22 +333,22 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
"users_ids": [(4, current_user_id)],
|
||||
"employee_ids": self.env.user.employee_id,
|
||||
})
|
||||
elif self.state not in ['end']:
|
||||
if button_ids:
|
||||
self_state = button_ids[0]
|
||||
else:
|
||||
raise UserError('请配置节点按钮')
|
||||
employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', self_state.users_role_id.id),
|
||||
('user_role_ids', 'in', self_state.users_role_id.id)])
|
||||
employee_user_role_id = self.env['hr.employee'].search(['|', ('user_role_id', '=', self_state.users_role_id.id),
|
||||
('user_role_ids', 'in', self_state.users_role_id.id), '|',
|
||||
('department_id', '=', self.department_id.id),
|
||||
('department_ids', 'in', self.department_id.id)])
|
||||
employee_ids = employee_user_role_ids if not self_state.is_automatic else employee_user_role_id
|
||||
user_ids_list = []
|
||||
for employee in employee_ids:
|
||||
if employee.user_id:
|
||||
user_ids_list.append((4, employee.user_id.id))
|
||||
# elif self.state not in ['end']:
|
||||
# if button_ids:
|
||||
# self_state = button_ids[0]
|
||||
# else:
|
||||
# raise UserError('请配置节点按钮')
|
||||
# employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', self_state.users_role_id.id),
|
||||
# ('user_role_ids', 'in', self_state.users_role_id.id)])
|
||||
# employee_user_role_id = self.env['hr.employee'].search(['|', ('user_role_id', '=', self_state.users_role_id.id),
|
||||
# ('user_role_ids', 'in', self_state.users_role_id.id), '|',
|
||||
# ('department_id', '=', self.department_id.id),
|
||||
# ('department_ids', 'in', self.department_id.id)])
|
||||
# employee_ids = employee_user_role_ids if not self_state.is_automatic else employee_user_role_id
|
||||
# user_ids_list = []
|
||||
# for employee in employee_ids:
|
||||
# if employee.user_id:
|
||||
# user_ids_list.append((4, employee.user_id.id))
|
||||
if not record_obj:
|
||||
record_obj = self.env["soong.workflow.record"].create({
|
||||
"res_model": rec._name,
|
||||
@@ -357,13 +357,13 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
"node_id": rec.node_id.id,
|
||||
"done_by": self.env.uid,
|
||||
"users_ids": [(4, current_user_id)],
|
||||
"employee_ids": self.env.user.employee_id,
|
||||
# "employee_ids": self.env.user.employee_id,
|
||||
})
|
||||
record_obj.update({"workflow_id": rec.workflow_id.id,
|
||||
"node_id": rec.node_id.id,
|
||||
"done_by": self.env.uid,
|
||||
"users_ids": user_ids_list,
|
||||
"employee_ids": employee_ids.ids,
|
||||
# "users_ids": user_ids_list,
|
||||
# "employee_ids": employee_ids.ids,
|
||||
})
|
||||
|
||||
def unlink(self):
|
||||
|
||||
@@ -137,6 +137,9 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
"done_by": self.employee_ids.user_id.id,
|
||||
"node_btn_name": "0",
|
||||
})
|
||||
workflow_record_id = self.env['soong.workflow.record'].search([('code', '=', record_id.code)])
|
||||
workflow_record_id.users_ids = [(4, self.employee_ids.user_id.id)]
|
||||
workflow_record_id.employee_ids = self.employee_ids
|
||||
record_id.write({'state': self.trans_link_id.name})
|
||||
# 抄送传阅日志
|
||||
if self_node_id.is_carbon_copy:
|
||||
@@ -173,7 +176,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
return self.node_btn_id.with_context(cx).run()
|
||||
if self.node_btn_name == '退回':
|
||||
record_id.write({'state': self.return_link_id.name})
|
||||
next_node_id = record_id.workflow_id.link_ids.search([('name', '=', self.return_link_id.name), ('workflow_id', '=', record_id.workflow_id.id)])
|
||||
next_node_id = record_id.workflow_id.node_ids.search([('name', '=', self.return_link_id.name), ('workflow_id', '=', record_id.workflow_id.id)])
|
||||
for next_link in record_id.workflow_id.link_ids:
|
||||
if next_link.name.split('-> ')[0].strip() == self.return_link_id.name.strip():
|
||||
next_node_id = next_link.node_from
|
||||
@@ -181,16 +184,18 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
"lase_click_date": fields.Datetime.now(),
|
||||
"comment": self.comment_note_id.name,
|
||||
"node_btn_name": "1"})
|
||||
if not self.sudo().env["soong.workflow.log"].search([('node_id', '=', next_node_id.id)]):
|
||||
self.sudo().env["soong.workflow.log"].create({
|
||||
"model": self.res_model,
|
||||
"res_id": self.res_id,
|
||||
"node_id": next_node_id.id,
|
||||
"workflow_id": self.node_btn_id.workflow_id.id,
|
||||
"done_by": self.employee_ids[0].user_id.id,
|
||||
"approval_state": "0",
|
||||
"node_btn_id": self.node_btn_id.id,
|
||||
})
|
||||
# if not self.sudo().env["soong.workflow.log"].search([('node_id', '=', next_node_id.id)]):
|
||||
self.sudo().env["soong.workflow.log"].create({
|
||||
"model": self.res_model,
|
||||
"res_id": self.res_id,
|
||||
"node_id": next_node_id.id,
|
||||
"workflow_id": self.node_btn_id.workflow_id.id,
|
||||
"done_by": self.employee_ids[0].user_id.id,
|
||||
"approval_state": "0",
|
||||
"node_btn_id": self.node_btn_id.id,
|
||||
})
|
||||
workflow_record_id = self.env['soong.workflow.record'].search([('code', '=', record_id.code)])
|
||||
workflow_record_id.employee_ids = self.employee_ids
|
||||
return self.node_btn_id.with_context(cx).run()
|
||||
if self.node_btn_name == '结束':
|
||||
record_id.log_ids[-1].write({"comment": self.comment_note_id.name,
|
||||
|
||||
Reference in New Issue
Block a user