Merge pull request #5891 from expsa/bakry_hr
field other attendance_duration
This commit is contained in:
commit
4d57cd08c6
|
|
@ -2868,3 +2868,18 @@ msgstr "أيام الغياب"
|
||||||
#: model:ir.model.fields,field_description:attendances.field_attendance_attendance__attendance_duration_hhmmss
|
#: model:ir.model.fields,field_description:attendances.field_attendance_attendance__attendance_duration_hhmmss
|
||||||
msgid "Attendance Duration"
|
msgid "Attendance Duration"
|
||||||
msgstr "زمن الحضور"
|
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",
|
attendance_duration_hhmmss = fields.Char(string="Attendance Duration",
|
||||||
compute='_compute_attendance_duration', store=True)
|
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')
|
@api.depends('action_date')
|
||||||
def _compute_is_today(self):
|
def _compute_is_today(self):
|
||||||
today = datetime.now().date()
|
today = datetime.now().date()
|
||||||
|
|
@ -482,6 +490,41 @@ class Attendance(models.Model):
|
||||||
if not record.employee_id or not record.action_date:
|
if not record.employee_id or not record.action_date:
|
||||||
continue
|
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([
|
attendances = self.search([
|
||||||
('employee_id', '=', record.employee_id.id),
|
('employee_id', '=', record.employee_id.id),
|
||||||
('action_date', '=', record.action_date)
|
('action_date', '=', record.action_date)
|
||||||
|
|
|
||||||
|
|
@ -363,6 +363,9 @@
|
||||||
<field name="action_date" readonly="1"/>
|
<field name="action_date" readonly="1"/>
|
||||||
<field name="taken" invisible="1"/>
|
<field name="taken" invisible="1"/>
|
||||||
<field name="attendance_duration_hhmmss" attrs="{'invisible': [('action','!=','sign_out')]}" />
|
<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>
|
</group>
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue