Commit Graph

127 Commits

Author SHA1 Message Date
604be55d61 Update calendar view to automatically mark missing past days as Absent 2026-07-20 12:19:03 +08:00
45d93417b7 Fix biometric punch mixup and add migration to correct existing corrupted attendance records 2026-07-20 11:45:46 +08:00
cf48496148 fix: remove remaining references to AttendancePolicy 2026-07-16 10:31:07 +08:00
4d1879d8ce refactor: completely remove attendance policies and hardcode 15min grace periods 2026-07-16 10:22:17 +08:00
0871f61e9c feat: auto-assign default shift and attendance policy if left blank 2026-07-16 09:43:58 +08:00
6d32c5707e feat: make shift_id and attendance_policy_id required for employees to prevent login issues 2026-07-15 11:52:52 +08:00
930e71dfd8 fix: make HR shift stats match the table query so counts are accurate 2026-07-15 11:14:46 +08:00
ccfe622b52 fix: resolve empty string issue with Radix UI Select for branch selection 2026-07-15 11:12:05 +08:00
cb4f4dfb1c feat: Add branch selection for admins when creating shifts 2026-07-15 11:07:59 +08:00
8f078c1f33 Implement HR Branch isolation and Shift isolation 2026-07-14 11:41:04 +08:00
778bf0f52b Allow HR to view company shifts but protect from edit/delete 2026-07-14 10:55:18 +08:00
94c1ea050f Revert shift templates to be strictly isolated by creator 2026-07-06 13:52:53 +08:00
4691f27fbe Fix UI active state highlighting for My Attendance and Attendance Records 2026-07-06 13:51:21 +08:00
82d5592aec Fix HR users with employee type bypassing branch view in Attendance Records 2026-07-06 13:49:05 +08:00
a3903ffe34 Revert my_attendance to strictly personal for HR 2026-07-06 13:47:18 +08:00
cde0fe3bff Allow HR users to view branch employees in My Attendance calendar 2026-07-06 13:45:59 +08:00
436dd731d4 Enforce branch isolation on Shift Calendar and fallback on templates 2026-07-06 13:43:11 +08:00
f851f30df5 Fallback PayrollRunController to created_by Auth id for branch managers 2026-07-06 13:16:00 +08:00
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