diff --git a/yuthon_hr_employee/models/yuthon_medical_manage.py b/yuthon_hr_employee/models/yuthon_medical_manage.py index b0c4329a5..f1566f4d4 100644 --- a/yuthon_hr_employee/models/yuthon_medical_manage.py +++ b/yuthon_hr_employee/models/yuthon_medical_manage.py @@ -140,6 +140,7 @@ class YuthonMedicalManage(models.Model): ('user_state', '=', 'in'), ('company_id.name', '=', '集团本部'), ('contract_id.party_id', 'in', party_setting_records), + ('contract_type_id.name', '!=', '实习协议') ]) for employee in open_employees: medical_manage_rec = self.env['yuthon.medical.manage'].search([ diff --git a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py index 9c4a43784..5358a5d61 100644 --- a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py @@ -246,7 +246,7 @@ class YuthonOnboardApproval(models.Model): }) else: contract_type_id = self.env['hr.contract.type'].search([('name', '=', '正式合同(一签)')], limit=1) - self.env['hr.contract'].create({ + new_contract = self.env['hr.contract'].create({ 'wage': salary, 'job_id': self.job_id.id, 'party_id': self.party_id.id, @@ -263,7 +263,12 @@ class YuthonOnboardApproval(models.Model): 'resource_calendar_id': resource_calendar_id.id, 'is_probation': True, }) - + if new_contract.contract_type_id and new_contract.contract_type_id.name != '实习协议': + cron_job = self.env['ir.cron'].sudo().search([ + ('name', '=', '定时任务:体检费分配') + ], limit=1) + if cron_job: + cron_job.sudo().method_direct_trigger() vacation_date = self.duration_employment.replace(day=1) report_id = self.env['yuthon.vacation.reports'].search([('employee_id', '=', employee_id.id), ('vacation_date', '=', vacation_date)]) if not report_id: diff --git a/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py b/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py index 8e962c83a..226e6afa7 100644 --- a/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_regularization_approval.py @@ -63,6 +63,7 @@ class YuthonRegularizationPrepareApproval(models.Model): for rec in self: version_str = rec.users_id.employee_ids.contract_id.version.lstrip('V') main_version = version_str.split('.')[0] + contract_type_id = self.env['hr.contract.type'].search([('name', '=', '正式合同(一签)')], limit=1) new_main_version = int(main_version) + 1 new_version = f"V{new_main_version}.0" original_contract = rec.users_id.employee_ids.contract_id @@ -71,11 +72,18 @@ class YuthonRegularizationPrepareApproval(models.Model): new_contract_vals = { 'structure_type_id': rec.structure_type_id1.id, 'version': new_version, + 'is_probation': False, + 'contract_type_id': contract_type_id.id, 'state': 'open', } new_contract = original_contract.with_context(skip_contract_code_check=True).copy(new_contract_vals) rec.users_id.employee_ids.write({'contract_id': new_contract.id}) employee = rec.users_id.employee_ids + cron_job = self.env['ir.cron'].sudo().search([ + ('name', '=', '定时任务:体检费分配') + ], limit=1) + if cron_job: + cron_job.sudo().method_direct_trigger() if rec.is_leave_year == 'yes': end_date = rec.end_date amount_days = rec.amount_days