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'])]}"/>
+
+
+
+