Separate Punch-in/out and project time
From OrangeHRM
Contents |
Issue
In the current system, if a company uses both punch-in/out as well as project time, the total shown on the timesheet is wrong. The following images illustrate this.
Solution
Description
Separate Punch-in/out and project time
Acceptance Test Cases
- There are 2 separate options to generate:
- Attendance Reports
- Timesheets
- Data entered through timesheets and project time options only appear in Timesheets (and not in Attendance Reports)
- Data entered through punch/in out only appears in Attendance Reports (and not in Timesheets)
- When entering time an employee can enter time events that overlap between timesheets and attendance (punch in/out).
- When entering time an employee cannot enter time events that overlap within timesheets or within attendance.
- Project internal no longer appears in timesheets and project reports (it's no longer possible to enter time against this project using Timesheets or Project Time).
- It is possible (in an unlikely scenario) for the admin to create a project named "Internal".
- An ESS user can view his/her attendance reports.
- It is NOT possible to submit or approve an attendance report.
- HR admin can view and edit any attendance data of any employee
- A supervisor can ONLY view attendance records of employees that report to him/her.
- HR admin can configure whether it's possible for the employee to edit attendance data once punch in/out events are submitted.
- If HR admin has set the option to edit, an employee can edit and save already submitted attendance (punch in/out events), else and employee cannot edit submitted attendance events.
- HR admin can configure whether an employee can change the displayed current time when punching in/out time.
- When generating attendance reports, it is possible to specify employee name (not needed if ESS user generates report), from date, and to date.
Screens
Menu Structure
The following menu structure is there under "Time" (For an admin user. A sub-set of the menu is visible for a supervisor/ESS user based on their rights)
- Punch In/Out
- Project Time
- My Timesheet
- Employee Timesheets
- Reports
- Employee Reports
- Project Reports
- Attendance Reports
- Print Timesheets
- Configuration
- Time Entry
- Work Shifts
ESS User - Attendance Report
Admin / Supervisor - Attendance Report
Admins and supervisors will have an additional option to select the employee. Admins can select any employee while a supervisor can only select employees reporting to him/her.
Time Entry Configuration
Solution 1: Questions
- Admin has set settings disabling ability for ESS user to change punch in or out time. An ESS user punched in at the morning but forgot to punch out at the evening. Next day or after few days when he tries to punch in again, system shows that he has to punch out first. But it will only allow the current time as the punch out time which is wrong. How to handle this scenario?
- People who do night shifts, punch in at the evening (say 2008-12-01) and punch out next day morning (2008-12-02). When generating reports, if someone specify the end date as 2008-12-01, how this record should be handled?
- Currently suggested report doesn't show total time an employee spent at office during a particular day. Only way to get it would be to calculate it from the displayed records for that day. This can be tedious specially if there are many records for a particular day. So, in the selection criteria, we give another option to select "Report Type". Report Type would be "Summary" or "Detailed". In summary view there will be two columns "Date" and "Time Spent". Time Spent will list totals for each day and each total would be a hyper link to the the detailed view of that day. Detailed view will be same as the one that has been suggested.
- In editing mode of Detailed View, each record should accompany a check box where it let the user to delete that record.
- New attendance design may use a separate database table. So, do we have to remove "Internal" from the project list?
Suggested Future Enhancements
1. Did HR Admin can view the overall staff (all staff) attendance report ?? It can be in summary format. Because HR Admin don't need to keep on clicking on individual staff link for detail.
2. If the summary attendance report for all staff are allowed, is it possible to display additional column for "Short" and "overtime".
"short" will display those who punch-out less than the working hour like example 8 hours working but the staff punch-out 7 hours and the system will display 1 hour short in the attendance list.
"overtime" will display how many hour that staff working more than their working hours.
http://orangehrm.com/forum/viewtopic.php?p=4235#4235
Implementation
- Class CSVReport should not know anything about the structure of AttendanceRecord in in database. It should get all required data from AttendanceRecord class.
- AttendanceRecord class should not know anything about CSV export. It should not have any methods with name CSV.
- AttendanceRecord class should expose method(s) for data export that can be used by CSVReport.
- These methods should be generic. If methods with similar logic is there for HTML/PDF reports, these methods should be refactored, made generic, and reused for HTML, CSV, and PDF exports.





