This commit is contained in:
Bakry 2025-01-06 17:48:04 +03:00
parent 81a6bdd165
commit 61afaa583e
3 changed files with 114 additions and 3 deletions

View File

@ -2233,3 +2233,30 @@ msgstr "للأسف، لرفض المدير المباشر '%s' فقط او مد
msgid "Sorry,You must enter the Names Of Employees!"
msgstr "للأسف، يجب ادخال اسماء الموظفين!"
#. module: attendances
#: model:ir.model.fields,field_description:attendances.field_hr_employee__hr_presence_state
#: model:ir.model.fields,field_description:attendances.field_hr_employee_base__hr_presence_state
#: model:ir.model.fields,field_description:attendances.field_hr_employee_public__hr_presence_state
msgid "Attendance State"
msgstr "حالة الحضور"
#. module: attendances
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee__hr_icon_display__presence_present
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee__hr_presence_state__present
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee_base__hr_icon_display__presence_present
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee_base__hr_presence_state__present
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee_public__hr_icon_display__presence_present
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee_public__hr_presence_state__present
msgid "Present"
msgstr "متواجـد"
#. module: attendances
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee__hr_icon_display__presence_to_define
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee__hr_presence_state__to_define
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee_base__hr_icon_display__presence_to_define
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee_base__hr_presence_state__to_define
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee_public__hr_icon_display__presence_to_define
#: model:ir.model.fields.selection,name:attendances.selection__hr_employee_public__hr_presence_state__to_define
msgid "Not Present"
msgstr "غير متواجـد"

View File

@ -1,10 +1,62 @@
# -*- coding: utf-8 -*-
from datetime import datetime, timedelta
from datetime import datetime, timedelta, date
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT as DATETIME_FORMAT
from ast import literal_eval
class HrEmployeeBase(models.AbstractModel):
_inherit = 'hr.employee.base'
#################
hr_presence_state = fields.Selection([
('present', 'Present'), #('absent', 'Absent'),
('to_define', 'Not Present')],string='Attendance State', compute='_compute_presence_state', default='to_define',store=True)
hr_icon_display = fields.Selection([
('presence_present', 'Present'),
('presence_absent_active', 'Present but not active'),
('presence_absent', 'Absent'),
('presence_to_define', 'Not Present'),
('presence_undetermined', 'Undetermined')], compute='_compute_presence_icon')
@api.depends('resource_calendar_id', 'hr_presence_state')
def _compute_presence_icon(self):#copy form base hr overritten
for employee in self:
if employee.hr_presence_state == 'present':
icon = 'presence_present'
elif employee.hr_presence_state == 'absent':
icon = 'presence_absent'
else:
if employee.user_id:
icon = 'presence_to_define'
else:
icon = 'presence_undetermined'
employee.hr_icon_display = icon
def _compute_presence_state(self):#copy form base hr overritten
# Check on login
check_login = literal_eval(self.env['ir.config_parameter'].sudo().get_param('hr.hr_presence_control_login', 'False'))
employee_to_check_working = self.filtered(lambda e: e.user_id.im_status == 'offline')
#working_now_list = employee_to_check_working._get_employee_working_now()
t_date = date.today()
for employee in self:
attendance = self.env['attendance.attendance'].sudo().search([
('employee_id', '=', employee.id),('action_date', '=', t_date)], limit=1)
state = 'to_define'
if check_login:
if attendance:
state = 'present'
else:
state = 'to_define'
#if employee.user_id.im_status == 'offline' and not attendance:
# state = 'absent'
employee.hr_presence_state = state
###############
class HrAttendances(models.Model):
@ -368,7 +420,7 @@ class ActionReason(models.Model):
class Attendance(models.Model):
_name = 'attendance.attendance'
_rec_name = 'employee_id'
_order = 'name DESC'
_order = 'action_date DESC'
employee_id = fields.Many2one('hr.employee', string="Employee", domain="[('state', '=', 'open')]", required=True,
ondelete='cascade', index=True)

View File

@ -2274,7 +2274,7 @@ msgstr "ايميل الموارد البشرية"
#. module: hr_base
#: model:ir.model,name:hr_base.model_hr_employee_history
msgid "HR Employee History"
msgstr ""
msgstr "الخبرات السابقة"
#. module: hr_base
#: model:ir.model,name:hr_base.model_hr_insurance
@ -4719,4 +4719,36 @@ msgstr "مدير المالية"
msgid "Cyber Security"
msgstr "الآمن السيبراني"
#. module: hr
#: model_terms:ir.ui.view,arch_db:hr.hr_employee_public_view_kanban
#: model_terms:ir.ui.view,arch_db:hr.hr_kanban_view_employees
msgid "<span class=\"fa fa-circle text-success\" role=\"img\" aria-label=\"Present\" title=\"Present\" name=\"presence_present\">\n"
" </span>"
msgstr "<span class=\"fa fa-circle text-success\" role=\"img\" aria-label=\"Present\" title=\"متواجــد\" name=\"presence_present\">\n"
" </span>"
#. module: hr
#: model_terms:ir.ui.view,arch_db:hr.hr_employee_public_view_kanban
#: model_terms:ir.ui.view,arch_db:hr.hr_kanban_view_employees
msgid "<span class=\"fa fa-circle text-warning\" role=\"img\" aria-label=\"To define\" title=\"To define\" name=\"presence_to_define\">\n"
" </span>"
msgstr "<span class=\"fa fa-circle text-warning\" role=\"img\" aria-label=\"To define\" title=\"غير متواجــد\" name=\"presence_to_define\">\n"
" </span>"
#. module: hr
#: model_terms:ir.ui.view,arch_db:hr.hr_employee_public_view_kanban
#: model_terms:ir.ui.view,arch_db:hr.hr_kanban_view_employees
msgid "<span class=\"fa fa-circle-o text-muted\" role=\"img\" aria-label=\"Absent\" title=\"Absent\" name=\"presence_absent\">\n"
" </span>"
msgstr "<span class=\"fa fa-circle-o text-muted\" role=\"img\" aria-label=\"Absent\" title=\"غائب\" name=\"presence_absent\">\n"
" </span>"
#. module: hr
#: model_terms:ir.ui.view,arch_db:hr.hr_employee_public_view_kanban
#: model_terms:ir.ui.view,arch_db:hr.hr_kanban_view_employees
msgid "<span class=\"fa fa-circle-o text-success\" role=\"img\" aria-label=\"Present but not active\" title=\"Present but not active\" name=\"presence_absent_active\">\n"
" </span>"
msgstr "<span class=\"fa fa-circle-o text-success\" role=\"img\" aria-label=\"Present but not active\" title=\"غير نشط\" name=\"presence_absent_active\">\n"
" </span>"