1. Overview
The HR module is the people and employment core of Vertex ERP. It manages:
| Area | What it covers |
|---|---|
| Identity & employment | Person (civil data) linked 1:1 to Employee (employment record) |
| Organization | Departments, positions, job grades, assignments, managers |
| Lifecycle | Hire/onboarding, status changes, offboarding/exit, checklists |
| Time off | Leave types, entitlement/deduction rules, requests, approvals, holidays/weekends |
| Career | Promotions, periodic promotions, grade changes, rewards, penalties |
| Development | Training course catalog and employee enrollments |
| Records | Relatives, contacts, qualifications, unions, documents/attachments |
| Communication | Administrative circulars and in-app notifications |
| Self-service | Employee portal (web) and portal mobile APK distribution |
| Insights | HR dashboard and employee/attendance/payroll-related reports |
HR does not own payroll calculation or raw attendance punches. Those live in the Payroll and Attendance modules; HR stores the employment facts those modules consume, and the employee portal embeds selected Attendance/Payroll screens.
2. Getting started
2.1 Recommended setup order
Before day-to-day HR work, configure master data in this order:
- Lookups — nationalities, religions, marital statuses, employment types, leave types, penalty/reward types, institutions, exit reasons, unions, academic degrees, job grades, positions, department types, benefit plans, insurance companies, contact/relationship types.
- Departments — build the org tree.
- Holidays & weekend days — needed for accurate leave day counting.
- Leave entitlement / deduction rules — if leave balances or pay impact depend on rules.
- Checklist templates — onboarding and offboarding item lists.
- Training courses — if you will enroll employees in training.
- Employees — create or receive from Recruitment, then assign to departments/positions.
2.2 Main navigation (admin)
| Menu | Purpose |
|---|---|
| Dashboard | Counts and pending leaves snapshot |
| Employees | List, create, open employee file |
| Assignments | Org placements and transfers |
| Departments | Department tree |
| Lookups | Reference lists |
| Training Courses / Trainings | Catalog vs enrollments |
| Official & Weekly Holidays | Calendar exceptions |
| Leaves | All leave requests |
| Leave entitlement / deduction rules | Balance and deduction policy |
| Promotions / Periodic Promotions | Manual and calculated career moves |
| Penalties / Rewards | Disciplinary and recognition records |
| Circulars | Publish admin announcements |
| Agenda | Org-wide agenda view (admin) |
| Employee portal mobile app | Upload APK versions |
| Employee Reports | Operational and payroll-linked reports |
2.3 Employee detail file
Opening an employee (/hr/employees/:id) shows tabs for the full HR file:
| Tab | Content |
|---|---|
| Info | Personal + employment identity |
| Assignments | Department / position history |
| Relatives | Dependents / family |
| Insurance | Benefit / health insurance enrollments |
| Qualifications | Academic degrees |
| Trainings | Course enrollments |
| Promotions | Promotion history |
| Rewards / Penalties | Awards and sanctions |
| Leaves / Leave balance | Requests and remaining days |
| Attachments | Documents |
| Unions | Union membership |
| Contacts | Phones, emails, etc. |
| Exits | Exit (termination) records |
| Category changes | Job grade changes |
3. Reference data (lookups)
Lookups are shared lists used when creating employees and HR transactions. Maintain them under Lookups (and related dedicated screens).
3.1 Lists managed in Lookups
| Lookup | Used for |
|---|---|
| Marital statuses | Person profile |
| Nationalities | Person profile |
| Religions | Person profile; religion-based leave rules |
| Department types | Classifying departments |
| Positions | Assignments (linked to job grade, managerial flag) |
| Employment types | Contract / employment category on assignment |
| Leave types | Leave requests and balances |
| Penalty types | Penalties |
| Reward types | Rewards |
| Contact types | Contact channels |
| Relationship types | Relatives |
| Institutions | Qualifications |
| Insurance companies | Benefit plan providers |
| Benefit plans | Employee benefits / insurance |
| Exit reasons | Employee exits |
| Unions | Union membership |
| Academic degrees | Qualifications |
| Job grades | Grades, promotions, positions (min/max salary, max promotions, sort order) |
3.2 Related configuration screens
| Screen | Notes |
|---|---|
| Departments | Dedicated tree UI (not only a lookup tab) |
| Training courses | Course catalog |
| Leave type entitlement rules | How annual (or other) entitlement is calculated |
| Leave type deduction rules | How leave affects pay percentage / deductions |
| Official & weekly holidays | Public holidays + weekend days of week |
| Checklist templates | Onboarding / offboarding task lists |
Leave type highlights: max days per year/request/service, carry-over, paid/unpaid, requires approval, affects promotion, religion-based, once-in-service, per-event, and Affected by holidays (exclude weekends/official holidays from day count).
4. Organizational structure
4.1 Departments
- Hierarchical (
Parent→ child). - Typed via Department type.
- UI supports viewing the tree, adding unassigned employees, and seeing the derived department manager.
4.2 Positions and job grades
- Position: name, code, optional job grade, description, managerial flag, active flag.
- Job grade: code, name, salary band (min/max base), max promotions, sort order — used for career progression. An employee’s current grade is driven by grade-change / promotion history, not a single editable field alone.
4.3 Assignments
An assignment places an employee in a department with a position and employment type for a date range.
| Field | Meaning |
|---|---|
| Employee | Who is placed |
| Department / Position | Where and in what role |
| Employment type | Employment category |
| Start / End date | Open assignment has no end date |
| Is manager | At most one open manager per department |
| Contract no. / date | Optional contract metadata |
| Notes | Free text |
5. Employee master records
5.1 Person vs Employee
| Record | Role | Typical data |
|---|---|---|
| Person | Civil identity | Name, father/mother name, gender, birth date/place, national number, marital status, nationality, religion, address; owns contacts |
| Employee | Employment | Employee number, social insurance number, hire date, employment status; owns assignments, leaves, career events, etc. |
Relationship: one Person ↔ one Employee.
5.2 Employment status
| Status | Meaning |
|---|---|
| Active | Working |
| Probation | Probationary period |
| Suspended | Temporarily suspended |
| Terminated | Employment ended |
Status changes are controlled by lifecycle rules (unless Override lifecycle permission is used). Changes are recorded in employee history.
5.3 Creating an employee
Required typically: personal identity fields, employee ID number, hire date; optional social insurance number and initial job grade.
On create, the system typically:
- Creates Person + Employee (default status Active).
- Optionally records an initial grade change.
- Creates a login (Identity) user.
- Starts the hire lifecycle → onboarding checklist (if templates exist).
Employees can also be created via Recruitment when a job offer is accepted (person, employee, assignment, qualifications, and documents transferred).
5.4 Soft delete and restore
Deleting an employee generally requires a confirmed exit (or lifecycle override). Soft-deleted persons/employees can be listed and restored according to application rules.
6. Assignments and transfers
6.1 Create assignment
- Open employee → Assignments, or use Assignments / Departments.
- Select department, position, employment type, start date.
- Optionally mark Is manager (validated: one open manager per department).
- Save.
6.2 Transfer
Transfer closes the current open assignment (end date = day before effective date) and opens a new one. Requires transfer/edit permission. History is written.
Alternatively, submit a change request of kind Transfer for approval (see §8).
7. Employee lifecycle (hire, status, exit)
7.1 Hire / onboarding
7.2 Status change
HR can change status directly (permission Change status) or via a Status change request. Allowed transitions follow lifecycle policy (e.g. Active ↔ Probation ↔ Suspended ↔ Terminated), with an override path for privileged users.
7.3 Exit (offboarding)
Employee exit statuses: Draft → Confirmed or Cancelled.
Typical fields: exit date, exit reason, decision number, last working day, notes, linked checklist.
Rules of thumb:
- Confirming exit requires required checklist items completed (unless override).
- Confirmed exit sets employment status to Terminated.
- Soft-delete of the employee record is gated on a confirmed exit (or override).
7.4 Checklists
| Kind | When spawned |
|---|---|
| Onboarding | On hire |
| Offboarding | On draft exit |
Statuses: Open → Completed / Cancelled. Items can be marked done; whole checklist can be completed when requirements are met.
8. Change requests
HR change requests provide an approval layer for sensitive moves.
| Kind | On approval |
|---|---|
| Transfer | Executes assignment transfer from request payload |
| Promotion | Creates promotion from payload |
| Status change | Applies lifecycle status change |
Request statuses: Pending → Approved / Rejected / Cancelled.
Permissions: create, view, approve under HR Change Requests.
9. Leaves, balances, and holidays
9.1 Concepts
| Concept | Role |
|---|---|
| Leave type | Policy for a category of leave |
| Entitlement rules | How many days the employee is entitled to (admin, fixed, seniority, age, religion, per-event, proportional, …) |
| Deduction rules | How leave affects pay (fixed, by days, by seniority, combined) |
| Leave request | Dated request with day count, status, optional detail (e.g. maternity, marriage) |
| Leave balance | Entitlement minus approved leaves in the relevant period |
| Weekend days / official holidays | Used when the leave type is “affected by holidays” |
9.2 Leave request statuses
Pending → Approved / Rejected / Cancelled.
9.3 Request and approval flow
9.4 Holidays screen
- Weekend days: which weekdays are non-working (e.g. Friday/Saturday).
- Official holidays: name, date range, type (official / religious / national / other), optional yearly recurrence.
10. Career events (promotions, grades, rewards, penalties)
10.1 Manual promotions
Record from-grade → to-grade with effective date, decision number/date, notes. Written to history. Permission group: Promotions.
10.2 Periodic promotions
Automated eligibility calculation for periodic grade progression:
- Target working-day threshold and percentage rules are applied in the module (e.g. required working days and a base percentage scaled by effective days).
- Unpaid leave beyond a configured threshold can reduce effective days.
- If a grade’s max promotions is exceeded, the engine may propose the next grade by sort order.
- Apply creates real Promotion records and typically requires an active Payroll salary.
10.3 Grade (category) changes
Direct grade assignment with decision metadata — visible on the employee Category changes tab. Distinct from a full promotion workflow when you need to set grade without the promotion path.
10.4 Penalties
Penalty type, decision date/number, effective month, amount, reason, issuer, execution flag (IsExecuted). Feeds disciplinary history and can interact with payroll reporting.
10.5 Rewards
Same shape as penalties, with disbursement flag (IsDisbursed) instead of execution.
11. Benefits and insurance
- Benefit plans (lookup): code, name, type (Health insurance / Other), link to insurance company.
- Employee benefits: plan, policy number, start/end, notes — managed on the employee Insurance tab.
Permissions appear under Health Insurances for view/create/edit/delete of enrollments.
12. Training
| Concept | Meaning |
|---|---|
| Training course | Catalog entry: name, provider, description, paid flag, cost, location, active |
| Training | Enrollment of an employee on a course: registration/completion dates, session window, status, certificate number, notes |
Manage courses under Training Courses; enrollments under Trainings or the employee Trainings tab.
13. Supporting employee data
13.1 Contacts
Belong to the Person: value + contact type + default flag.
13.2 Relatives
Belong to the Employee: full name, relationship type, family allowance flag, phone, notes (lightweight — no separate Person record).
13.3 Qualifications
Academic degree + specialization + institution + graduation date + note.
13.4 Unions
Union, card number, join date, active flag.
13.5 Documents / attachments
Polymorphic files attached to employees and related HR objects (relative, training, qualification, assignment, promotion, penalty, reward, leave, benefit, circular, etc.). Support document type, metadata, expiry, and storage kind.
Employees with portal rights can manage their own attachments within permission limits.
13.6 Employee history
Audit timeline of meaningful changes (assignment, grade, promotion, status, exit, …) used by the Employee history report.
14. Circulars and notifications
14.1 Circulars
Administrative announcements with:
- Title and body
- Audience: All employees, Employee group (e.g. Payroll groups), or Selected employees
- Draft vs Published
- Optional document attachments
Admin path: Circulars (HR.Circulars.Manage). Employees read under portal Circulars.
14.2 Internal notifications
Per-employee inbox: title, message, type, optional deep link, read/unread. Used for leave events, circulars, and similar. Portal includes a notifications page and bell.
15. Employee portal and mobile app
15.1 Portal purpose
Self-service area for the signed-in employee (/hr/employee/..., also My profile), gated by View own employee profile and related own-* permissions.
15.2 Typical portal capabilities
| Area | Ability |
|---|---|
| Dashboard | Personal overview |
| Profile tabs | Info, assignments, relatives, insurance, qualifications, trainings, promotions, rewards, penalties, leaves, leave balance, attachments (mostly read-only except where permitted) |
| Leaves | Request leave; view own; cancel own pending |
| Agenda | Personal appointments / tasks / notes with reminders |
| Circulars | Read published circulars |
| Notifications | Inbox |
| Attendance (embedded) | Attendance records, work schedules |
| Payroll (embedded) | Advances, additional deductions (as permitted) |
| Account | Account-related actions / logout |
15.3 Personal agenda
Entries: title, notes, start/end, type (appointment / task / note), completed flag, all-day, reminder. Own create/edit/delete/view permissions.
15.4 Mobile APK administration
Employee portal mobile app screen: upload and update the portal Android APK for employees to download. Requires MobileApp.Manage.
16. Dashboard and reports
16.1 HR dashboard
Snapshot metrics such as: total employees, assignments, departments, positions, employment types, active assignments, pending leaves, total leaves, last updated time.
16.2 Reports
| Report | Contents |
|---|---|
| Active employees | Active staff identity and employment/salary-related snapshot fields |
| Monthly attendance | Present days, work/OT hours, late/absent days per employee-month |
| Monthly payslips | Period payslip summary (gross, compensations, grants, deductions, net, executed) |
| Employee history | Chronological HR events with from→to and decisions |
| Employee current status | Current status, grade, position, department, specialization, last change |
| Leaves | Leave rows with type, days, promotion-impact and applied rule/% |
| Payslip full details | Full payslip breakdown including rewards/penalties and execution meta |
Access each report via its own permission under HR.Reports.*.
17. Permissions summary
Permissions are ABP policies under the HR group. High-level split:
17.1 HR administrator (typical)
Full CRUD (as granted) on employees, assignments, lookups, promotions, penalties, rewards, qualifications, relatives, health insurances, trainings, holidays, leaves (including Approve), attachments, change requests, checklists, circulars, mobile app, and reports — plus Change status, Transfer, and optionally Override lifecycle.
17.2 Employee (portal role)
| Allowed (typical seed) | Not allowed (unless extra grants) |
|---|---|
| View own profile | Manage org lookups / departments |
| Request / view / delete own pending leave | Approve others’ leaves |
| Own attachments (create/view) | Publish circulars |
| Own agenda CRUD | Confirm exits / run periodic promotions |
| View holidays, assignments, quals, relatives, insurance (as granted) | Soft-delete other employees |
| Embedded attendance / advance permissions as configured | Full reports suite |
Always align role grants in Administration → Roles with the least privilege needed.
18. Integration with other modules
| Module | How HR connects |
|---|---|
| Recruitment | Accepted offer creates Person/Employee/Assignment/Qualifications and moves candidate documents; triggers hire/onboarding |
| Payroll | Grades, promotions, penalties, rewards, benefits inform pay; periodic promotion apply needs active salary; circular audience can use employee groups; portal embeds advances/deductions; payslip reports |
| Attendance | Leave day calculation uses HR weekends/holidays; portal embeds attendance/schedules; monthly attendance report |
Appendix A — Quick reference: end-to-end procedures
A.1 Hire and place an employee
- Ensure lookups and departments exist.
- Employees → Create (or hire from Recruitment).
- Complete onboarding checklist items.
- Assignments → Create (department, position, employment type, start date).
- Add contacts, qualifications, documents as needed.
A.2 Process a leave
- Employee requests leave in portal (or HR creates).
- Approver opens Leaves, approves or rejects.
- Only Approved leaves consume balance.
- Use Leaves report for period analysis.
A.3 Exit an employee
- Employee file → Exits → Create (Draft).
- Complete offboarding checklist.
- Confirm exit → status Terminated.
- Soft-delete only when policy allows (confirmed exit / override).
A.4 Run periodic promotions
- Open Periodic Promotions.
- Calculate for one employee or batch.
- Review eligibility, proposed grade, percentage.
- Apply when Payroll salary is active.
- Verify Promotions / employee history.
A.5 Publish a circular
- Circulars → Create title, body, audience.
- Attach files if needed.
- Publish → notifications delivered.
- Employees read under portal Circulars.
Appendix B — Document control
| Item | Value |
|---|---|
| Title | HR Module User Guide |
| Source of truth | Application code under modules/hr and frontend/src/app/modules/hr |
| Format | Markdown + Mermaid |
| Screenshots | Not included (by design) |
This guide describes functional capabilities of the HR module as implemented in the Vertex ERP codebase. UI labels may appear in English or Arabic depending on the user’s language setting.