34 lines
1.6 KiB
Python
34 lines
1.6 KiB
Python
from odoo import api, fields, models, tools
|
|
from odoo.exceptions import ValidationError
|
|
|
|
|
|
class AttendanceIotManagerWizard(models.TransientModel):
|
|
_name = 'attendance.iot.manager.wizard'
|
|
_description = '批量导入考勤用户数据弹窗'
|
|
|
|
attendance_iot_id = fields.Many2one('attendance.iot', string="设备号")
|
|
department_ids = fields.Many2many('hr.department', string='部门范围')
|
|
employee_ids = fields.Many2many('hr.employee', string='人员范围')
|
|
users_role_ids = fields.Many2many('soong.user.role', string='角色范围', domain=[('user_type', '!=', 'lv_role')])
|
|
iot_users_ids = fields.Many2many('res.users', string="人员", compute="compute_iot_users_ids", store=True)
|
|
|
|
@api.depends('department_ids', 'employee_ids', 'users_role_ids')
|
|
def compute_iot_users_ids(self):
|
|
users_role_list = department_users_list = []
|
|
# 部门人员
|
|
for depart in self.department_ids:
|
|
department_users_data = self.env['hr.employee'].search([('department_id', '=', depart.id)])
|
|
department_users_list = [de.user_id.id for de in department_users_data]
|
|
# 人员
|
|
employee_users_list = self.employee_ids.user_id.ids
|
|
# 角色人员
|
|
for user_id in self.users_role_ids:
|
|
department_users_data = self.env['hr.employee'].search([('user_role_id', '=', user_id.id)])
|
|
users_role_list = [ro.user_id.id for ro in department_users_data]
|
|
publish_user_list = department_users_list + employee_users_list + users_role_list
|
|
self.iot_users_ids = [(6, 0, publish_user_list)]
|
|
|
|
def confirm(self):
|
|
pass
|
|
|