fix
This commit is contained in:
parent
81a6bdd165
commit
61afaa583e
|
|
@ -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 "غير متواجـد"
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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>"
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue