From b6c559b927578778e880a9f3beebb2b3ffecc736 Mon Sep 17 00:00:00 2001 From: younes Date: Wed, 1 Oct 2025 09:41:22 +0100 Subject: [PATCH] IMP benefit --- odex25_hr/hr_job_request/i18n/ar_001.po | 135 +++++++++++++----- .../hr_job_request/models/job_request.py | 65 +++++---- .../hr_job_request/views/job_request_view.xml | 111 +++++++++----- 3 files changed, 213 insertions(+), 98 deletions(-) diff --git a/odex25_hr/hr_job_request/i18n/ar_001.po b/odex25_hr/hr_job_request/i18n/ar_001.po index 0d8890b52..26bbfa4ba 100644 --- a/odex25_hr/hr_job_request/i18n/ar_001.po +++ b/odex25_hr/hr_job_request/i18n/ar_001.po @@ -41,6 +41,11 @@ msgstr "" msgid "Applicant" msgstr "المتقدم" +#. module: hr_job_request +#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__employee_id +msgid "Applicant" +msgstr "مقدم الطلب" + #. module: hr_job_request #: model:ir.model.fields,field_description:hr_job_request.field_hr_applicant__applicants_hr #: model:ir.model.fields,field_description:hr_job_request.field_hr_applicant__applicants_id @@ -74,12 +79,6 @@ msgstr "هل أنت متأكد من إرجاع السجل لحالة المسو msgid "Average Score" msgstr "درجة متوسطة" -#. module: hr_job_request -#: model:ir.model.fields.selection,name:hr_job_request.selection__hr_job_request__state__confirm -#: model_terms:ir.ui.view,arch_db:hr_job_request.job_request_form_view -msgid "Confirm" -msgstr "تأكيد" - #. module: hr_job_request #: model:ir.model.fields,field_description:hr_job_request.field_applicant_questions__create_uid #: model:ir.model.fields,field_description:hr_job_request.field_applicant_questions_line__create_uid @@ -101,11 +100,6 @@ msgstr "" msgid "Current Employees" msgstr "الموظفون حاليا" -#. module: hr_job_request -#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__department_id -msgid "Department" -msgstr "الإدارة" - #. module: hr_job_request #: model:ir.model.fields,field_description:hr_job_request.field_applicant_questions__display_name #: model:ir.model.fields,field_description:hr_job_request.field_applicant_questions_line__display_name @@ -180,12 +174,6 @@ msgstr "" msgid "High Score" msgstr "درجة عالية" -#. module: hr_job_request -#: model:ir.model.fields.selection,name:hr_job_request.selection__hr_job_request__state__hr_approve -#: model_terms:ir.ui.view,arch_db:hr_job_request.job_request_form_view -msgid "Hr Approve" -msgstr "" - #. module: hr_job_request #: model:ir.model.fields,field_description:hr_job_request.field_applicant_questions__id #: model:ir.model.fields,field_description:hr_job_request.field_applicant_questions_line__id @@ -197,11 +185,6 @@ msgstr "" msgid "ID" msgstr "المُعرف" -#. module: hr_job_request -#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__job_id -msgid "Job" -msgstr "المهنة" - #. module: hr_job_request #: model:ir.model,name:hr_job_request.model_hr_job msgid "Job Position" @@ -261,20 +244,11 @@ msgstr "إطلاق التوظيف" msgid "Low Score" msgstr "درجة منخفضة" -#. module: hr_job_request -#: model_terms:ir.ui.view,arch_db:hr_job_request.job_request_form_view -msgid "Management Approve" -msgstr "موافقة الرئيس التفيذى" - -#. module: hr_job_request -#: model:ir.model.fields.selection,name:hr_job_request.selection__hr_job_request__state__manager_approve -msgid "Manager Approve" -msgstr "" - #. module: hr_job_request #: model:ir.model.fields,field_description:hr_job_request.field_applicant_questions__name +#: model_terms:ir.ui.view,arch_db:hr_job_request.job_request_form_view msgid "Name" -msgstr "" +msgstr "الاسم" #. module: hr_job_request #: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__name @@ -361,8 +335,8 @@ msgstr "الربع الثاني" #. module: hr_job_request #: model_terms:ir.ui.view,arch_db:hr_job_request.job_request_form_view -msgid "Set Draft" -msgstr "ارجاع ل مسودة" +msgid "Set To Draft" +msgstr "إرجاع الى المبدئي" #. module: hr_job_request #: model:ir.model.fields,field_description:hr_job_request.field_applicant_questions__standard_applicant_id @@ -465,3 +439,94 @@ msgstr "متطلبات الوظيفة" #: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__company_id msgid "Company" msgstr "الشركة" + +#. module: hr_job_request +#: model_terms:ir.ui.view,arch_db:hr_job_request.job_request_form_view +msgid "Send" +msgstr "إرسال" + +#. module: hr_job_request +#: model_terms:ir.ui.view,arch_db:hr_job_request.job_request_form_view +msgid "Confirm" +msgstr "موافقة" + +#. module: hr_job_request +#: model:ir.model.fields.selection,name:hr_job_request.selection__hr_job_request__state__confirm +msgid "Confirm" +msgstr "تم التصديق" + +#. module: hr_job_request +#: model:ir.model.fields.selection,name:hr_job_request.selection__hr_job_request__state__recruitment_officer +msgid "Waiting for Recruitment Officer" +msgstr "انتظار مسؤول التوظيف" + +#. module: hr_job_request +#: model:ir.model.fields.selection,name:hr_job_request.selection__hr_job_request__state__hr_manager +msgid "Waiting for HR Manager" +msgstr "انتظار مدير الموارد البشرية" + +#. module: hr_job_request +#: model:ir.model.fields.selection,name:hr_job_request.selection__hr_job_request__state__general_manager +msgid "Waiting for General Manager" +msgstr "انتظار المدير العام" + +#. module: hr_job_request +#: model_terms:ir.ui.view,arch_db:hr_job_request.job_request_form_view +msgid "Requesting Administration Information" +msgstr "معلومات الإدارة الطالبة" + +#. module: hr_job_request +#: model_terms:ir.ui.view,arch_db:hr_job_request.job_request_form_view +msgid "Job Details" +msgstr "تفاصيل الوظيفة المطلوبة" + +#. module: hr_job_request +#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__requested_start_date +msgid "Requested Start Date" +msgstr "تاريخ البدء المطلوب" + +#. module: hr_job_request +#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__department_id +msgid "Requesting Department" +msgstr "الإدارة الطالبة" + +#. module: hr_job_request +#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__job_id +msgid "Job Title" +msgstr "المسمي الوظيفي" + +#. module: hr_job_request +#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__job_related_department_id +msgid "Job Department" +msgstr "الإدارة التابعة للوظيفة" + +#. module: hr_job_request +#: model:ir.model.fields.selection,name:hr_job_request.selection__hr_job_request__job_type__permanent +msgid "Permanent" +msgstr "دائم" + +#. module: hr_job_request +#: model:ir.model.fields.selection,name:hr_job_request.selection__hr_job_request__job_type__temporary +msgid "Temporary" +msgstr "مؤقت" + +#. module: hr_job_request +#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__job_type +msgid "Job Type" +msgstr "نوع الوظيفة" + +#. module: hr_job_request +#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__job_number +msgid "Job Number" +msgstr "رقم الوظيفة" + +#. module: hr_job_request +#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__working_location +msgid "Work Location" +msgstr "مكان العمل" + +#. module: hr_job_request +#: model:ir.model.fields,field_description:hr_job_request.field_hr_job_request__request_reason +msgid "Request Reason" +msgstr "أسباب الطلب" + diff --git a/odex25_hr/hr_job_request/models/job_request.py b/odex25_hr/hr_job_request/models/job_request.py index 2469045b2..39449b877 100644 --- a/odex25_hr/hr_job_request/models/job_request.py +++ b/odex25_hr/hr_job_request/models/job_request.py @@ -14,29 +14,43 @@ class HrJobRequest(models.Model): employee = self.env['hr.employee'].search([('user_id', '=', self.env.user.id)], limit=1) if employee: result['department_id'] = employee.department_id.id if employee.department_id else False + result['employee_id'] = employee.id return result - name = fields.Char(string="Name of Request", required=True) - date = fields.Date(string="Request Date", required=True) + name = fields.Char(string="Name of Request", required=True, copy=False) + date = fields.Date(string="Request Date", required=True, copy=False) + requested_start_date = fields.Date(string="Requested Start Date", required=True, copy=False) + employee_id = fields.Many2one('hr.employee', 'Applicant', required=True, copy=False) + department_id = fields.Many2one('hr.department', string="Requesting Department", required=True, copy=False) + job_id = fields.Many2one('hr.job', string="Job Title", required=True, copy=False) + job_related_department_id = fields.Many2one('hr.department', string="Job Department", required=True, copy=False) + job_type = fields.Selection(selection=[('permanent', 'Permanent'), ('temporary', 'Temporary'), ], + string="Job Type", + required=True, + copy=False, + default='permanent' + ) + job_number = fields.Char(string="Job Number", required=True, copy=False) + needed_employee = fields.Integer(string="Needed Employee", required=True, copy=False) + working_location = fields.Many2one('work.location', string="Work Location", required=True, copy=False) + request_reason = fields.Text(string="Request Reason", required=True, copy=False) + state = fields.Selection(selection=[('draft', 'Draft'), + ('recruitment_officer', 'Waiting for Recruitment Officer'), + ('hr_manager', 'Waiting for HR Manager'), + ('general_manager', 'Waiting for General Manager'), + ('confirm', 'Confirm'), + ('refused', 'Refused')], default='draft') quarter = fields.Selection(string="Quarter", selection=[('all_quarter', 'All Quarter'), ('first_quarter', 'First Quarter'), ('second_quarter', 'Second Quarter'), ('third_quarter', 'Third Quarter'), ('fourth_quarter', 'Fourth Quarter')], default='all_quarter') - department_id = fields.Many2one('hr.department', string="Department", required=True) - job_id = fields.Many2one('hr.job', string="Job", required=True) - state = fields.Selection(selection=[('draft', 'Draft'), - ('confirm', 'Confirm'), - ('hr_approve', 'Hr Approve'), - ('manager_approve', 'Manager Approve'), - ('refused', 'Refused')], default='draft') - needed_employee = fields.Integer(string="Needed Employee", required=True) number_of_employees = fields.Integer(related="job_id.no_of_employee", string="Current Employees", store=True) expected_employee = fields.Integer(string="Expected jobs", compute="get_jobs", store=True) number_of_job_empty = fields.Integer(string="Empty jobs", compute="get_jobs", store=True) number_of_job_empty_total = fields.Integer(string="Total Empty jobs", compute="get_jobs", store=True) job_requirements = fields.Html('Job Requirements') - company_id = fields.Many2one('res.company',string="Company", default=lambda self: self.env.user.company_id) + company_id = fields.Many2one('res.company', string="Company", default=lambda self: self.env.user.company_id) def unlink(self): for rec in self: @@ -54,27 +68,26 @@ class HrJobRequest(models.Model): rec.number_of_job_empty = rec.job_id.no_of_recruitment rec.expected_employee = rec.number_of_job_empty_total + rec.number_of_employees + def action_send(self): + for rec in self: + rec.state = 'recruitment_officer' + + def action_hr_manager(self): + for rec in self: + rec.state = 'hr_manager' + + def action_general_manager(self): + for rec in self: + rec.state = 'general_manager' + rec.job_id.sudo().write({'no_of_recruitment': rec.number_of_job_empty_total, }) + def action_confirm(self): for rec in self: rec.state = 'confirm' - def department_manager(self): - for rec in self: - rec.state = 'department_manager' - - def action_hr_approve(self): - for rec in self: - rec.state = 'hr_approve' - - def action_manage_approve(self): - for rec in self: - rec.state = 'manager_approve' - rec.job_id.sudo().write({'no_of_recruitment': rec.number_of_job_empty_total, }) - # 'expected_employees':rec.expected_employee}) - def action_refused(self): for rec in self: - if rec.state == 'manager_approve': + if rec.state == 'general_manager': empty = rec.job_id.expected_employees - rec.job_id.no_of_employee record = rec.job_id.no_of_recruitment - rec.needed_employee if empty < rec.needed_employee or record < 0: diff --git a/odex25_hr/hr_job_request/views/job_request_view.xml b/odex25_hr/hr_job_request/views/job_request_view.xml index e0a9b9753..c0be969e1 100644 --- a/odex25_hr/hr_job_request/views/job_request_view.xml +++ b/odex25_hr/hr_job_request/views/job_request_view.xml @@ -7,52 +7,89 @@
-
- +
+

+ +

+
+ - - - - + + - - - - - - - - - - + - - - - - - -
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +