From 07286e8c554ee387d30332ca4b63c6433992d9ad Mon Sep 17 00:00:00 2001 From: zhouzhou <123@qq.com> Date: Fri, 27 Sep 2024 12:02:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_hr_employee/models/yuthon_hr_department.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/yuthon_hr_employee/models/yuthon_hr_department.py b/yuthon_hr_employee/models/yuthon_hr_department.py index 2a08054fe..1d3890d19 100644 --- a/yuthon_hr_employee/models/yuthon_hr_department.py +++ b/yuthon_hr_employee/models/yuthon_hr_department.py @@ -18,11 +18,21 @@ class YuthonHrDepartment(models.Model): expiration_date = fields.Date(string="失效日期", default=fields.Date.today()) end_date = fields.Date(string="结束时间") department_code = fields.Char(string="部门序号", store=True) + lower_ids = fields.One2many('hr.department', 'parent_id', string="下级部门") @api.onchange('department_code', 'parent_id') def _onchange_department_code(self): for code in self: if code.parent_id.department_code: - code.department_code = code.parent_id.department_code + code.department_code if code.department_code else '' + code.department_code = code.parent_id.department_code + ('.' + code.department_code.split('.')[-1] if code.department_code else '') else: - code.department_code = code.department_code \ No newline at end of file + code.department_code = code.department_code + code.update_code() + def update_code(self): + def cycle_code(parent,parent_code): + for child in parent.lower_ids: + new_code = parent_code +('.' + child.department_code.split('.')[-1] if child.department_code else '') + self.env['hr.department'].search([('id', '=', child.id.origin)]).write({'department_code': new_code}) + cycle_code(child,new_code) + + cycle_code(self, self.department_code) \ No newline at end of file