{% extends "base_authenticated.html" %} {% block title %}Payroll Dashboard - Working Hours{% endblock %} {% block extra_head %} {% endblock %} {% block content %}
Calculate employee working hours and generate payroll reports
Total Employees
Total Hours
Regular Hours
Overtime Hours
SP Hours
PW Hours
| Employee ID | Employee Name | Total Hours | Regular Hours | Overtime Hours | SP Hours | PW Hours | Working Days | Status |
|---|---|---|---|---|---|---|---|---|
| {{ employee_id }} | {{ employee_names.get(employee_id, 'Employee ' + employee_id) }} | {{ "%.2f"|format(emp_data.grand_totals.total_hours) }} hrs | {{ "%.2f"|format(emp_data.grand_totals.regular_hours) }} hrs | {% if emp_data.grand_totals.overtime_hours > 0 %} {{ "%.2f"|format(emp_data.grand_totals.overtime_hours) }} hrs {% else %} 0.00 hrs {% endif %} | {% if emp_data.grand_totals.sp_hours > 0 %} {{ "%.2f"|format(emp_data.grand_totals.sp_hours) }} hrs {% else %} 0.00 hrs {% endif %} | {% if emp_data.grand_totals.pw_hours > 0 %} {{ "%.2f"|format(emp_data.grand_totals.pw_hours) }} hrs {% else %} 0.00 hrs {% endif %} | {% set working_days = emp_data.daily_hours.values() | selectattr('total_hours', '>', 0) | list | length %} {{ working_days }} days | {% set miss_punches = emp_data.daily_hours.values() | selectattr('is_miss_punch', 'equalto', true) | list | length %} {% if miss_punches > 0 %} {{ miss_punches }} miss punch(es) {% else %} Complete {% endif %} |