1
This commit is contained in:
@@ -80,44 +80,6 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
for record in self:
|
||||
record.approval_sign_ids = record.log_ids.filtered(lambda r: r.node_btn_name == "2" and r.node_id == record.node_id).done_by.ids
|
||||
|
||||
|
||||
# workflow_approver_ids = fields.One2many('soong.workflow.log', 'w_res_id', string="审批记录",
|
||||
# compute='_compute_workflow_approver_ids')
|
||||
|
||||
# def _compute_workflow_approver_ids(self):
|
||||
# wkf_obj = self.env["soong.workflow"]
|
||||
# for rec in self:
|
||||
# log_ids = []
|
||||
# # Variables
|
||||
# rec_model = rec._name
|
||||
# # Get Workflow
|
||||
# workflow_id = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', True)])
|
||||
# node_ids = workflow_id.node_ids
|
||||
# for node_id in node_ids:
|
||||
# log_obj = self.env["soong.workflow.log"]
|
||||
# record_obj = log_obj.search(
|
||||
# [
|
||||
# ("model", "=", self._name),
|
||||
# ("res_id", "=", self.id),
|
||||
# ("node_id", "=", node_id.id),
|
||||
# ]
|
||||
# )
|
||||
# if not record_obj:
|
||||
# record_obj = log_obj.create(
|
||||
# {
|
||||
# "model": self._name,
|
||||
# "res_id": self.id,
|
||||
# "node_id": node_id.id,
|
||||
# "workflow_id": node_id.workflow_id.id,
|
||||
# "lase_click_date": fields.Datetime.now(),
|
||||
# }
|
||||
# )
|
||||
# log_ids.append(record_obj.id)
|
||||
# if log_ids:
|
||||
# rec.workflow_approver_ids = log_ids
|
||||
# else:
|
||||
# rec.workflow_approver_ids = None
|
||||
|
||||
@api.depends("state")
|
||||
def _compute_workflow_id(self):
|
||||
# Objects
|
||||
@@ -161,52 +123,25 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
def create(self, vals_list):
|
||||
res = super().create(vals_list)
|
||||
for record in res:
|
||||
button_ids = record.sudo().workflow_id.node_ids.button_ids
|
||||
button_ids = record.sudo().workflow_id.node_ids.button_ids.search([('sequence', '=', '1')]).search([('workflow_id', '=', res.workflow_id.id), ('sequence', '=', 1)])
|
||||
for button_id in button_ids:
|
||||
if button_id.users_role_id and record.env.user.employee_id.department_id:
|
||||
# 不自动匹配
|
||||
if not button_id.is_automatic:
|
||||
employee_ids = record.sudo().env['hr.employee'].search(
|
||||
['|', ('user_role_id', '=', button_id.users_role_id.id),
|
||||
('user_role_ids', 'in', button_id.users_role_id.id)])
|
||||
else:
|
||||
# 自动匹配
|
||||
employee_ids = record.sudo().env['hr.employee'].search(
|
||||
['|', ('user_role_id', '=', button_id.users_role_id.id),
|
||||
('user_role_ids', 'in', button_id.users_role_id.id),
|
||||
'|', ('department_id', '=', record.env.user.employee_id.department_id.id), ('department_ids', 'in', record.env.user.employee_id.department_id.id),
|
||||
('yuthon_company', '=', record.env.user.employee_id.yuthon_company)])
|
||||
# 判断当前用户是否是 当前节点的员工
|
||||
if record.env.user.employee_id.id in employee_ids.ids:
|
||||
record.state = button_id.node_id.node_name
|
||||
return res
|
||||
|
||||
def _create_update_logs(self, btn_rec):
|
||||
log_obj = self.env["soong.workflow.log"]
|
||||
# if btn_rec.name in ['退回']:
|
||||
# record_obj = log_obj.search(
|
||||
# [
|
||||
# ("model", "=", self._name),
|
||||
# ("res_id", "=", self.id),
|
||||
# ("node_id", "=", btn_rec.node_id.id),
|
||||
# ("workflow_id", "=", btn_rec.workflow_id.id),
|
||||
# ("node_btn_name", "=", "1")
|
||||
# ], order="lase_click_date DESC", limit=1
|
||||
# )
|
||||
# if not record_obj:
|
||||
# record_obj = log_obj.create(
|
||||
# {
|
||||
# "model": self._name,
|
||||
# "res_id": self.id,
|
||||
# "node_id": btn_rec.node_id.id,
|
||||
# "workflow_id": btn_rec.workflow_id.id,
|
||||
# "node_btn_id": btn_rec.id,
|
||||
# "done_by": self.env.uid,
|
||||
# "node_btn_name": "1",
|
||||
# "lase_click_date": fields.Datetime.now(),
|
||||
# }
|
||||
# )
|
||||
|
||||
if btn_rec.name not in ['转交', '加签', '加签确认', '退回', '收回']:
|
||||
record_obj = log_obj.search(
|
||||
[
|
||||
@@ -219,8 +154,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
], order="lase_click_date DESC", limit=1
|
||||
)
|
||||
if not record_obj:
|
||||
record_obj = log_obj.create(
|
||||
{
|
||||
record_obj = log_obj.create({
|
||||
"model": self._name,
|
||||
"res_id": self.id,
|
||||
"node_id": btn_rec.node_id.id,
|
||||
@@ -229,11 +163,9 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
"done_by": self.env.uid,
|
||||
"node_btn_name": "0",
|
||||
"lase_click_date": fields.Datetime.now(),
|
||||
}
|
||||
)
|
||||
})
|
||||
record_obj.write({"node_btn_id": btn_rec.id, "done_by": self.env.uid, "approval_state": "2"})
|
||||
record_obj = log_obj.search(
|
||||
[
|
||||
record_obj = log_obj.search([
|
||||
("model", "=", self._name),
|
||||
("res_id", "=", self.id),
|
||||
("node_id", "=", btn_rec.node_id.id),
|
||||
|
||||
@@ -62,28 +62,28 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
else:
|
||||
if btn.is_automatic:
|
||||
employee_user_role_id = self.env['hr.employee'].search(
|
||||
[('user_role_id', '=', btn.users_role_id.id),
|
||||
('department_id', '=', record_id.department_id.id)])
|
||||
[('user_role_id', '=', btn.users_role_id.id), ('department_id', '=', record_id.department_id.id)])
|
||||
self.employee_ids = employee_user_role_id
|
||||
else:
|
||||
employee_user_role_ids = self.env['hr.employee'].search(
|
||||
[('user_role_id', '=', btn.users_role_id.id)])
|
||||
employee_user_role_ids = self.env['hr.employee'].search([('user_role_id', '=', btn.users_role_id.id)])
|
||||
self.employee_ids = employee_user_role_ids
|
||||
|
||||
@api.onchange('trans_link_id')
|
||||
def onchange_trans_employee_ids(self):
|
||||
record_id = self.env[self.res_model].search([('id', '=', self.res_id)])
|
||||
for ret in self.trans_link_id:
|
||||
if '分发' in self.trans_link_id.name:
|
||||
if ['分发', '信息管理员'] in self.trans_link_id.name:
|
||||
self.employee_ids = record_id.users_id.employee_id
|
||||
else:
|
||||
workflow_id = self.trans_link_id.node_button_id.workflow_id
|
||||
state_list = ['拟办' if i.node_name == 'start' else i.node_name for i in workflow_id.node_ids]
|
||||
state_list = [i.node_name for i in workflow_id.node_ids]
|
||||
link_users_id = workflow_id.node_ids.search(
|
||||
[('name', '=', self.trans_link_id.name), ('workflow_id', '=', workflow_id.id)]).button_ids[0].users_role_id
|
||||
next_is_automatic = workflow_id.node_ids.search([('name', '=', self.trans_link_id.name), ('workflow_id', '=', workflow_id.id)]).button_ids[0].is_automatic
|
||||
# 不自动匹配
|
||||
employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', link_users_id.id), ('user_role_ids', 'in', link_users_id.id)])
|
||||
employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', link_users_id.id),
|
||||
('user_role_ids', 'in', link_users_id.id),
|
||||
('yuthon_company', '=', record_id.create_uid.employee_id.yuthon_company)])
|
||||
# 自动匹配
|
||||
employee_user_role_id = self.env['hr.employee'].search(
|
||||
['|', ('user_role_id', '=', link_users_id.id), ('user_role_ids', 'in', link_users_id.id),
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
<field name='name'>全部领导日程</field>
|
||||
<field name='res_model'>yuthon.will.task</field>
|
||||
<field name='view_mode'>tree,calendar</field>
|
||||
<field name='domain'>[('user_role_ids.name', 'in', ['董事长', '分管领导', '总经理'])]</field>
|
||||
<field name='domain'>[('user_role_ids.name', 'in', ['董事长', '分管领导', '总经理', '部门副经理', '部门经理', '副总经理'])]</field>
|
||||
<field name="context">{'search_default_next_seven_days': 1, 'search_default_yuthon_company': 1}</field>
|
||||
</record>
|
||||
<record id='view_yuthon_will_task_action3' model='ir.actions.act_window'>
|
||||
|
||||
Reference in New Issue
Block a user