Commit Graph

280 Commits

Author SHA1 Message Date
31d0ffb9ce fix: completely decouple locate me button from leaflet DOM tree 2026-07-02 13:41:11 +08:00
53f7dde231 fix: intercept leaflet map clicks using L.DomEvent 2026-07-02 13:37:22 +08:00
f562243210 fix: make locate me button clickable by fixing pointer events 2026-07-02 13:33:25 +08:00
8f9a30be12 chore: build frontend assets for locate me button 2026-07-02 13:31:49 +08:00
119148cbcb feat: add locate me button to branch location picker 2026-07-02 13:28:25 +08:00
fe7f19b8a7 chore: set COMPOSER_HOME for shared hosting deployment 2026-07-02 13:24:28 +08:00
49c711d2d9 chore: remove npm build from deployment script 2026-07-02 13:23:46 +08:00
59697d9a54 chore: add composer install to git-pull script 2026-07-02 13:22:25 +08:00
4f6a53b73d chore: lock composer platform php version to 8.2 2026-07-02 13:20:34 +08:00
d40c5662d3 feat: add branch isolation for managers and zkteco biometric tracking 2026-07-02 13:06:09 +08:00
1974ea1982 Fix route middleware for leave balances and biometric attendance to allow view-only access 2026-07-01 10:32:09 +08:00
ec042d377e chore: update compiled production assets 2026-07-01 10:09:43 +08:00
5b7a41927b Add Leave Balances and Biometric Attendance menu items for employees and handle view-only permissions 2026-07-01 10:02:32 +08:00
a5074282aa Fix role permission saving: use admin's modules instead of target role's restricted list 2026-07-01 09:48:52 +08:00
228f4649c0 Add missing modules to employee role config (leave_balances, biometric_attendance, etc.) 2026-07-01 09:45:57 +08:00
15244b0488 Fix permission caching and validation issues 2026-07-01 09:22:17 +08:00
50ad5f45eb fix: resolve permission/role cache not reflecting issues
- UserController: use Spatie syncRoles([$role]) instead of direct Eloquent relations relation sync() which bypassed Spatie model events and cache observers
- RoleController: explicitly call forgetCachedPermissions() on store and update to force cache refresh
- Clear application cache
2026-06-30 16:44:13 +08:00
5a95cdf4ef feat: simplify leave applications UI and endpoint access for employee role 2026-06-30 16:10:48 +08:00
96c7e7cd63 feat: hide clock in/out buttons on employee dashboard 2026-06-30 15:58:08 +08:00
a1e6b46817 feat: add Role dropdown to employee create and edit forms
- EmployeeController::create(): pass company roles + defaultRole (employee) to Inertia
- EmployeeController::store(): assign role from role_id request field (fallback to 'employee')
- EmployeeController::edit(): pass company roles + currentRoleId to Inertia
- EmployeeController::update(): syncRoles() with selected role_id
- create.tsx: Role <Select> dropdown pre-selected to default employee role
- edit.tsx: Role <Select> dropdown pre-selected to employee's current role
2026-06-30 15:37:58 +08:00
75ee8cacb8 fix: employee self-service - open controller access and clock-in/out
- LeaveApplicationController: add employee branch to bypass can() check
- AttendanceRecordController: add employee calendar view (own records only)
  + open clockIn/clockOut to employee type (no permission required)
- PayslipController: add employee branch to show own payslips only
- routes/web.php: remove permission:clock-in-out middleware from clock routes
- employee-dashboard.tsx: always show clock in/out buttons for employees
- Rebuild frontend assets
2026-06-30 13:51:02 +08:00
c11ee26183 build: recompile frontend assets with employee sidebar menu changes 2026-06-30 13:44:43 +08:00
de172942ff feat: add employee self-service sidebar menu and open access routes
- Add getEmployeeNavItems() to app-sidebar.tsx for users with type='employee'
  showing Dashboard, My Leaves, Overtime Requests, My Attendance, My Payslips
- Route employee users to their own nav instead of admin getCompanyNavItems()
- Move GET index routes for leave-applications, attendance-records, overtime,
  and payslips outside permission:manage-* middleware so employees can access
  their own records without admin permissions (controllers already scope by user)
2026-06-30 13:43:11 +08:00
47e6b93688 fix: embed raw SQL directly into check-leaves script and split queries 2026-06-30 13:19:06 +08:00
1b8586b331 fix: actually perform data insert in check-leaves due to PDO multi-query restrictions 2026-06-30 13:17:31 +08:00
91ba3e7aba chore: add db debug script for leaves 2026-06-30 13:14:59 +08:00
afff2606da feat: seed leave data to production database 2026-06-30 13:11:53 +08:00
18fef514b3 fix: robust git cleanup in git-pull script 2026-06-30 13:06:14 +08:00
20abd5d0bb fix: map overtime hours and amount in payroll entries and backfill historical data 2026-06-26 14:59:37 +08:00
0feba46378 Fix leave balance calculation and ensure payslip number uniqueness 2026-06-26 14:05:23 +08:00
21fd05f064 build: compile assets for payroll export and totals 2026-06-15 11:08:18 +08:00
494b43fabf feat: add payroll export, totals row, audit command, and payroll scenario tests 2026-06-15 10:57:01 +08:00
bfe796e65c Add standalone Laravel optimize script 2026-06-15 09:35:49 +08:00
965388330b fix: remove RDOT and hide resigned employees from calendar 2026-06-08 14:49:48 +08:00
ea7c5670f3 refactor: make branch alignment migration dynamic for all employees 2026-06-05 12:13:32 +08:00
a3166b97d2 fix: prioritize employee profile branch over raw terminal branch in biometric logs and sync logic, add swap migration 2026-06-05 12:09:44 +08:00
700cae9a27 build: compile assets containing biometric and attendance improvements 2026-06-04 14:12:32 +08:00
bf21a719c7 feat(biometrics): add shift-aware punch routing, 60s double-punch protection, and sync status column with pre-selection matching 2026-06-04 14:08:34 +08:00
b4a63553e0 build: compile assets for calendar scroll fix 2026-06-01 16:58:48 +08:00
4b2e37e4a6 style(layout): add flex-shrink safety with min-w-0 on main container elements and z-index 20 on sidebar to prevent horizontal page overflow 2026-06-01 16:56:46 +08:00
da1044bbd4 style(calendar): fix horizontal scroll overlapping by changing table to border-separate and enabling sticky position on employee column 2026-06-01 16:52:08 +08:00
e0185dbd2f revert: undo z-index and sticky left offset positioning on calendars 2026-06-01 16:48:05 +08:00
a35fd919a4 fix(calendar): implement dynamic sidebar offset for sticky positioning on shift and attendance calendars 2026-06-01 16:45:17 +08:00
07b2b37530 fix(sidebar): resolve Tailwind compile issue and z-index overlap on calendar table 2026-06-01 16:35:32 +08:00
f2e451605b fix(layout): prevent sidebar from shrinking in flexbox layouts 2026-06-01 16:25:29 +08:00
13ea4cad87 fix(layout): add w-full min-w-0 overflow-hidden wrapper in AppContent to fix sticky calendar name column overlap 2026-06-01 16:21:37 +08:00
adc95699b3 fix: daily wage undertime double-deduction, conditional meal break, and weekend approved LWOP deductions 2026-06-01 16:02:45 +08:00
bcb81ed68a fix(attendance): resolve absent status on active clock-in, add auto-logout after 12h, support single punches in BiometricAttendanceController 2026-05-30 11:34:22 +08:00
d1a3a1245d feat: add rollback_and_resync.php script 2026-05-30 11:25:24 +08:00
21b58a7952 fix: correct autoload vendor path to load local vendor directory 2026-05-30 11:24:06 +08:00