diff --git a/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py b/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py index f828d644f..8e962c83a 100644 --- a/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py @@ -11,9 +11,8 @@ class YuthonRegularizationPrepareApproval(models.Model): name = fields.Char(string="名称") department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门") - users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id) - confirmation_user_id = fields.Many2one('res.users', string="转正人") - confirmation_department_id = fields.Many2one(related='confirmation_user_id.employee_id.department_id', string="转正人部门") + users_id = fields.Many2one('res.users', string="转正人", default=lambda self: self.env.user.id) + confirmation_user_id = fields.Many2one('res.users', string="申请人") code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_regularization_approval_code')) structure_type_id = fields.Many2one('hr.payroll.structure.type', string="转正前职级") @@ -51,22 +50,22 @@ class YuthonRegularizationPrepareApproval(models.Model): else: self.is_adjust = False - @api.onchange('confirmation_user_id') - def _onchange_confirmation_user_id(self): + @api.onchange('users_id') + def _onchange_users_id(self): for rec in self: rec.end_date = False - if rec.confirmation_user_id: - employee = rec.confirmation_user_id.employee_ids[:1] + if rec.users_id: + employee = rec.users_id.employee_ids[:1] if employee and employee.contract_id and employee.contract_id.end_date: rec.end_date = employee.contract_id.end_date + relativedelta(days=1) def end_approval(self): for rec in self: - version_str = rec.confirmation_user_id.employee_ids.contract_id.version.lstrip('V') + version_str = rec.users_id.employee_ids.contract_id.version.lstrip('V') main_version = version_str.split('.')[0] new_main_version = int(main_version) + 1 new_version = f"V{new_main_version}.0" - original_contract = rec.confirmation_user_id.employee_ids.contract_id + original_contract = rec.users_id.employee_ids.contract_id original_contract.write({'state': 'cancel'}) new_contract_vals = { @@ -75,8 +74,8 @@ class YuthonRegularizationPrepareApproval(models.Model): 'state': 'open', } new_contract = original_contract.with_context(skip_contract_code_check=True).copy(new_contract_vals) - rec.confirmation_user_id.employee_ids.write({'contract_id': new_contract.id}) - employee = rec.confirmation_user_id.employee_ids + rec.users_id.employee_ids.write({'contract_id': new_contract.id}) + employee = rec.users_id.employee_ids if rec.is_leave_year == 'yes': end_date = rec.end_date amount_days = rec.amount_days @@ -127,7 +126,7 @@ class YuthonRegularizationPrepareApproval(models.Model): if rec.is_leave_year == 'yes': rec.amount_days = 0 end_date = rec.end_date - employee = rec.confirmation_user_id.employee_ids + employee = rec.users_id.employee_ids # ---------------------- 1. 正则提取工龄 ---------------------- work_year_str = employee.social_insurance_time or '' year_match = re.search(r'(\d+)年', work_year_str) diff --git a/yuthon_hr_employee_approval/views/yuthon_regularization_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_regularization_approval_views.xml index 387f6a7cb..89a35b086 100644 --- a/yuthon_hr_employee_approval/views/yuthon_regularization_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_regularization_approval_views.xml @@ -53,8 +53,8 @@ - +