HR & payroll
The employee lifecycle end to end. Departments and positions, attendance, rosters and overtime, leave with balances, payroll runs and payslips, staff loans with recovery, appraisals, assigned assets, and separation.
- Attendance, rosters, overtime
- Leave types, balances, and requests
- Payroll runs, payslips, staff loans
- Recruitment, appraisals, separation
HR covers the whole employment relationship, from the vacancy to the final settlement, on the same audit trail and the same Solar Hijri calendar as the rest of the system.
What is in it
- Departments, positions, and the employee record behind both
- Attendance, shift rosters, and overtime with approval
- Leave types, accrual rules, balances, and requests
- Payroll runs, payslips, and salary structures
- Staff loans and salary advances, recovered from payroll
- Recruitment, appraisals, assigned assets, separation
Payroll reads the public-holiday calendar from Master data, so a Solar Hijri holiday counts as a holiday without anyone converting a date by hand.
How HR & payroll fits the rest of the system
Bounded
The module owns its tables and its service interface. Other modules reach in only through services and async events — never SQL.
Test-vector verified
Every domain rule has two implementations — Dart and Java — and a single shared test vector. CI fails on any divergence.
Audit-logged
Every command writes an entry to the append-only audit log with a chain hash. The daily verifier proves the log has not been tampered with.