Good morning 👋
Loading attendance data...
⚠️ Needs Your Attention
⏱ Overtime Leaders
📅 Today's Status
🏢 Dept Summary
🌴 Leave Overview
🏦 Loans & Advances
Loading…
🔒 License & System Health
📊 HR Analytics
Trend range:
📈 Hires vs Resignations — Monthly Trend
Loading…
⚖️ Gender Distribution
Loading…
🎂 Age Distribution
Loading…
📋 Employment Type
Loading…
🏢 Department Headcount
Loading…
🏷️ Designation Headcount
Loading…
📋
Select an employee and month
| Emp No | Name | Dept | Position | Group | Type | Shift | OT | Pre OT | Grace | Actions |
|---|
Employee Directory
Complete workforce profiles
✨
New Employee Entry
0
Active
0
Inactive
0
Resigning
0
On Leave
1
ORGANIZATION DETAILS2
PERSONAL INFORMATION3
EMPLOYMENT DETAILSWages Board: No-Pay ÷26 · Late ÷208 · OT ÷200 | Shop & Office: No-Pay ÷30 · Late ÷240 · OT ÷240
4
COMPENSATION & STATUSEmployee Status
?
Employee
Grades carry OT multipliers, leave entitlements and pay frequency. Employees inherit these from their assigned Grade — individual overrides still take priority where set on the employee record.
| Code | Name | Staff Type | Pay Freq | Work Days | Work Hrs/Day | OT 1× | OT 2× | OT 3× | Leave Calc Days | Annual | Casual | Sick | Employees | Actions |
|---|
Add Grade
Identity
Pay & Working Time
Overtime Multipliers — used unless an employee or shift sets its own
Leave Entitlement — applied when initializing employee leave balances
Create roster groups, assign employees and weekly shifts
Fixed · Open · Half Day · Off Day with Pre/Post OT configuration
Group:
Month:
💡 Click any cell to set shift · Right-click for copy/paste · Blue border = override active
Monthly Shift Roster
Upload Fingerprint File
🖐️
Drop your .txt file here
EmpNo | DateTime | 1 | Terminal | InOut | 0
Last 50 Punch Records
| Emp No | Date Time | Terminal |
|---|
Manage login users and permissions
| Username | Full Name | Role | Dept | Status | Last Login | Actions |
|---|
Daily rate = Basic ÷ working days (Settings: currently per SP.workDays). Hourly = daily ÷ 8. OT pay uses each day's effective multiplier (Employee > Grade > Shift); holiday/Sunday hours use the 1.5×/2.0× tier split from the timesheet. EPF/ETF/APIT apply only when the employee is flagged eligible.
🔒 License Details
Checking…
🔌
Database Connection
Which company's Supabase project this copy of the app is connected to
Currently connected: —
🧹 Storage Maintenance
The browser keeps a local cache (~10MB) for speed. It's automatically pruned as it fills up, and fully cleared before it could ever fail — your real data always lives safely in the database, so this never loses anything.
🏢 Organization Master Data
Manage the lists used in Employee Profiles — changes update the entry form instantly🖐
ZKTeco Fingerprint Machine — Attendance Bridge
Pulls real-time attendance from your ADMS device via the mastershr.net bridge
⚪ Not configured
📋 Adding a new company — do this once per client
1.Go to your Clients & API Keys dashboard → + Add Client
2.Copy that client's API Key and the machine's table code, paste both below
3.Click Test Connection — then Sync Punches to pull attendance
⚙️ Advanced: self-hosted bridge (only if not using mastershr.net)
These fields are only used if you're running your own
hris_bridge.php instead of the shared mastershr.net bridge above.Fingerprint Machines (att_ table per machine)
Each machine can have its OWN Client API Key. Leave a machine's key blank to use the main Client API Key above. Supports up to 3 devices at once (e.g. an old machine and its replacement on different keys).
⬇ Download Bridge Script
Upload to the same server where ADMS database runs
⚙️ System Parameters
General
Checking…
Set this only when a company issues numbers from more than one range. The New Employee Entry form then shows a series picker, and the next number is counted within the chosen range.
Attendance Rules
OT Round Off applies only to OT hours (1.5×/2.0×/Holiday), not regular work hours — e.g. "Round Down" + 15 min turns 3h18m OT into 3h15m.
Sri Lanka Statutory (EPF / ETF)
🏢
New Company Setup — Live Database Schema Export
Reads the real, current schema straight from Postgres — always accurate, never stale
📋 Setting up a new company
1.Create a fresh Supabase project for the new company
2.Click ↻ Refresh from Live Database below to pull this (current) company's exact schema
3.Click 📋 Copy Full Script, paste into the new project's SQL Editor, run once
4.Point the new company's copy of this HTML file at the new project's URL + key (Settings, or edit
SB.url/SB.key)
🔑
License Generator
Creates a license row directly in whichever database this app is currently connected to
⚠️ This writes into: — — if that's not the new company's database, go to Settings → Database Connection and switch first.
📋 Licenses in the currently-connected database
Loading…
Employee:
Group:
Dept:
From:
To:
⚙️
Process Attendance
Recalculate attendance records based on shift roster, shift settings and attendance processing rules
⚠️ Note: Processing will overwrite calculated fields (Work Hrs, OT, Late, Status) for all records in the selected date range.
Manually edited records (M badge) are preserved and not recalculated.
📅 Processing Parameters
⚙️ Attendance Processing Settings
ACTIVE SYSTEM PARAMETERS
🗓 Holiday Calendar
| Date | Day | Holiday Name | Type | OT Mult | Actions |
|---|