diff --git a/odex25_hr/attendances/views/hr_attendance_view.xml b/odex25_hr/attendances/views/hr_attendance_view.xml
index 43627f9d9..16f3fabb5 100644
--- a/odex25_hr/attendances/views/hr_attendance_view.xml
+++ b/odex25_hr/attendances/views/hr_attendance_view.xml
@@ -423,4 +423,6 @@
+
+
diff --git a/odex25_hr/attendances/wizard/attendances_report_wiz.py b/odex25_hr/attendances/wizard/attendances_report_wiz.py
index a2339b978..f0bef33bd 100644
--- a/odex25_hr/attendances/wizard/attendances_report_wiz.py
+++ b/odex25_hr/attendances/wizard/attendances_report_wiz.py
@@ -245,13 +245,15 @@ class ReportAttendancePublic(models.AbstractModel):
all_days = {l.date for l in lines}
absent = {l.date for l in lines if l.is_absent}
vacation = {l.date for l in lines if l.normal_leave}
+
holidays = {l.date for l in lines if l.public_holiday}
iq = getattr(emp, 'iqama_number', False) or getattr(emp, 'saudi_number', '')
+ calendar_name = lines[0].calendar_id.name if lines and lines[0].calendar_id else ''
summary_rows.append({
'employee_number': emp.emp_no or '',
'name': emp.name,
- 'seq': seq if seq else '',
+ 'seq': f"{seq} - {calendar_name}" if seq else '',
'iqama': iq.display_name or '',
'department': emp.department_id.name,
'job': emp.sudo().job_id.name,
@@ -489,10 +491,11 @@ class ReportAttendancegeneral(models.AbstractModel):
holidays = {l.date for l in lines if l.public_holiday}
iq = getattr(emp, 'iqama_number', False) or getattr(emp, 'saudi_number', '')
+ calendar_name = lines[0].calendar_id.name if lines and lines[0].calendar_id else ''
summary_rows.append({
'employee_number': emp.emp_no or '',
'name': emp.name,
- 'seq': seq if seq else '',
+ 'seq': f"{seq} - {calendar_name}" if seq else '',
'iqama': iq.display_name or '',
'department': emp.department_id.name,
'job': emp.sudo().job_id.name,
@@ -701,11 +704,12 @@ class AttendancesReportXls(models.AbstractModel):
total_absent += len(absent)
iq = getattr(emp, 'iqama_number', False) or getattr(emp, 'saudi_number', '')
+ calendar_name = lines[0].calendar_id.name if lines and lines[0].calendar_id else ''
sheet.write_row(row, 1, [
emp.emp_no or '',
emp.name,
- seq if seq else '',
+ f"{seq} - {calendar_name}" if seq else '',
iq.display_name,
emp.department_id.name,
diff --git a/odex25_hr/employee_requests/i18n/ar_001.po b/odex25_hr/employee_requests/i18n/ar_001.po
index 8f29f13c8..d52d21a9d 100644
--- a/odex25_hr/employee_requests/i18n/ar_001.po
+++ b/odex25_hr/employee_requests/i18n/ar_001.po
@@ -1412,10 +1412,9 @@ msgid "Expiration date"
msgstr "تاريخ الانتهاء"
#. module: employee_requests
-#: model:ir.model.fields,field_description:employee_requests.field_hr_employee__date_of_expiry
#: model:ir.model.fields,field_description:employee_requests.field_hr_employee__expiration_date_passport
-msgid "Expiry Date"
-msgstr "تاريخ النهاية"
+msgid "Passport Expiry Date"
+msgstr "تاريخ انتهاء الجواز"
#. module: employee_requests
#: model_terms:ir.ui.view,arch_db:employee_requests.view_employee_form_leave_inherit_001
@@ -1792,10 +1791,20 @@ msgstr ""
msgid "Is Last Record?"
msgstr "أخر سجل؟"
+
#. module: employee_requests
#: model:ir.model.fields,field_description:employee_requests.field_hr_employee__date_issuance_passport
-msgid "Issue Date"
-msgstr "تاريخ الاصدار"
+msgid "Passport Issue Date"
+msgstr "تاريخ اصدار الجواز"
+
+
+
+#. module: employee_requests
+#: model:ir.model.fields,field_description:employee_requests.field_hr_employee__date_issuance_saudi_id
+msgid "Saudi Issue Date"
+msgstr "تاريخ اصدار الهوية الوطنية "
+
+
#. module: employee_requests
#: model:ir.model.fields,field_description:employee_requests.field_hr_clearance_form__it_mg
diff --git a/odex25_hr/employee_requests/models/employee.py b/odex25_hr/employee_requests/models/employee.py
index 9897f7778..2566a46d4 100644
--- a/odex25_hr/employee_requests/models/employee.py
+++ b/odex25_hr/employee_requests/models/employee.py
@@ -16,8 +16,8 @@ class HrEmployee(models.Model):
_inherit = "hr.employee"
# passport fields to private information page
- date_issuance_passport = fields.Date()
- expiration_date_passport = fields.Date()
+ date_issuance_passport = fields.Date(string="Passport Issue Date")
+ expiration_date_passport = fields.Date(string="Passport Expiry Date")
place_issuance_passport = fields.Char()
own_license = fields.Boolean()
diff --git a/odex25_hr/employee_requests/views/customize_hr_employee.xml b/odex25_hr/employee_requests/views/customize_hr_employee.xml
index 6641e26c8..62d1dd365 100644
--- a/odex25_hr/employee_requests/views/customize_hr_employee.xml
+++ b/odex25_hr/employee_requests/views/customize_hr_employee.xml
@@ -33,10 +33,16 @@
domain="[('employee_ref','=',id),('document_type','=','saudi')]"
context="{'default_employee_ref':id,'default_document_type':'saudi'}"
attrs="{'invisible':[('check_nationality','=',False)],'required':[('check_nationality','=',True)],'readonly':[('state','!=','draft')]}"/>
-
-
+
+
+
+
+
+
+
+
@@ -47,9 +53,12 @@
domain="[('employee_ref','=',id),('document_type','=','Iqama')]"
attrs="{'invisible':[('check_nationality','=',True)],'required':[('check_nationality','=',False)],'readonly':[('state','!=','draft')]}"
context="{'default_employee_ref':id,'default_document_type':'Iqama'}"/>
-
-
@@ -58,28 +67,24 @@
-
-
-
-
-
diff --git a/odex25_hr/employee_requests/views/hr_personal_permission.xml b/odex25_hr/employee_requests/views/hr_personal_permission.xml
index 47ddff062..272f7f5e2 100644
--- a/odex25_hr/employee_requests/views/hr_personal_permission.xml
+++ b/odex25_hr/employee_requests/views/hr_personal_permission.xml
@@ -156,8 +156,12 @@
+
+
+
+
diff --git a/odex25_hr/exp_ticket_request/i18n/ar_001.po b/odex25_hr/exp_ticket_request/i18n/ar_001.po
index a43eb1155..8a69c290b 100644
--- a/odex25_hr/exp_ticket_request/i18n/ar_001.po
+++ b/odex25_hr/exp_ticket_request/i18n/ar_001.po
@@ -511,7 +511,7 @@ msgstr "تاريخ انتهاء الجواز"
#. module: exp_ticket_request
#: model:ir.model.fields,field_description:exp_ticket_request.field_hr_ticket_request__passport_expiry_date
-msgid "Passport Expiry Date."
+msgid "Passport Expiry Date"
msgstr "تاريخ انتهاء الجواز"
#. module: exp_ticket_request
diff --git a/odex25_hr/exp_ticket_request/models/hr_ticketing.py b/odex25_hr/exp_ticket_request/models/hr_ticketing.py
index 4b3719bc6..88d0b09e6 100644
--- a/odex25_hr/exp_ticket_request/models/hr_ticketing.py
+++ b/odex25_hr/exp_ticket_request/models/hr_ticketing.py
@@ -48,8 +48,8 @@ class HrTicketing(models.Model):
state = fields.Selection(STATE_SELECTION, string='Status', default='draft', tracking=True)
leave_ticket = fields.Boolean(string='Leave Ticket')
passport_issue_place = fields.Char(related='employee_id.place_issuance_passport', string='Passport Issue Place')
- passport_issue_date = fields.Date(related='employee_id.date_issuance_passport', string='Passport Issue Date.')
- passport_expiry_date = fields.Date(related='employee_id.expiration_date_passport', string='Passport Expiry Date.')
+ passport_issue_date = fields.Date(related='employee_id.date_issuance_passport', string='Passport Issue Date')
+ passport_expiry_date = fields.Date(related='employee_id.expiration_date_passport', string="Passport Expiry Date")
position_type = fields.Selection([('Consultant_director', _('Managerial')), ('normal', _('Normal Job'))],
_('Position Type'), )
request_date = fields.Date(string='Request Date', default=fields.Date.today)
diff --git a/odex25_hr/hr_base/i18n/ar_001.po b/odex25_hr/hr_base/i18n/ar_001.po
index ad9635a9d..79db58f3d 100644
--- a/odex25_hr/hr_base/i18n/ar_001.po
+++ b/odex25_hr/hr_base/i18n/ar_001.po
@@ -2081,8 +2081,6 @@ msgstr ""
#: model:ir.model.fields,field_description:hr_base.field_employee_card__expiry_date
#: model:ir.model.fields,field_description:hr_base.field_employee_family_iqama__expiry_date
#: model:ir.model.fields,field_description:hr_base.field_employee_iqama__expiry_date
-#: model:ir.model.fields,field_description:hr_base.field_hr_employee__expiration_date_passport
-#: model:ir.model.fields,field_description:hr_base.field_hr_employee__expiration_date_saudi_id
#: model:ir.model.fields,field_description:hr_base.field_hr_employee__expiry
#: model:ir.model.fields,field_description:hr_base.field_hr_employee__iqama_expiy_date
#: model:ir.model.fields,field_description:hr_base.field_res_company_tree__expiry_date
@@ -2090,6 +2088,21 @@ msgstr ""
msgid "Expiry Date"
msgstr "تاريخ النهاية"
+
+
+#. module: hr_base
+#: model:ir.model.fields,field_description:hr_base.field_hr_employee__expiration_date_passport
+msgid "Passport Expiry Date"
+msgstr "تاريخ انتهاء الجواز"
+
+
+
+#. module: hr_base
+#: model:ir.model.fields,field_description:hr_base.field_hr_employee__expiration_date_saudi_id
+#: model_terms:ir.ui.view,arch_db:hr_base.employee__iqama_document_form_view
+msgid "Saudi Expiry Date"
+msgstr " تاريخ انتهاء الهوية الوطنية"
+
#. module: hr_base
#: model_terms:ir.ui.view,arch_db:hr_base.eos_form_view
#: model_terms:ir.ui.view,arch_db:hr_base.leaving_form_view
@@ -2615,15 +2628,30 @@ msgstr "هل مواطن؟"
#: model:ir.model.fields,field_description:hr_base.field_employee_card__issue_date
#: model:ir.model.fields,field_description:hr_base.field_employee_family_iqama__issue_date
#: model:ir.model.fields,field_description:hr_base.field_employee_iqama__issue_date
-#: model:ir.model.fields,field_description:hr_base.field_hr_employee__date_issuance_passport
-#: model:ir.model.fields,field_description:hr_base.field_hr_employee__date_issuance_saudi_id
-#: model:ir.model.fields,field_description:hr_base.field_hr_employee__iqama_creat_date
#: model:ir.model.fields,field_description:hr_base.field_hr_employee__issue
#: model:ir.model.fields,field_description:hr_base.field_res_company_tree__issue_date
#: model_terms:ir.ui.view,arch_db:hr_base.employee__iqama_document_form_view
msgid "Issue Date"
msgstr "تاريخ الإصدار"
+
+
+#. module: hr_base
+#: model:ir.model.fields,field_description:hr_base.field_hr_employee__date_issuance_passport
+msgid "Passport Issue Date"
+msgstr "تاريخ اصدار الجواز "
+
+#. module: hr_base
+#: model:ir.model.fields,field_description:hr_base.field_hr_employee__date_issuance_saudi_id
+msgid "Saudi Issue Date"
+msgstr "تاريخ اصدار الهوية الوطنية"
+
+
+module: hr_base
+#: model:ir.model.fields,field_description:hr_base.field_hr_employee__iqama_creat_date
+msgid "Iqama Issue Date"
+msgstr "تاريخ اصدار الاقامة"
+
#. module: hr_base
#: model:ir.model.fields,field_description:hr_base.field_hr_dependent__issue_place
msgid "Issue Place"
diff --git a/odex25_hr/hr_base/models/hr_base.py b/odex25_hr/hr_base/models/hr_base.py
index e73f723fe..99731446e 100644
--- a/odex25_hr/hr_base/models/hr_base.py
+++ b/odex25_hr/hr_base/models/hr_base.py
@@ -29,7 +29,7 @@ class HrEmployee(models.Model):
# iqama fields in employee view
identity_number = fields.Char(compute_sudo=True, compute='_compute_identity_number', string='Identity Number',store=True)
- iqama_creat_date = fields.Date(related="iqama_number.issue_date", readonly=True)
+ iqama_creat_date = fields.Date(related="iqama_number.issue_date", readonly=True,string="Iqama Issue Date")
iqama_expiy_date = fields.Date(related="iqama_number.expiry_date", readonly=True)
iqama_job = fields.Many2one(related="iqama_number.job_id", readonly=True)
emp_iqama_job = fields.Char(related="iqama_number.emp_iqama_job", readonly=True)
@@ -57,12 +57,12 @@ class HrEmployee(models.Model):
issue = fields.Date("Issue Date")
expiry = fields.Date("Expiry Date")
# passport fields to private information page
- date_issuance_passport = fields.Date(related="passport_id.issue_date", readonly=True)
- expiration_date_passport = fields.Date(related="passport_id.expiry_date", readonly=True)
+ date_issuance_passport = fields.Date(related="passport_id.issue_date", readonly=True,string="Passport Issue Date")
+ expiration_date_passport = fields.Date(related="passport_id.expiry_date", readonly=True,string="Passport Expiry Date")
place_issuance_passport = fields.Char(related="passport_id.place_issue_id", readonly=True)
# related fields if employee is saudi
- date_issuance_saudi_id = fields.Date(related="saudi_number.issue_date", readonly=True)
+ date_issuance_saudi_id = fields.Date(related="saudi_number.issue_date",string="Saudi Issue Date", readonly=True)
expiration_date_saudi_id = fields.Date(related="saudi_number.expiry_date")
place_issuance_saudi_id = fields.Char(related="saudi_number.place_issue_id", readonly=True)
diff --git a/odex25_hr/hr_base/views/hr_base_view.xml b/odex25_hr/hr_base/views/hr_base_view.xml
index 350e1c8a3..371d62c48 100644
--- a/odex25_hr/hr_base/views/hr_base_view.xml
+++ b/odex25_hr/hr_base/views/hr_base_view.xml
@@ -45,19 +45,19 @@
@@ -271,7 +271,8 @@
-
+
@@ -409,15 +410,19 @@
-
+
+
+
+
-
+
+
@@ -433,7 +438,7 @@
-
+
@@ -444,81 +449,81 @@
-
+
-
- hr employee kanban
- hr.employee
-
-
-
-
-
-
+
+ hr employee kanban
+ hr.employee
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
- view.users.simple.form.inherit.hr
- res.users
-
-
+
+ view.users.simple.form.inherit.hr
+ res.users
+
+
-
- Login
-
+
+ Login
+
-
-
-
-
-
-
+
+
+
+
+
+
-
- Create User
-
-
- form
-
- code
-
- action = records.action_create_user()
-
-
+
+ Create User
+
+
+ form
+
+ code
+
+ action = records.action_create_user()
+
+
-
+
-
+
-
- hr employee public kanban
- hr.employee.public
-
-
-
-
-
-
-
-
-
-
+
+ hr employee public kanban
+ hr.employee.public
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
hr.job.form.inherit
diff --git a/odex25_hr/hr_docs_expiry/i18n/ar_001.po b/odex25_hr/hr_docs_expiry/i18n/ar_001.po
index 0bce34a91..b9d7964d6 100644
--- a/odex25_hr/hr_docs_expiry/i18n/ar_001.po
+++ b/odex25_hr/hr_docs_expiry/i18n/ar_001.po
@@ -168,9 +168,8 @@ msgstr "مستند خروج"
#. module: hr_docs_expiry
#: model:ir.model.fields,field_description:hr_docs_expiry.field_hr_employee__expiry_license
-#: model:ir.model.fields,field_description:hr_docs_expiry.field_hr_employee_document__expiry_date
-msgid "Expiry Date"
-msgstr "تاريخ النهاية"
+msgid "License Expiry Date"
+msgstr " تاريخ انتهاء الرخصة"
#. module: hr_docs_expiry
#: model:ir.model.fields,field_description:hr_docs_expiry.field_hr_employee_document__file_examination
diff --git a/odex25_hr/hr_docs_expiry/models/employee_documents.py b/odex25_hr/hr_docs_expiry/models/employee_documents.py
index 6061bf20d..151c33596 100644
--- a/odex25_hr/hr_docs_expiry/models/employee_documents.py
+++ b/odex25_hr/hr_docs_expiry/models/employee_documents.py
@@ -183,6 +183,7 @@ class HrEmployee(models.Model):
related="license_number_id.expiry_date",
readonly=True,
default=fields.date.today(),
+ string="License Expiry Date"
)
document_count = fields.Integer(compute="_document_count", string="# Documents")
diff --git a/odex25_hr/hr_holidays_public/models/hr_holidays.py b/odex25_hr/hr_holidays_public/models/hr_holidays.py
index a404d0247..b3cce984f 100644
--- a/odex25_hr/hr_holidays_public/models/hr_holidays.py
+++ b/odex25_hr/hr_holidays_public/models/hr_holidays.py
@@ -1813,11 +1813,27 @@ class HRHolidays(models.Model):
current_date = (datetime.utcnow() + timedelta(hours=3))
date_from_value = datetime.strptime(str(item.date_from), "%Y-%m-%d %H:%M:%S")
date_to_value = datetime.strptime(str(item.date_to), "%Y-%m-%d %H:%M:%S")
- if date_to_value < date_from_value:
- raise exceptions.Warning(_('Sorry Date TO must be bigger than Date From'))
- if (date_from_value - current_date).days + 1 < item.holiday_status_id.request_before:
- raise exceptions.Warning(_('Sorry your request must be before %s Days of your leave') \
- % item.holiday_status_id.request_before)
+
+ user = self.env.user
+
+ # Check if user is **NOT** in the HR group
+ if not user.has_group("hr.group_hr_user"):
+ if date_to_value < date_from_value:
+ raise exceptions.Warning(_('Sorry, Date TO must be later than Date FROM'))
+
+ if (date_from_value - current_date).days + 1 < item.holiday_status_id.request_before:
+ raise exceptions.Warning(
+ _('Sorry, your leave request must be submitted at least %s days in advance.')
+ % item.holiday_status_id.request_before
+ )
+
+ # if date_to_value < date_from_value:
+ # raise exceptions.Warning(_('Sorry Date TO must be bigger than Date From'))
+ # if (date_from_value - current_date).days + 1 < item.holiday_status_id.request_before:
+ # raise exceptions.Warning(_('Sorry your request must be before %s Days of your leave') \
+ # % item.holiday_status_id.request_before)
+
+
self.number_of_days_temp = self._get_number_of_days(item.date_from, item.date_to, self.employee_id.id,
self.holiday_status_id.official_holidays,
self.holiday_status_id.working_days)