Timesheet
The Timesheet entity, mapped to the timesheet table.
| Table | timesheet |
| Tenant-scoped | Yes — extends TenantOwned |
| Columns | 7 |
| Relationships | 2 |
| Source | backend/src/main/java/com/motorph/payroll/model/Timesheet.java |
Columns
| Field | Type | Column | Null | Notes |
|---|---|---|---|---|
timesheetId | Integer | timesheet_id | — | primary key, generated |
workDate | LocalDate | work_date | — | — |
timeIn | LocalTime | time_in | — | — |
timeOut | LocalTime | time_out | Yes | — |
hoursWorked | BigDecimal | hours_worked | Yes | — |
remarks | String | remarks | Yes | — |
status | TimesheetStatus | status | — | converted by TimesheetStatusConverter |
Plus tenant_id, inherited from TenantOwned. Hibernate stamps it on insert and adds where tenant_id = ? to every query, so it is never written or read by application code.
Relationships
| Field | Kind | Target | Join column | Required |
|---|---|---|---|---|
employee | @ManyToOne | Employee | employee_id | Yes |
approver | @ManyToOne | Employee | approver_id | — |
Neighbourhood
Repository
TimesheetRepository
Repository interface for managing Timesheet entities, providing CRUD operations and custom queries.
Declared over Timesheet with id type Integer, with JpaSpecificationExecutor for dynamic filtering. Source: backend/src/main/java/com/motorph/payroll/repository/TimesheetRepository.java
| Method | Returns | Notes |
|---|---|---|
findWithEmployeeAndApproverByTimesheetId(Integer timesheetId) | Optional<Timesheet> | derived |
findByEmployee_EmployeeNumberAndWorkDate(Integer employeeId, LocalDate workDate) | Optional<Timesheet> | derived |
existsByEmployee_EmployeeNumberAndWorkDate(Integer employeeId, LocalDate workDate) | boolean | derived |
findAllByEmployee_EmployeeNumberOrderByWorkDateDesc(Integer employeeId) | List<Timesheet> | derived |
findAllByEmployee_EmployeeNumberAndWorkDateBetweenOrderByWorkDateDesc(Integer employeeId, LocalDate start, LocalDate end) | List<Timesheet> | derived |
findAllByWorkDateBetweenOrderByEmployee_EmployeeNumberAscWorkDateAsc(LocalDate start, LocalDate end) | List<Timesheet> | derived |
Reached by
These controllers hold — directly or through a service they depend on — a repository over Timesheet.
| Controller | Base path | Endpoints | Module |
|---|---|---|---|
| DemoDataController | /api/system-admin/demo-data | 3 | Billing & Platform |
| GovernmentFormsController | /api/government-forms | 8 | PH Statutory |
| OvertimeRequestController | /api/overtime-requests | 7 | HR |
| PayrollController | /api/payroll | 8 | Payroll |
| RecognitionAwardController | /api/recognition-awards | 7 | HR |
| TimesheetController | /api/timesheets | 10 | HR |
This page is rebuilt from the source on every docs build by docs-site/scripts/gen-code-wiki.mjs. Editing it has no effect — change the code, or, if what you want to say is prose, write it in docs/.