add employee type

This commit is contained in:
Bakry 2025-07-31 15:35:04 +03:00
parent cc233000ae
commit a5dfc769bd
3 changed files with 42 additions and 5 deletions

View File

@ -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 "لايمكن إختيار نفس نوع الموظف الحالي

View File

@ -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:

View File

@ -75,6 +75,11 @@
attrs="{'readonly':[('state','!=','draft')],
'invisible':[('promotion_type','not in',['department','both'])],
'required':[('promotion_type','in',['department','both'])]}"/>
<field name="new_employee_type" string="New Employee Type"
attrs="{'readonly':[('state','!=','draft')],
'invisible':[('promotion_type','not in',['department','both'])]}"/>
<field name="new_manager_id" string="New Manager" readonly="1" force_save="1"
attrs="{'invisible':[('promotion_type','not in',['department','both'])]}"/>
<field name="new_job_id" string="New job"
@ -92,6 +97,7 @@
<field name="old_manager_id" string="Old Manager" readonly="1" force_save="1"/>
<!--field name="old_job_id" string="Old Job" invisible="1"/-->
<field name="old_job_2_id" string="Old Job" readonly="1" force_save="1"/>
<field name="employee_type" string="Employee Type" readonly="1" force_save="1"/>
<field name="old_job_date" string="Old Job Date" readonly="1" force_save="1"
attrs="{'invisible':[('promotion_type','not in',['job','both'])]}"/>
<label for="service_year" string="Duration"/>