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