calc the absent
This commit is contained in:
parent
ee00790b82
commit
c6fd39c746
|
|
@ -141,7 +141,17 @@ class HrAttendanceReport(models.Model):
|
|||
|
||||
if missed_hours < 0:
|
||||
missed_hours = 0
|
||||
return {'leaves': leave_hours, 'missed_hours': missed_hours, 'mission_by_days': mission_by_days_hours, 'additional_hours': 0.0,'actual_absent_hours': absent_hours,'total_permission_hours':total_permission,'missing_punch_hours':missing_punch_hours}
|
||||
|
||||
early_exit_hours = sum(transactions.filtered(
|
||||
lambda t: t.approve_exit_out).mapped('early_exit'))
|
||||
|
||||
lateness_hours = sum(transactions.filtered(
|
||||
lambda t: t.approve_lateness).mapped('lateness'))
|
||||
|
||||
break_hours = sum(transactions.filtered(
|
||||
lambda t: t.break_duration and t.break_duration > 0).mapped('break_duration'))
|
||||
|
||||
return {'leaves': leave_hours, 'missed_hours': missed_hours, 'mission_by_days': mission_by_days_hours, 'additional_hours': 0.0,'actual_absent_hours': absent_hours,'total_permission_hours':total_permission,'missing_punch_hours':missing_punch_hours,'total_lateness':lateness_hours,'total_early_exit':early_exit_hours,'total_break_duration':break_hours}
|
||||
|
||||
def generate_report(self):
|
||||
transaction_values = {}
|
||||
|
|
@ -163,7 +173,7 @@ class HrAttendanceReport(models.Model):
|
|||
if self.calendar_ids: trans_domain += [('calendar_id', 'in', self.calendar_ids.ids)]
|
||||
for employee in emps:
|
||||
missed_hours, wasted_hours, absent, total_mission, leaves, hours_per_day, count, \
|
||||
additional_hours,actual_absent_hours,total_permission_hours,missing_punch_hours = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
additional_hours,actual_absent_hours,total_permission_hours,missing_punch_hours,lateness_hours,early_exit_hours,break_hours = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,0 ,0,0
|
||||
emp_trans_dom = trans_domain.copy() + [('employee_id', '=', employee.id)]
|
||||
attendance_transaction = transaction_pool.search(emp_trans_dom)
|
||||
if len(attendance_transaction.mapped('calendar_id')) > 1:
|
||||
|
|
@ -187,6 +197,10 @@ class HrAttendanceReport(models.Model):
|
|||
actual_absent_hours = hours_dict.get('actual_absent_hours', 0.0)
|
||||
total_permission_hours =hours_dict.get('total_permission_hours', 0.0)
|
||||
missing_punch_hours = hours_dict.get('missing_punch_hours', 0.0)
|
||||
break_hours = hours_dict.get('break_hours', 0.0)
|
||||
early_exit_hours = hours_dict.get('early_exit_hours', 0.0)
|
||||
lateness_hours = hours_dict.get('lateness_hours', 0.0)
|
||||
|
||||
total_mission += hours_dict['mission_by_days']
|
||||
missed_hours += hours_dict['missed_hours']
|
||||
leaves += hours_dict['leaves']
|
||||
|
|
@ -199,6 +213,9 @@ class HrAttendanceReport(models.Model):
|
|||
current_trans = attendance_transaction.filtered(lambda t: df <= t.date <= self.date_to)
|
||||
hours_dict = self.calcualte_flexible_transaction(current_trans)
|
||||
actual_absent_hours = hours_dict.get('actual_absent_hours', 0.0)
|
||||
break_hours = hours_dict.get('break_hours', 0.0)
|
||||
early_exit_hours = hours_dict.get('early_exit_hours', 0.0)
|
||||
lateness_hours = hours_dict.get('lateness_hours', 0.0)
|
||||
total_permission_hours = hours_dict.get('total_permission_hours', 0.0)
|
||||
missing_punch_hours = hours_dict.get('missing_punch_hours', 0.0)
|
||||
total_mission += hours_dict['mission_by_days']
|
||||
|
|
@ -209,6 +226,9 @@ class HrAttendanceReport(models.Model):
|
|||
hours_dict = self.calcualte_flexible_transaction(attendance_transaction)
|
||||
missed_hours = hours_dict['missed_hours']
|
||||
actual_absent_hours = hours_dict.get('actual_absent_hours', 0.0)
|
||||
break_hours = hours_dict.get('break_hours', 0.0)
|
||||
early_exit_hours = hours_dict.get('early_exit_hours', 0.0)
|
||||
lateness_hours = hours_dict.get('lateness_hours', 0.0)
|
||||
total_permission_hours = hours_dict.get('total_permission_hours', 0.0)
|
||||
leaves, total_mission = hours_dict['leaves'], hours_dict['mission_by_days']
|
||||
working_hours_flexible_days = emp_calendar.total_flexible_hours
|
||||
|
|
@ -219,7 +239,7 @@ class HrAttendanceReport(models.Model):
|
|||
'additional_hours': 0.0,
|
||||
'exists': 0.0,
|
||||
'extra_break_duration': 0.0,
|
||||
'absent': missed_hours,
|
||||
'absent': actual_absent_hours + missing_punch_hours + break_hours + early_exit_hours + lateness_hours ,
|
||||
'mission_by_days': total_mission,
|
||||
'absent_days_by_hr': 0.0,
|
||||
'total_hours': missed_hours,
|
||||
|
|
@ -269,6 +289,7 @@ class HrAttendanceReport(models.Model):
|
|||
if (attendance.sign_in and not attendance.sign_out) or (
|
||||
not attendance.sign_in and attendance.sign_out):
|
||||
missing_punch_hours = attendance.plan_hours - attendance.official_hours
|
||||
|
||||
if attendance.is_absent:
|
||||
actual_absent_hours +=attendance.plan_hours
|
||||
total_absent += attendance.plan_hours
|
||||
|
|
@ -306,7 +327,7 @@ class HrAttendanceReport(models.Model):
|
|||
'leave': total_leaves,
|
||||
'exists': early_exist,
|
||||
'extra_break_duration': extra_break_duration,
|
||||
'absent': total_absent,
|
||||
'absent': actual_absent_hours + missing_punch_hours + lateness + early_exist + extra_break_duration,
|
||||
'mission_by_days': total_mission_by_day,
|
||||
'absent_days_by_hr': lateness_hours_by_hr,
|
||||
'total_hours': get_total_hours,
|
||||
|
|
@ -336,8 +357,7 @@ class HrAttendanceReport(models.Model):
|
|||
temp_dict["delay"] = sum(item["delay"] for item in grp1)
|
||||
temp_dict["leave"] = sum(item1["leave"] for item1 in grp2)
|
||||
temp_dict["mission_by_days"] = sum(item1["mission_by_days"] for item1 in grp14)
|
||||
temp_dict["absent"] = sum(item1["absent"] for item1 in grp3) - (
|
||||
temp_dict["leave"] + temp_dict["mission_by_days"])
|
||||
temp_dict["absent"] = sum(item1["absent"] for item1 in grp3)
|
||||
temp_dict["exists"] = sum(item1["exists"] for item1 in grp4)
|
||||
temp_dict["extra_break_duration"] = sum(item1["extra_break_duration"] for item1 in grp5)
|
||||
temp_dict["absent_days_by_hr"] = sum(item1["absent_days_by_hr"] for item1 in grp6)
|
||||
|
|
|
|||
Loading…
Reference in New Issue