diff --git a/room/models/room_booking.py b/room/models/room_booking.py index c05173032..3bce9b906 100644 --- a/room/models/room_booking.py +++ b/room/models/room_booking.py @@ -305,22 +305,37 @@ class RoomBooking(models.Model): @api.model_create_multi def create(self, vals_list): - for vals in vals_list: + bookings = super().create(vals_list) + for booking in bookings: + # 提取参会人员ID列表 + room_users_ids = [] + if booking.room_users_ids: + room_users_ids = booking.room_users_ids.ids + + # 提取当前经办人ID列表 + self_users_ids = [] + if booking.self_users_ids: + self_users_ids = booking.self_users_ids.ids + + # 根据参会人员查找对应的员工 + employee_records = self.env['hr.employee'] + if room_users_ids: + employee_records = self.env['hr.employee'].search([('user_id', 'in', room_users_ids)]) + self.env['yuthon.will.task'].create({ - 'name': vals['name'], - 'start_date': datetime.strptime(vals['start_datetime'], '%Y-%m-%d %H:%M:%S').date(), + 'name': booking.name, + 'start_date': booking.start_datetime.date(), 'task_type': 'meet', 'priority': 'important', - 'room_booking_id': self.id, - 'employee_ids': [ - (6, 0, self.env['hr.employee'].search([('user_id', 'in', vals['room_users_ids'])]).ids)], + 'room_booking_id': booking.id, + 'employee_ids': [(6, 0, employee_records.ids)], 'task_state': 'will', - 'address': self.env['room.room'].browse(vals['room_id']).name, - 'remarks': vals.get('meeting_data', ''), - 'users_ids': [(6, 0, vals['room_users_ids'])], - 'self_users_ids': [(6, 0, vals['self_users_ids'])], + 'address': booking.room_id.name if booking.room_id else '', + 'remarks': booking.meeting_data or '', + 'users_ids': [(6, 0, room_users_ids)], + 'self_users_ids': [(6, 0, self_users_ids)], }) - return super().create(vals_list) + return bookings # @api.model # def create(self, vals):