@@ -90,31 +90,6 @@ class RoomBooking(models.Model):
|
||||
employee_list = [rec.name for rec in i.room_users_ids]
|
||||
i.room_users_names = ','.join(employee_list)
|
||||
|
||||
@api.onchange('meeting_type_id')
|
||||
def _onchange_meeting_type_id(self):
|
||||
if self.meeting_type_id:
|
||||
host_role_id = self.meeting_type_id.host_id.id
|
||||
host_employee = self.env['hr.employee'].search([
|
||||
'|',
|
||||
('user_role_ids', 'in', host_role_id),
|
||||
('user_role_id', '=', host_role_id),
|
||||
('company_id', '=', self.meeting_type_id.company_id.id)
|
||||
], limit=1)
|
||||
room_user_role_ids = self.meeting_type_id.room_users_ids.ids
|
||||
room_employees = self.env['hr.employee'].search([
|
||||
'|',
|
||||
('user_role_ids', 'in', room_user_role_ids),
|
||||
('user_role_id', 'in', room_user_role_ids),
|
||||
('id', '!=', host_employee.id),
|
||||
('company_id', '=', self.meeting_type_id.company_id.id)
|
||||
])
|
||||
room_user_ids = room_employees.mapped('user_id.id')
|
||||
self.host = host_employee.id
|
||||
self.room_users_ids = [(6, 0, room_user_ids)]
|
||||
else:
|
||||
self.room_users_ids = [(5, 0, 0)]
|
||||
self.host = False
|
||||
|
||||
# @api.model_create_multi
|
||||
# def create(self, vals_list):
|
||||
# bookings = super(RoomBooking, self).create(vals_list)
|
||||
|
||||
@@ -13,6 +13,7 @@ class RoomMeetingType(models.Model):
|
||||
room_users_ids = fields.Many2many('soong.user.role', string="出席人员", store=True)
|
||||
host_user_id = fields.Many2one('res.users', string="主持人")
|
||||
users_ids = fields.Many2many('res.users', string="出席人员")
|
||||
attendees_ids = fields.Many2many('hr.employee', string="列席人员")
|
||||
company_id = fields.Many2one('res.company', string="公司", index=True, default=lambda self: self.env.company)
|
||||
|
||||
@api.depends('host_id', 'room_users_ids')
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<field name="name" class="list_room_width2"/>
|
||||
<field name="host_id" class="list_room_width2"/>
|
||||
<field name="room_users_ids" widget="many2many_tags"/>
|
||||
<field name="attendees_ids" widget="many2many_tags"/>
|
||||
<field name="host_user_id" column_invisible="1"/>
|
||||
<field name="users_ids" widget="many2many_tags" column_invisible="1"/>
|
||||
<field name="company_id"/>
|
||||
|
||||
@@ -501,13 +501,10 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
|
||||
# 检查是否为并审模式
|
||||
if self.approval_concatenation == 'bing': # 并审模式考勤异常
|
||||
# 获取当前节点应该审批的所有员工
|
||||
expected_employees = self.employee_ids
|
||||
# 就只是一个验证,应该让他不创建就好了,不用提示跳过就行
|
||||
# if record_id.log_ids2:
|
||||
# log_employee_id = record_id.log_ids2.mapped('done_by').employee_id.id
|
||||
# if log_employee_id in expected_employees.ids:
|
||||
# raise UserError('该员工已传阅,请勿重复转交')
|
||||
if record_id.log_ids2:
|
||||
log_employee_ids = record_id.log_ids2.mapped('done_by.employee_id.id')
|
||||
self.employee_ids = expected_employees.filtered(lambda emp: emp.id not in log_employee_ids)
|
||||
|
||||
# 查找下一个节点
|
||||
next_node_id = record_id.workflow_id.node_ids.search([
|
||||
@@ -525,7 +522,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
all_completed = len(completed_logs) == 0
|
||||
next_node_log_records = self.env["soong.workflow.log"]
|
||||
if all_completed:
|
||||
for employee in expected_employees:
|
||||
for employee in self.employee_ids:
|
||||
# 检查该员工在下一节点是否已有记录
|
||||
next_node_employee_log = self.sudo().env["soong.workflow.log"].search([
|
||||
("model", "=", self.res_model),
|
||||
|
||||
@@ -14,6 +14,39 @@ class RoomBooking(models.Model):
|
||||
is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company',
|
||||
search='_search_part_of_company')
|
||||
|
||||
@api.onchange('meeting_type_id')
|
||||
def _onchange_meeting_type_id(self):
|
||||
# 原有逻辑:设置主持人、会议室人员
|
||||
if self.meeting_type_id:
|
||||
host_role_id = self.meeting_type_id.host_id.id
|
||||
host_employee = self.env['hr.employee'].search([
|
||||
'|',
|
||||
('user_role_ids', 'in', host_role_id),
|
||||
('user_role_id', '=', host_role_id),
|
||||
('company_id', '=', self.meeting_type_id.company_id.id)
|
||||
], limit=1)
|
||||
room_user_role_ids = self.meeting_type_id.room_users_ids.ids
|
||||
room_employees = self.env['hr.employee'].search([
|
||||
'|',
|
||||
('user_role_ids', 'in', room_user_role_ids),
|
||||
('user_role_id', 'in', room_user_role_ids),
|
||||
('id', '!=', host_employee.id if host_employee else False),
|
||||
('company_id', '=', self.meeting_type_id.company_id.id)
|
||||
])
|
||||
room_user_ids = room_employees.mapped('user_id.id')
|
||||
self.host = host_employee.id
|
||||
self.room_users_ids = [(6, 0, room_user_ids)]
|
||||
template_attendee_ids = self.meeting_type_id.attendees_ids.ids
|
||||
if self.issue_meeting_line_ids and template_attendee_ids:
|
||||
for line in self.issue_meeting_line_ids:
|
||||
line.attendees_ids = [(6, 0, template_attendee_ids)]
|
||||
else:
|
||||
self.room_users_ids = [(5, 0, 0)]
|
||||
self.host = False
|
||||
if self.issue_meeting_line_ids:
|
||||
for line in self.issue_meeting_line_ids:
|
||||
line.attendees_ids = [(5, 0, 0)]
|
||||
|
||||
@api.constrains('name', 'issue_meeting_line_ids')
|
||||
def _check_name(self):
|
||||
for record in self:
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<field name="meeting_booking_id" column_invisible="1"/>
|
||||
<field name="issue_library_id"/>
|
||||
<field name="employee_id" options="{'no_create': True}" domain="[('id', 'in', designated_person_ids)]"/>
|
||||
<field name="attendees_ids" widget="many2many_tags" domain="[('id', 'in', designated_person_ids)]"/>
|
||||
<field name="attendees_ids" widget="many2many_tags"/>
|
||||
<field name="users_role_group_ids" widget="many2many_tags" />
|
||||
<field name="designated_person_ids" widget="many2many_tags" column_invisible="1"/>
|
||||
<field name="is_sanda"/>
|
||||
|
||||
Reference in New Issue
Block a user