# QA Bug Tracker: Bulk Employee Import | ID | Type | Priority | Item (Description & Resolution) | Module | Owner | Target Release | Target Date | Dev Status | QA Status | Next Action | Notes | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | **BUG-073** | Bug | šŸ”“ High | **UNCHECKED ROWS SUBMITTED:** Selected state bypassed. Fixed by enforcing `selectedRows.has(idx)` in the final payload map. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | Handled via O(1) Set lookup. | | **BUG-074** | Bug | šŸ”“ High | **HIRE DATE OMITTED:** Breaks service leave logic. Fixed by extracting `Date Hired` in frontend and binding `$hire_date` in backend SQL. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | Universal across all 3 DBs. | | **BUG-075** | Bug | šŸ”“ High | **ORPHAN USER LOGIN:** Ghost accounts on fail. Fixed by injecting `SAVEPOINT bulk_employee_row` and rollback on fail in CJ. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | Already existed in Solid/Bigbys. | | **BUG-076** | Bug | šŸ”“ High | **MISSING PASSWORD:** Employees locked out. Fixed by injecting Bcrypt/SHA hash payload into CJ employee table inserts. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-077** | Bug | šŸ”“ High | **PRIVILEGE ESCALATION:** Backend trusted LocalStorage payload for `superadmin`. Fixed by strictly checking `$_SESSION['user']`. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | Critical security patch. | | **BUG-078** | Bug | šŸ”“ High | **NEGATIVE SALARY:** Missing bounds check destroyed payroll math. Fixed by strictly asserting `$input_salary < 0` rejection. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-079** | Bug | šŸ”“ High | **PREDICTABLE DEFAULT PASSWORD:** Used Employee ID. Fixed by defaulting to `LASTNAME@YYYY` (Birth Year) instead. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | Security upgrade. | | **BUG-080** | Bug | 🟔 Medium | **ATTENDANCE CREATION IGNORED:** Seed errors suppressed. Fixed via Biometric backfill / Sync map on successful rows. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-081** | Bug | 🟔 Medium | **DATE OF BIRTH INVALID:** Bypassed MySQL checks. Fixed by enforcing strict `DateTime::createFromFormat('Y-m-d')` on PHP side. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | Prevents `0000-00-00` corruption. | | **BUG-082** | Bug | 🟔 Medium | **DUPLICATE BIOMETRICS:** Not flagged. Fixed by mapping `Biometric ID` in frontend and checking duplicates via Set map. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-083** | Bug | 🟔 Medium | **MISLEADING UI (Skipped/Partial):** Frontend ignored `data.skipped`. Fixed by injecting skipped reasons into SweetAlert DOM. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-084** | Bug | 🟔 Medium | **SKIPPED REASONS HIDDEN:** Fixed alongside BUG-083 by parsing skipped array into an HTML list. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-085** | Bug | 🟔 Medium | **ID/BIO VALIDATED LATE:** Fixed by surfacing duplicate checks instantly on frontend via Set logic. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-086** | Bug | 🟔 Medium | **AUTOMATIC "REGULAR" CLASSIFICATION:** Hardcoded. Fixed by dynamically binding `Employee Type` from the uploaded sheet. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-087** | Bug | 🟢 Low | **EMPTY ARRAY "SUCCESS":** Returns success for 0 rows. Fixed by adding `empty($employeesInput)` guard clause in PHP. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-088** | Bug | 🟢 Low | **CSV WARNINGS IGNORED:** `Papa.parse` errors dumped. Fixed by surfacing `results.errors` to the user via SweetAlert. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-089** | Bug | 🟢 Low | **INVALID EXCEL UNCLEAR:** Generic crash. Fixed with `try/catch` block suggesting password-protection/corruption issues. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-090** | Bug | 🟢 Low | **HEADER MATCHING FLAW:** Grabbed wrong ID column. Fixed by asserting strict `===` matching before `includes()` fallback. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-091** | Bug | 🟢 Low | **MISSING NAMES:** Caught late. Fixed by flagging empty First/Last names as invalid directly in the React frontend table. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | | | **BUG-092** | Bug | 🟢 Low | **LARGE FILES SLOW:** O(N²) loop froze browser. Fixed by rewriting duplicate-checking algo to use O(N) Hash Sets. | Employee Mgmt | | Solidmark, BQFC, CJIS/TUF | 2026-09-28 | Done | Passed | None | Drastic performance gain. |