Commit Graph

109 Commits

Author SHA1 Message Date
359de36252 Fix LeaveBalanceController query relationship for branch_id 2026-07-06 12:54:40 +08:00
755650c3b3 Fix HR branch isolation for leave balances and attendance records, and separate My Attendance 2026-07-06 12:50:37 +08:00
0c43ac406b Add enable_clock_in_out toggle for branches 2026-07-06 11:51:11 +08:00
3872cabda2 feat: hide attendance card on employee dashboard unless branch is Jalipa, Mirandilla &. Co. 2026-07-06 11:37:44 +08:00
3ece654965 fix: remove location_exempt from validation and prevent form reset on error 2026-07-06 10:30:34 +08:00
31652ce057 feat: implement out of radius clock in warning modal, remove location exempt UI 2026-07-06 10:23:19 +08:00
d40c5662d3 feat: add branch isolation for managers and zkteco biometric tracking 2026-07-02 13:06:09 +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
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
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
965388330b fix: remove RDOT and hide resigned employees from calendar 2026-06-08 14:49:48 +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
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
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
e89b8e0ccf fix: update biometric sync timezone parsing to Asia/Manila and correct historical records 2026-05-30 11:13:45 +08:00
f393a8282f fix: preserve existing shift and policy in attendance record when overwriting via biometric sync 2026-05-28 12:29:55 +08:00
a1695010f1 fix: allow bulk sync overwrite to process already-synced biometric records and respect active filters 2026-05-28 12:12:23 +08:00
e65cefb933 feat: remove default 7-day date filter from biometric attendance page 2026-05-28 11:55:51 +08:00
02632bb92a feat: add local agent logging and bulk sync overwrite option 2026-05-25 11:52:10 +08:00
33a2dbed16 feat: implement multi-branch attendance tracking and filter updates 2026-05-25 11:34:04 +08:00
9235ddbff5 fix: copy branch_id from biometric log in syncCustom 2026-05-25 11:33:33 +08:00
9e93996f50 feat: implement manual pairing and custom sync for biometric attendance 2026-05-25 11:30:18 +08:00
3b90534d98 Refactor biometric attendance to use database 2026-05-19 17:16:46 +08:00
98d9dab18f fix: eager load branch on correct relation 2026-05-19 16:57:09 +08:00
03865bf03e feat: add branch filtering and column to attendance records 2026-05-19 16:47:07 +08:00
149bd1165e Fix UI configuration block for local agent users 2026-05-19 16:39:11 +08:00
7f92eff3eb Switch biometric agent to staging JSON cache flow 2026-05-19 16:27:54 +08:00
ceb03224b5 Fix Carbon parsing for JS date strings with timezone names 2026-05-19 15:33:47 +08:00
c3acfe9233 Fix ZKTeco date parsing and CSRF whitelist 2026-05-19 15:11:44 +08:00
ee7d0e1aa5 feat: improve employee lookup by branch_id and add sync debug reasons 2026-05-19 14:48:31 +08:00
5696c98bb5 fix: refactor ZKTeco API receiver to group by day and use correct AttendanceRecord table, and limit agent to last 15 days 2026-05-19 14:17:48 +08:00
172937f22d feat: implement ZKTeco local sync agent architecture 2026-05-19 13:51:03 +08:00
cc3f4e3a89 fix: move ZKTeco library inside app to avoid composer autoloader issues on shared hosting 2026-05-19 13:35:12 +08:00
b353aad649 feat: add ZKTeco connection testing wizard in branch form 2026-05-19 13:18:04 +08:00
20a79a130d feat: implement multi-branch biometric IP configuration and auto-sync 2026-05-19 11:24:41 +08:00
df7ebf0ef2 fix: allow updating payroll entries during processing status 2026-05-18 13:50:18 +08:00
78d6c4d494 feat: implement 3-step payroll status workflow (draft -> processing -> completed) 2026-05-18 13:01:21 +08:00
6e10efc408 feat: implement 2-column payslip-style payroll adjustment overrides 2026-05-18 12:30:14 +08:00
e07927abe1 Fix: Always inject holiday metadata into attendance record so banner shows even when employee worked 2026-05-12 12:12:31 +08:00
1d745f52a7 Feat: Add Holiday Type dropdown (Regular 100% / Special Non-Working 30%) for payroll premium rates 2026-05-12 11:29:50 +08:00
1c3b0e25e3 Feat: Add dynamic holiday overlay to Attendance Calendar 2026-05-11 17:43:58 +08:00
0f15e024d8 Feat: Hide payroll_frequency from UI and auto-calculate based on pay period dates 2026-05-11 13:25:41 +08:00
1eb42942cd feat: make employee ID field editable on edit page 2026-05-05 11:21:15 +08:00
bda02061b4 fix: overtime approval workflow - prevent absent override on valid present records, async OT submission, correct employee mapping 2026-05-05 10:47:35 +08:00
e3c4fe2190 Fix leave visibility on dashboard calendar and attendance grid 2026-05-04 14:37:36 +08:00
ab3e4fa862 fix(attendance): correctly map Half Day (HD) status in calendar cell instead of forcing Present (P) 2026-04-30 14:41:42 +08:00