diff --git a/room/models/room_booking.py b/room/models/room_booking.py
index 8fea2e88b..aff397290 100644
--- a/room/models/room_booking.py
+++ b/room/models/room_booking.py
@@ -35,9 +35,9 @@ class RoomBooking(models.Model):
meeting_type = fields.Selection([('up', '线上'), ('down', '线下'), ('exterior', '外部')], default='down', string="会议形式",
required=True)
meeting_type_id = fields.Many2one('room.meeting.type', string="会议类型")
- room_users_ids = fields.Many2many(related='meeting_type_id.users_ids', string="出席人员")
+ room_users_ids = fields.Many2many('res.users', string="出席人员")
other_company_id = fields.Many2one('res.partner', string="外部公司")
- host = fields.Many2one(related='meeting_type_id.host_user_id', string="主持人")
+ host = fields.Many2one('res.users', string="主持人")
stationed_group = fields.Boolean(string="驻组参会")
other_company_user_ids = fields.One2many(related="other_company_id.child_ids", string="其他人员")
@@ -55,6 +55,15 @@ class RoomBooking(models.Model):
# 关联流程
relevancy_type = fields.Selection([('none', '无')], string="关联流程类型")
+ @api.onchange('meeting_type_id')
+ def _onchange_meeting_type_id(self):
+ if self.meeting_type_id:
+ self.room_users_ids = self.meeting_type_id.users_ids
+ self.host = self.meeting_type_id.host_user_id
+ 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)
diff --git a/room/views/room_booking_views.xml b/room/views/room_booking_views.xml
index ad8100920..44a5480ab 100644
--- a/room/views/room_booking_views.xml
+++ b/room/views/room_booking_views.xml
@@ -44,6 +44,15 @@
+
+ 出席人员:
+
+
+ ,
+
+
+
+
@@ -150,7 +159,6 @@
-
@@ -159,7 +167,7 @@
-
+
@@ -167,8 +175,15 @@
-
-
+
+
+
+
+
+
+
+
+
diff --git a/soong_workflow/views/soong_user_role_views.xml b/soong_workflow/views/soong_user_role_views.xml
index 69f9e139f..a9d6c239c 100644
--- a/soong_workflow/views/soong_user_role_views.xml
+++ b/soong_workflow/views/soong_user_role_views.xml
@@ -4,7 +4,7 @@
soong.user.role.tree
soong.user.role
-
+
diff --git a/yuthon_hr_employee/models/yuthon_hr_department.py b/yuthon_hr_employee/models/yuthon_hr_department.py
index d9fcced62..a82f94917 100644
--- a/yuthon_hr_employee/models/yuthon_hr_department.py
+++ b/yuthon_hr_employee/models/yuthon_hr_department.py
@@ -2,6 +2,7 @@
from odoo import api, fields, models
from pypinyin import pinyin,lazy_pinyin
from odoo.osv import expression
+from odoo.exceptions import ValidationError
class YuthonHrDepartment(models.Model):
_inherit = "hr.department"
@@ -67,4 +68,25 @@ class YuthonHrDepartment(models.Model):
domain = expression.AND([search_domain, domain])
return self._search(domain, limit=limit, order=order)
+ @api.constrains('department_code')
+ def _check_department_code_uniqueness(self):
+ for record in self:
+ if record.department_code:
+ existing_records = self.search([
+ ('department_code', '=', record.department_code),
+ ('id', '!=', record.id)
+ ])
+ if existing_records:
+ raise ValidationError("部门序号必须唯一!")
+
+ @api.onchange('department_code')
+ def _onchange_department_code(self):
+ for record in self:
+ if record.department_code:
+ employee_ids = self.env['hr.employee'].search([('department_id', '=', record.id.origin), ('company_id', '=', record.company_id.id)])
+ for employee in employee_ids:
+ if employee.number and len(employee.number) >= 2:
+ old_suffix = employee.number[-2:]
+ employee.number = record.department_code + old_suffix
+
diff --git a/yuthon_hr_employee/views/inherit_hr_job_views.xml b/yuthon_hr_employee/views/inherit_hr_job_views.xml
index e10f52f85..4b7ee6b62 100644
--- a/yuthon_hr_employee/views/inherit_hr_job_views.xml
+++ b/yuthon_hr_employee/views/inherit_hr_job_views.xml
@@ -19,6 +19,10 @@
hr.job
+
+ 20
+ True
+
岗位
diff --git a/yuthon_hr_employee/views/yuthon_hr_department_views.xml b/yuthon_hr_employee/views/yuthon_hr_department_views.xml
index dbe5704de..9787df868 100644
--- a/yuthon_hr_employee/views/yuthon_hr_department_views.xml
+++ b/yuthon_hr_employee/views/yuthon_hr_department_views.xml
@@ -10,6 +10,10 @@
hr.department
+
+ 20
+ True
+
1
diff --git a/yuthon_hr_employee/views/yuthon_hr_employee_views.xml b/yuthon_hr_employee/views/yuthon_hr_employee_views.xml
index 86971b2b9..cf3b94144 100644
--- a/yuthon_hr_employee/views/yuthon_hr_employee_views.xml
+++ b/yuthon_hr_employee/views/yuthon_hr_employee_views.xml
@@ -11,6 +11,7 @@
上级领导
+ "{'no_create': True}"
1
@@ -83,7 +84,7 @@
-
@@ -94,6 +95,9 @@
1
+
+ "{'no_create': True}"
+
@@ -329,6 +333,8 @@
/employee/banner/route
+ 20
+ True
1
diff --git a/yuthon_will_task/models/__init__.py b/yuthon_will_task/models/__init__.py
index 0d48c02cf..e748bc535 100644
--- a/yuthon_will_task/models/__init__.py
+++ b/yuthon_will_task/models/__init__.py
@@ -1,2 +1,3 @@
from . import yuthon_will_task
from . import yuthon_task_time
+from . import inherit_room_booking
diff --git a/yuthon_will_task/models/inherit_room_booking.py b/yuthon_will_task/models/inherit_room_booking.py
new file mode 100644
index 000000000..af4478896
--- /dev/null
+++ b/yuthon_will_task/models/inherit_room_booking.py
@@ -0,0 +1,25 @@
+from odoo import api, fields, models
+
+
+class InheritRoomBooking(models.Model):
+ _inherit = 'room.booking'
+
+ @api.model
+ def create(self, vals):
+ task_time_ids = self.env['yuthon.task.time'].search([('name', '=', '30分钟')])
+ new_record = super(InheritRoomBooking, self).create(vals)
+ employee_list = []
+ if new_record.room_users_ids:
+ for user_id in new_record.room_users_ids:
+ if user_id.employee_ids:
+ employee_list.append(user_id.employee_ids.id)
+ if task_time_ids:
+ self.env['yuthon.will.task'].sudo().create({
+ 'task_content': new_record.name,
+ 'users_ids': [(6, 0, new_record.room_users_ids.ids)],
+ 'employee_ids': [(6, 0, employee_list)],
+ 'task_time_ids': [(6, 0, task_time_ids.ids)],
+ 'start_time': new_record.start_datetime,
+ 'end_time': new_record.stop_datetime
+ })
+ return new_record