@@ -217,34 +217,30 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
if record.node_btn_id.employee_ids and record.node_btn_id.is_carbon_copy:
|
||||
record.circulated_employee_ids = record.node_btn_id.employee_ids
|
||||
|
||||
if not record_id or not record_id.workflow_id:
|
||||
continue
|
||||
# 排除规则:存在流程退回 直接放行不限制
|
||||
has_exclude_log = record_id.log_ids.filtered(lambda l: l.node_btn_name == '1')
|
||||
if has_exclude_log:
|
||||
continue
|
||||
# 1. 拿到所有必经节点
|
||||
mandatory_nodes = record_id.workflow_id.node_ids.filtered(lambda n: n.is_mandatory_node)
|
||||
if not mandatory_nodes:
|
||||
return
|
||||
# 取第一个必经节点
|
||||
first_mandatory_node = mandatory_nodes[0]
|
||||
# 2. 只允许选择:顺序 <= 必经节点的链接
|
||||
allow_links = self.env['trans.link']
|
||||
for link in valid_links:
|
||||
link_node = record_id.workflow_id.node_ids.search([
|
||||
('name', '=', link.name),
|
||||
('workflow_id', '=', record_id.workflow_id.id)
|
||||
], limit=1)
|
||||
if link_node and link_node.sequence <= first_mandatory_node.sequence:
|
||||
allow_links |= link
|
||||
|
||||
if record.trans_link_id and record.trans_link_id not in allow_links:
|
||||
record.trans_link_id = False
|
||||
raise UserError(f"节点【{first_mandatory_node.name}】是必经节点,不可选择必经节点之后的流程节点!")
|
||||
|
||||
if not record.trans_link_id:
|
||||
continue
|
||||
|
||||
if record_id and record_id.workflow_id:
|
||||
has_exclude_log = record_id.log_ids.filtered(lambda l: l.node_btn_name == '1')
|
||||
if not has_exclude_log:
|
||||
mandatory_nodes = record_id.workflow_id.node_ids.filtered(lambda n: n.is_mandatory_node)
|
||||
if mandatory_nodes:
|
||||
first_mandatory_node = mandatory_nodes[0]
|
||||
allow_links = self.env['trans.link']
|
||||
for link in valid_links:
|
||||
link_node = record_id.workflow_id.node_ids.search([
|
||||
('name', '=', link.name),
|
||||
('workflow_id', '=', record_id.workflow_id.id)
|
||||
], limit=1)
|
||||
if link_node and link_node.sequence <= first_mandatory_node.sequence:
|
||||
allow_links |= link
|
||||
|
||||
# 只做判断:选了非法的才报错
|
||||
if record.trans_link_id and record.trans_link_id not in allow_links:
|
||||
record.trans_link_id = False
|
||||
raise UserError(
|
||||
f"节点【{first_mandatory_node.name}】是必经节点,不可选择必经节点之后的流程节点!")
|
||||
|
||||
for link in record.trans_link_id:
|
||||
employee_user_role_ids = self.env['hr.employee']
|
||||
if link.name == '印章管理员':
|
||||
|
||||
Reference in New Issue
Block a user