diff --git a/odex25_hr/employee_requests/i18n/ar_001.po b/odex25_hr/employee_requests/i18n/ar_001.po index 4a4f4e087..975a0dfe6 100644 --- a/odex25_hr/employee_requests/i18n/ar_001.po +++ b/odex25_hr/employee_requests/i18n/ar_001.po @@ -4016,6 +4016,25 @@ msgid "Employee %s, has no Overtime Account Setting Base On Employee Type." msgstr "الموظف %s, ليس لديه إعدادات حساب بند صرف للأجر الإضافي حسب نوع الموظف." +#. module: employee_requests +#: model:ir.model.fields,field_description:employee_requests.field_employee_department_jobs__employee_type +#: model_terms:ir.ui.view,arch_db:employee_requests.employee_department_jobs_form_view +#, python-format +msgid "Employee Type" +msgstr "نوع الموظف الحالي" + +#. module: employee_requests +#: model:ir.model.fields,field_description:employee_requests.field_employee_department_jobs__new_employee_type +#: model_terms:ir.ui.view,arch_db:employee_requests.employee_department_jobs_form_view +#, python-format +msgid "New Employee Type" +msgstr "نوع الموظف الجديد" + +#. module: employee_requests +#: code:addons/employee_requests/models/employee_department_jobs.py:0 +#, python-format +msgid "You Can Not Choose The Same Employee Type" +msgstr "لايمكن إختيار نفس نوع الموظف الحالي diff --git a/odex25_hr/employee_requests/models/employee_department_jobs.py b/odex25_hr/employee_requests/models/employee_department_jobs.py index a57430eb5..2da79630e 100644 --- a/odex25_hr/employee_requests/models/employee_department_jobs.py +++ b/odex25_hr/employee_requests/models/employee_department_jobs.py @@ -44,7 +44,11 @@ class EmployeeDepartmentJobs(models.Model): company_id = fields.Many2one(related='employee_id.company_id', string="Company") - @api.onchange('new_department_id', 'new_job_id') + employee_type = fields.Many2one(comodel_name='hr.contract.type', string="Employee Type") + + new_employee_type = fields.Many2one(comodel_name='hr.contract.type', string="New Employee Type") + + @api.onchange('new_department_id', 'new_job_id','new_employee_type') def not_reused_same_dep_job(self): for item in self: if item.new_department_id.department_type == 'unit': @@ -58,6 +62,9 @@ class EmployeeDepartmentJobs(models.Model): if item.old_job_2_id.id == item.new_job_id.id: raise exceptions.Warning(_('You Can Not Choose The Same Job Name')) + if item.new_employee_type.id == item.employee_type.id: + raise exceptions.Warning(_('You Can Not Choose The Same Employee Type')) + if item.new_job_id: if item.new_job_id.no_of_recruitment < 1: raise exceptions.Warning(_('There Is No Vacancy For This Job Name %s')% item.new_job_id.name) @@ -74,6 +81,7 @@ class EmployeeDepartmentJobs(models.Model): item.old_job_2_id = item.employee_id.job_id item.old_manager_id = item.old_department_2_id.manager_id item.old_job_date = item.employee_id.joining_date + item.employee_type = item.employee_id.employee_type_id @api.depends('date', 'old_job_date') def _compute_duration(self): @@ -129,7 +137,8 @@ class EmployeeDepartmentJobs(models.Model): if item.promotion_type == 'department': if item.new_department_id: item.employee_id.write({ - 'department_id': item.new_department_id.id + 'department_id': item.new_department_id.id, + 'employee_type_id': item.new_employee_type.id }) item.employee_id._onchange_department() elif item.promotion_type == 'job': @@ -143,7 +152,8 @@ class EmployeeDepartmentJobs(models.Model): item.employee_id.write({ 'department_id': item.new_department_id.id, 'job_id': item.new_job_id.id, - 'joining_date': item.date + 'joining_date': item.date, + 'employee_type_id': item.new_employee_type.id }) item.employee_id._onchange_department() self.state = 'approved' @@ -164,7 +174,8 @@ class EmployeeDepartmentJobs(models.Model): if item.promotion_type == 'department': if item.new_department_id: item.employee_id.write({ - 'department_id': item.old_department_2_id.id + 'department_id': item.old_department_2_id.id, + 'employee_type_id': item.employee_type.id }) item.employee_id._onchange_department() elif item.promotion_type == 'job': @@ -178,7 +189,8 @@ class EmployeeDepartmentJobs(models.Model): item.employee_id.write({ 'department_id': item.old_department_2_id.id, 'job_id': item.old_job_2_id.id, - 'joining_date': item.old_job_date + 'joining_date': item.old_job_date, + 'employee_type_id': item.employee_type.id }) item.employee_id._onchange_department() if previous_record: diff --git a/odex25_hr/employee_requests/views/employee_department_jobs_view.xml b/odex25_hr/employee_requests/views/employee_department_jobs_view.xml index 7277b4a18..0b946c977 100644 --- a/odex25_hr/employee_requests/views/employee_department_jobs_view.xml +++ b/odex25_hr/employee_requests/views/employee_department_jobs_view.xml @@ -75,6 +75,11 @@ attrs="{'readonly':[('state','!=','draft')], 'invisible':[('promotion_type','not in',['department','both'])], 'required':[('promotion_type','in',['department','both'])]}"/> + + + +