diff --git a/soong_workflow/models/soong_user_role.py b/soong_workflow/models/soong_user_role.py
index 122de7d42..fbcefa268 100644
--- a/soong_workflow/models/soong_user_role.py
+++ b/soong_workflow/models/soong_user_role.py
@@ -22,6 +22,28 @@ class YuthonUserRole(models.Model):
employee_ids = fields.One2many('hr.employee', 'user_role_id')
company_id = fields.Many2one('res.company', string="公司", default=lambda self: self.env.company)
pinyin_name = fields.Char(string="拼音名称", compute='_compute_pinyin', index=True)
+ is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company')
+
+ @api.depends_context('uid', 'company')
+ @api.depends('company_id')
+ def _compute_is_company(self):
+ user_employee = self._get_valid_employee_for_user()
+ active_company_id = user_employee.company_id
+ for employee in self:
+ if active_company_id.name == '天河投资集团':
+ employee.is_company = True
+ else:
+ employee.is_company = employee.company_id == active_company_id
+
+ def _get_valid_employee_for_user(self):
+ user = self.env.user
+ employee = user.employee_ids
+ if not employee:
+ user_employees = user.employee_id.sudo().search([
+ ('user_id', '=', user.id)
+ ])
+ employee = user_employees.filtered(lambda r: r.company_id == user.company_id) or user_employees[:1]
+ return employee
@api.onchange('is_main')
def _onchange_is_main(self):
diff --git a/soong_workflow/templates/soong_workflow_templates.xml b/soong_workflow/templates/soong_workflow_templates.xml
index 0a7aff961..fa7b81a43 100644
--- a/soong_workflow/templates/soong_workflow_templates.xml
+++ b/soong_workflow/templates/soong_workflow_templates.xml
@@ -2,7 +2,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
@@ -52,7 +52,7 @@
-
+
@@ -66,7 +66,7 @@
-
+
diff --git a/soong_workflow/views/soong_user_role_views.xml b/soong_workflow/views/soong_user_role_views.xml
index 33b6e3753..02714b503 100644
--- a/soong_workflow/views/soong_user_role_views.xml
+++ b/soong_workflow/views/soong_user_role_views.xml
@@ -10,6 +10,7 @@
+
@@ -65,6 +66,7 @@
角色配置
+ [('is_company','=',True)]
soong.user.role
tree,search,form
diff --git a/yuthon_holiday/models/inherit_hr_leave.py b/yuthon_holiday/models/inherit_hr_leave.py
index 417f9e00f..50d828b24 100644
--- a/yuthon_holiday/models/inherit_hr_leave.py
+++ b/yuthon_holiday/models/inherit_hr_leave.py
@@ -236,7 +236,7 @@ class HrLeave(models.Model):
days -= 1
current_date += timedelta(days=1)
- self.number_of_days = days
+ holiday.number_of_days = days
def remove_leading_zero(self, date_str):
month, day = date_str.split('月')
diff --git a/yuthon_hr_attendance/models/yuthon_shift_approval.py b/yuthon_hr_attendance/models/yuthon_shift_approval.py
index 7364c248f..465e062c3 100644
--- a/yuthon_hr_attendance/models/yuthon_shift_approval.py
+++ b/yuthon_hr_attendance/models/yuthon_shift_approval.py
@@ -114,3 +114,13 @@ class YuthonShiftApproval(models.Model):
self.resource_ids = [(6, 0, resource_ids)]
+
+class YuthonShiftContext(models.Model):
+ _name = 'yuthon.shift.context'
+ _description = 'Shift Context'
+ _order = 'start_datetime desc'
+
+ start_datetime = fields.Datetime(string='Start Datetime')
+ end_datetime = fields.Datetime(string='End Datetime')
+ planning_name = fields.Char(string='Planning Name')
+
diff --git a/yuthon_hr_attendance/security/ir.model.access.csv b/yuthon_hr_attendance/security/ir.model.access.csv
index 3186f6116..a00ab66f4 100644
--- a/yuthon_hr_attendance/security/ir.model.access.csv
+++ b/yuthon_hr_attendance/security/ir.model.access.csv
@@ -54,4 +54,3 @@ access_attendance_correct_wizard,attendance.correct.wizard,model_attendance_corr
access_yuthon_run_wizard,yuthon.run.wizard,model_yuthon_run_wizard,base.group_user,1,1,1,1
access_yuthon_high_wizard,yuthon.high.wizard,model_yuthon_high_wizard,base.group_user,1,1,1,1
access_yuthon_integrated_wizard,yuthon.integrated.wizard,model_yuthon_integrated_wizard,base.group_user,1,1,1,1
-
diff --git a/yuthon_hr_attendance/views/yuthon_shift_approval_views.xml b/yuthon_hr_attendance/views/yuthon_shift_approval_views.xml
index 1f59cbd99..6dde92720 100644
--- a/yuthon_hr_attendance/views/yuthon_shift_approval_views.xml
+++ b/yuthon_hr_attendance/views/yuthon_shift_approval_views.xml
@@ -66,12 +66,12 @@
-
-
+
+
-
-
+
+
@@ -83,4 +83,21 @@
yuthon.shift.approval
tree,form
+
+
+ yuthon.shift.context
+ yuthon.shift.context
+
+
+
+
+
+
+
+
+
+ Yuthon shift context
+ yuthon.shift.context
+ tree
+
\ No newline at end of file
diff --git a/yuthon_hr_employee/models/yuthon_hr_department.py b/yuthon_hr_employee/models/yuthon_hr_department.py
index 08fab02ac..e2420d86b 100644
--- a/yuthon_hr_employee/models/yuthon_hr_department.py
+++ b/yuthon_hr_employee/models/yuthon_hr_department.py
@@ -23,6 +23,28 @@ class YuthonHrDepartment(models.Model):
department_code = fields.Char(string="部门序号")
company_id = fields.Many2one('res.company', string="公司", index=True, default=lambda self: self.env.company)
pinyin_name = fields.Char(string="拼音名称", compute='_compute_pinyin', index=True, store=True)
+ is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company')
+
+ @api.depends_context('uid', 'company')
+ @api.depends('company_id')
+ def _compute_is_company(self):
+ user_employee = self._get_valid_employee_for_user()
+ active_company_id = user_employee.company_id
+ for employee in self:
+ if active_company_id.name == '天河投资集团':
+ employee.is_company = True
+ else:
+ employee.is_company = employee.company_id == active_company_id
+
+ def _get_valid_employee_for_user(self):
+ user = self.env.user
+ employee = user.employee_ids
+ if not employee:
+ user_employees = user.employee_id.sudo().search([
+ ('user_id', '=', user.id)
+ ])
+ employee = user_employees.filtered(lambda r: r.company_id == user.company_id) or user_employees[:1]
+ return employee
@api.constrains('create_date', 'end_date')
def _check_start_end_time(self):
diff --git a/yuthon_hr_employee/models/yuthon_hr_employee.py b/yuthon_hr_employee/models/yuthon_hr_employee.py
index d7bd2debb..d9e53945d 100644
--- a/yuthon_hr_employee/models/yuthon_hr_employee.py
+++ b/yuthon_hr_employee/models/yuthon_hr_employee.py
@@ -73,6 +73,7 @@ class YuthonHrEmployee(models.Model):
company_old_year = fields.Integer(string="司龄(年)", compute='_compute_company_old')
regularization_year = fields.Integer(string="转正(年)", compute='_compute_regularization_year')
open_start_time = fields.Date(string="参加工作时间")
+ is_membership = fields.Boolean(string="工会会员")
cumulative_work_month = fields.Integer(string="累计工作月数", compute='_compute_social_insurance_info', store=True)
cumulative_work_years = fields.Char(string="累计工作年限", compute='_compute_cumulative_work_years', store=True)
interrupt_work_month = fields.Integer(string="中断工作月数")
@@ -166,8 +167,30 @@ class YuthonHrEmployee(models.Model):
pension_insurance_base = fields.Float(string='基本养老费基数', compute='_compute_insurance_bases')
work_injury_insurance_base = fields.Float(string='失业保险金基数', compute='_compute_insurance_bases')
housing_fund_base = fields.Float(string='住房公积金基数', compute='_compute_insurance_bases')
+ is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company')
last_attendance = fields.Boolean(string="上月全勤", store=True)
+ @api.depends_context('uid', 'company')
+ @api.depends('company_id')
+ def _compute_is_company(self):
+ user_employee = self._get_valid_employee_for_user()
+ active_company_id = user_employee.company_id
+ for employee in self:
+ if active_company_id.name == '天河投资集团':
+ employee.is_company = True
+ else:
+ employee.is_company = employee.company_id == active_company_id
+
+ def _get_valid_employee_for_user(self):
+ user = self.env.user
+ employee = user.employee_ids
+ if not employee:
+ user_employees = user.employee_id.sudo().search([
+ ('user_id', '=', user.id)
+ ])
+ employee = user_employees.filtered(lambda r: r.company_id == user.company_id) or user_employees[:1]
+ return employee
+
@api.depends('normal_overtime_hours', 'weekend_overtime_hours', 'holiday_overtime_hours')
def _compute_overtime_this_month(self):
for employee in self:
diff --git a/yuthon_hr_employee/views/yuthon_hr_department_views.xml b/yuthon_hr_employee/views/yuthon_hr_department_views.xml
index c887da2fd..2df6baa2b 100644
--- a/yuthon_hr_employee/views/yuthon_hr_department_views.xml
+++ b/yuthon_hr_employee/views/yuthon_hr_department_views.xml
@@ -3,8 +3,6 @@
tree,kanban,hierarchy,form
-
-
yuthon.hr.department.inherit
hr.department
@@ -34,6 +32,7 @@
+
@@ -64,7 +63,6 @@
-
批量生成权限组
diff --git a/yuthon_hr_employee/views/yuthon_hr_employee_views.xml b/yuthon_hr_employee/views/yuthon_hr_employee_views.xml
index f71911db2..8ff0e65d9 100644
--- a/yuthon_hr_employee/views/yuthon_hr_employee_views.xml
+++ b/yuthon_hr_employee/views/yuthon_hr_employee_views.xml
@@ -131,6 +131,7 @@
+
@@ -368,6 +369,7 @@
+
@@ -451,6 +453,7 @@
通讯录
hr.employee
+ [('is_company','=',True)]
tree,kanban,form,search
-
-
-
-
+ >