!3499 添加功能

Merge pull request !3499 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-06-24 03:07:00 +00:00
committed by Gitee
4 changed files with 16 additions and 7 deletions
+12 -3
View File
@@ -125,8 +125,16 @@ 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.search([('workflow_id', '=', res.workflow_id.id)])
current_user_role_id = record.env.user.employee_id.user_role_id.id
button_ids = record.sudo().workflow_id.node_ids.button_ids.search(
[('workflow_id', '=', record.workflow_id.id)])
# 获取当前用户的主角色和辅助角色ID列表
employee = record.env.user.employee_id
current_user_role_ids = []
if employee.user_role_id:
current_user_role_ids.append(employee.user_role_id.id)
if employee.user_role_ids:
current_user_role_ids.extend(employee.user_role_ids.ids)
for button_id in button_ids:
allowed_role_ids = []
if button_id.users_role_id:
@@ -135,7 +143,8 @@ class SoongWorkflowMixin(models.AbstractModel):
allowed_role_ids.extend(button_id.users_role_group_ids.user_role_ids.ids)
else:
continue
if current_user_role_id in allowed_role_ids:
if current_user_role_ids and any(role_id in allowed_role_ids for role_id in current_user_role_ids):
record.state = button_id.node_id.node_name
return res
@@ -17,7 +17,7 @@ class SoongWorkflowRecord(models.Model):
'|',
('approve_state', '=', 'pending'),
('approve_state', '=', 'start'),
('employee_ids', 'in', [self.env.user.employee_id.id]),
('users_ids', 'in', self.env.user.id),
('reclaim_state', '=', False)
]
return self.search_count(domain)
@@ -122,7 +122,7 @@
<field name="res_model">soong.workflow.record</field>
<field name="view_mode">tree,kanban,search</field>
<field name="context">{'check_employee': 1, 'group_by': 'soong_state'}</field>
<field name="domain">[('employee_ids.user_id', '=', uid), ('reclaim_state', '=', False)]</field>
<field name="domain">[('users_ids', 'in', uid), ('reclaim_state', '=', False)]</field>
<field name="search_view_id" ref="soong_workflow_record_search"/>
</record>
<record id="soong_workflow_hr_employee_action" model="ir.actions.act_window">
@@ -91,8 +91,8 @@ class SalaryComputeWizard(models.Model):
])
employee.salary_date = start_date
employee.salary_year_jin_ids = [(6, 0, self.employee_ids.ids)]
# if existing_payslip:
# raise UserError(f"员工 {employee.name} 在 {start_date} 到 {end_date} 日期范围内已有工资单记录,无法创建新的工资单。")
if existing_payslip:
raise UserError(f"员工 {employee.name} 在 {start_date} 到 {end_date} 日期范围内已有工资单记录,无法创建新的工资单。")
self.env['hr.payslip'].create({
'is_bold': is_bold,
'name': employee.name,