Commit Graph

123 Commits

Author SHA1 Message Date
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
e89b8e0ccf fix: update biometric sync timezone parsing to Asia/Manila and correct historical records 2026-05-30 11:13:45 +08:00
cfe86edbf7 fix: adjust attendance auto-calculation threshold to have 1.5-hour tolerance to prevent early departures from triggering half-day status 2026-05-28 12:42:13 +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
76a65445a0 Fix: Holiday pay proration — deduct 1h break, use 8h standard, floor hours
Biometrics doesn't track breaks, inflating total_hours by ~1h.
The fix deducts 1h meal break, floors to whole hours (client policy),
and uses DOLE 8h standard instead of 9h shift duration.

Dinh May 1: floor(7.28-1)/8 = 6/8 = 0.75 × ₱765 = ₱573.75 
(was: 7.28/9 = 0.81 × ₱765 = ₱618.80)
2026-05-22 14:25:50 +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
2ecce8a990 feat: enforce time rounding down to the nearest 30 mins for total_hours 2026-05-18 14:46:49 +08:00
2d37e3d3da feat: automatically deduct shift break duration from attendance total hours if shift break times are missing 2026-05-18 14:41:34 +08:00
0a9b564fdf fix: correctly calculate holiday premium addition for monthly earners 2026-05-18 14:17:26 +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
64cc09ad15 Fix: Deduct 1.5h meal break from ND hours per day + flat 10% rate
Biometrics doesn't track break in/out, inflating night_diff_hours.
Deduct 1.5h per night shift day for the untracked meal break.
Also removed OT multiplier compounding from ND — all ND hours
use flat hourlyRate × 10% per client policy.

Dinh Chavez: 24h raw → 12h adjusted = ₱114.75 (exact client match)
2026-05-15 22:08:37 +08:00
1018f04fec Fix: Use attendance record as ground truth for rest day instead of weekend default
Employees who work Saturdays (like Ana Regina) were having their LWOP on Saturdays ignored because the system treated all Saturdays as rest days. Now the attendance record's is_rest_day flag overrides the weekend assumption.
2026-05-15 19:22:58 +08:00
ca48602a76 Fix: Prorate holiday pay for daily employees, flat 10% ND rate, detect LWOP from absent status 2026-05-15 19:16:54 +08:00
6f901c2e72 Fix: Extract holiday pay from basic salary, remove Rest Day Premium, fix holiday count in payslip summary 2026-05-14 13:05:42 +08:00
f04c90ffc4 Fix: Holiday pay logic - prevent double pay for monthly employees, don't count special holidays as absences 2026-05-12 12:47:51 +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
cf78d71feb Fix: Make payslip PDF template dynamically render all earnings and deductions 2026-05-11 13:10:45 +08:00
cd05e3a4f8 Fix: Ensure Time Exempt status still deducts Tardiness and Undertime 2026-05-11 12:44:17 +08:00
511510114c Fix: Overhaul monthly earners Base Salary logic to start at Cut-off Max and deduct absences 2026-05-11 12:37:13 +08:00
827135d343 Fix: Stop double statutory deductions for daily earners, enforce overtime approval, and reflect un-synced birthday leaves 2026-05-11 12:21:21 +08:00
3047b1a504 Fix: Resolves payroll computation inaccuracies, Phantom Holiday Pay, LWOP deductions, Rank & File daily wage formulas, and Payslip UI navigation lock-in issues identified during parallel testing. 2026-05-06 12:36:16 +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
4fe67fe6c4 Fix attendance record saving validation when employee default shift is missing 2026-04-30 13:55:10 +08:00