field other attendance_duration
This commit is contained in:
parent
6670d8c851
commit
ee9f586322
|
|
@ -2868,3 +2868,18 @@ msgstr "أيام الغياب"
|
|||
#: model:ir.model.fields,field_description:attendances.field_attendance_attendance__attendance_duration_hhmmss
|
||||
msgid "Attendance Duration"
|
||||
msgstr "زمن الحضور"
|
||||
|
||||
#. module: attendances
|
||||
#: model:ir.model.fields,field_description:attendances.field_attendance_attendance__permission_duration
|
||||
msgid "Permission Duration"
|
||||
msgstr "زمن الإستئذان"
|
||||
|
||||
#. module: attendances
|
||||
#: model:ir.model.fields,field_description:attendances.field_attendance_attendance__mission_duration
|
||||
msgid "Mission Duration"
|
||||
msgstr "زمن مهام العمل"
|
||||
|
||||
#. module: attendances
|
||||
#: model:ir.model.fields,field_description:attendances.field_attendance_attendance__is_holiday
|
||||
msgid "Is Holiday?"
|
||||
msgstr "اليوم إجــازة؟"
|
||||
|
|
|
|||
|
|
@ -451,6 +451,14 @@ class Attendance(models.Model):
|
|||
attendance_duration_hhmmss = fields.Char(string="Attendance Duration",
|
||||
compute='_compute_attendance_duration', store=True)
|
||||
|
||||
permission_duration = fields.Float(string="Permission Duration", compute='_compute_attendance_duration',
|
||||
store=True)
|
||||
|
||||
mission_duration = fields.Float(string="Mission Duration", compute='_compute_attendance_duration',
|
||||
store=True)
|
||||
|
||||
is_holiday = fields.Boolean(string='Is Holiday?',default=False)
|
||||
|
||||
@api.depends('action_date')
|
||||
def _compute_is_today(self):
|
||||
today = datetime.now().date()
|
||||
|
|
@ -482,6 +490,41 @@ class Attendance(models.Model):
|
|||
if not record.employee_id or not record.action_date:
|
||||
continue
|
||||
|
||||
Module = self.env['ir.module.module'].sudo()
|
||||
mod_emp_request = Module.search([('state', '=', 'installed'), ('name', '=', 'employee_requests')])
|
||||
modules_mission = Module.search([('state', '=', 'installed'), ('name', '=', 'exp_official_mission')])
|
||||
|
||||
holiday = self.env['hr.holidays'].search([
|
||||
('employee_id', '=', record.employee_id.id),
|
||||
('date_from', '<=', record.action_date),
|
||||
('date_to', '>=', record.action_date),('state','=','validate1'),])
|
||||
|
||||
official_holiday = self.env['hr.holiday.officials'].search([
|
||||
('date_from', '<=', record.action_date),
|
||||
('date_to', '>=', record.action_date),('state','=','confirm'),])
|
||||
|
||||
if holiday or official_holiday:
|
||||
record.is_holiday= True
|
||||
|
||||
if modules_mission:
|
||||
missions = self.env['hr.official.mission.employee'].search([
|
||||
('employee_id', '=', record.employee_id.id),
|
||||
('date_from', '<=', record.action_date),
|
||||
('date_to', '>=', record.action_date),('state','=','approve'),])
|
||||
|
||||
for mission in missions:
|
||||
mission_seconds = sum(mission.hours for mission in missions)
|
||||
record.mission_duration = round(mission_seconds, 2)
|
||||
|
||||
if mod_emp_request:
|
||||
permissions = self.sudo().env['hr.personal.permission'].search([
|
||||
('employee_id', '=', record.employee_id.id),
|
||||
('date_from', '>=', record.action_date),
|
||||
('date_from', '<=', record.action_date),('state','=','approve')])
|
||||
|
||||
permission_seconds = sum(p.duration for p in permissions)
|
||||
record.permission_duration = round(permission_seconds, 2)
|
||||
|
||||
attendances = self.search([
|
||||
('employee_id', '=', record.employee_id.id),
|
||||
('action_date', '=', record.action_date)
|
||||
|
|
|
|||
|
|
@ -363,6 +363,9 @@
|
|||
<field name="action_date" readonly="1"/>
|
||||
<field name="taken" invisible="1"/>
|
||||
<field name="attendance_duration_hhmmss" attrs="{'invisible': [('action','!=','sign_out')]}" />
|
||||
<field name="permission_duration" attrs="{'invisible': [('action','!=','sign_out')]}" />
|
||||
<field name="mission_duration" attrs="{'invisible': [('action','!=','sign_out')]}" />
|
||||
<field name="is_holiday"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
|
|
|
|||
Loading…
Reference in New Issue