Human Resources module

One file per employee — personal data, contract, pay, documents and dependents; the masters the organisation is built on — departments, job titles, pay grades and work schedules; and country profiles carrying the social-insurance, tax, gratuity and leave rules with their effective dates. The system reminds you of a document before it expires, not after.

Employee list

Path: Human Resources → Employees/hr/employees

Purpose: the module's master list: every employee in the company in every status — probation, active, suspended and terminated — because hiding leavers would hide documents that still expire and still need renewing. The filters sit in the page header itself, not in a separate dialog, and apply as soon as you change them.

ElementMeaning
SearchBy code, Arabic or English name, or one of the ID numbers.
StatusProbation Active Suspended Terminated — leave it empty to show everyone.
DepartmentNarrows the list to one department.
Expiring soonA toggle that flips the list to employees whose documents or contracts expire within the reminder window, or have expired unrenewed. Press it again to return to the full list.
ColumnsCode, Employee, Department, Job Title, Branch, Hire Date, Contract End, Total, Next Expiry, Expiring, Status.
New EmployeeA header button that opens a blank card. Clicking any row opens that employee's card for editing.
ℹ️ First status: a new employee is created in Probation and does not flip to Active on its own when the probation period ends — you change it on the Contract & Job tab once the appointment is confirmed.

Employee card

Path: Human Resources → Employees → New Employee / Employee Card/hr/employees/new and /hr/employees/:id/edit

Purpose: the whole employee file in five tabs, with an internal notes panel at the side for what does not belong in any field (a verbal agreement, a special circumstance…). Saving keeps you on the card, so you can work through the tabs at your own pace.

Personal tab

FieldMeaning
CodeGenerated on save with the EMP- prefix (EMP-0001…); never typed.
Arabic Name / English NameLists and reports show whichever matches the interface language.
Gender / Date of BirthFeed the leave conditions in the country profile (maternity, "after age").
NationalityIn the Gulf, nationality decides the social-insurance scheme (national / expatriate) — an employee without one cannot be paid once payroll arrives.
National ID, Residence No., Passport No.Official identifiers. The national ID and the residence number are unique within the company.
Phone / Email / AddressContact details.

Contract & Job tab

FieldMeaning
Hire DateStart of service; seniority and gratuity count from it.
Probation EndsSuggested automatically as hire date + the probation months in settings; edit freely.
Contract TypeIndefinite / Fixed term / Part time.
Contract EndFor fixed-term contracts; feeds the expiry reminders.
Department / Job Title / Grade / Work SchedulePicked from the masters described below, never typed.
Line ManagerAnother employee from the list.
Country ProfileThe profile contributions, tax, gratuity and leave are read from — inherited from settings, overridden here for an employee in a branch in another country.
Branch / Cost Centre / ProjectFor accounting allocation. The employee's own cost centre overrides the department's.
StatusProbation / Active / Suspended / Terminated — with Terminated, the termination date appears.

Pay & Payment tab

FieldMeaning
Basic SalaryMust fall between the minimum and maximum of the chosen grade, or the save is refused.
Housing Allowance / Other Allowances / TotalThe total is computed from the three, not typed.
Payment MethodBank transfer / Cash / Wage protection (WPS).
Bank / IBANFor transfers and WPS. The IBAN is unique within the company.
Social Insurance No. / Tax File No.The employee's numbers with the insurance and tax authorities.
ℹ️ Initial pay: what you enter here is carried into pay elements in the payroll phase; from then on it changes through an approved pay-change document, not on the card.

Documents tab

FieldMeaning
TypeID card, Passport, Residence permit, Work permit, Visa, Driving licence, Contract, Medical certificate, Qualification, Other.
Number / Issued / Expires / Issued By / NotesThe document's details. The expiry date is what the system reminds you about.
AttachmentsA button on each row opens the upload dialog: upload the image, paste it from the clipboard with Ctrl+V, or scan it straight from the scanner.
⚠️ Save first: a row cannot take attachments until the employee has been saved once. In the grid a row turns red when its document has expired and amber when it expires within the reminder window.

Dependents tab

FieldMeaning
Name / Relation / Gender / Date of Birth / National IDRelation is Spouse, Child, Parent or Other. A register of the employee's dependents, as insurance and residence files ask for.

Steps

  1. From the employee list press New Employee.
  2. Fill in the Personal tab — both names, nationality and ID numbers — then save; the code appears.
  3. On Contract & Job set the hire date, contract type, department, job title, grade, work schedule and country profile.
  4. On Pay & Payment enter the basic salary within the grade's limits, the allowances, the payment method and the bank details.
  5. Add the documents with their expiry dates and save, then attach their scans from the attachments button on each row.
  6. Add dependents if any, and save.
⚠️ Refused on save: a national ID, residence number or IBAN already recorded for another employee, and a basic salary outside the grade's limits. Saving keeps you on the card — if "unsaved changes" is still showing afterwards, the save did not happen; read the red message.

Departments

Path: Human Resources → Departments/hr/departments

Purpose: the organisation chart as a tree: departments under departments, each with a manager and a cost centre its salaries are charged to. The list shows the tree with each department's head count.

FieldMeaning
CodeGenerated with the DEPT- prefix (DEPT-0001…).
Arabic Name / English NameThe department's name in both languages.
Parent DepartmentMakes this department a branch under another; empty = a top-level department.
Cost CentreWhere the department's salaries are charged by default — an employee's own centre overrides it.
Line ManagerAn employee from the list.
ActiveInactive departments vanish from pick-lists but stay on record.
⚠️ Deleting: a department with employees in it or departments under it cannot be deleted — deactivate it instead, or move its employees first.

Job titles

Path: Human Resources → Job Titles/hr/job-titles

Purpose: the list of titles (accountant, sales representative, driver…) picked on the employee card — so naming stays consistent and reports group correctly.

FieldMeaning
CodeGenerated with the JOB- prefix.
Arabic Name / English NameThe title in both languages.
ActiveDeactivate a title that is no longer used rather than deleting it.

Pay grades

Path: Human Resources → Pay Grades/hr/pay-grades

Purpose: the salary scale: each grade has a minimum and a maximum, and the employee card keeps the basic salary within them.

FieldMeaning
CodeGenerated with the GRD- prefix.
Arabic Name / English NameThe grade's name in both languages.
Minimum Salary / Maximum SalaryThe band.
ℹ️ The band is binding: an employee's basic salary must fall inside the grade — the card refuses to save outside it. Widen the grade, or move the employee to another, before raising the salary.

Work schedules

Path: Human Resources → Work Schedules/hr/work-schedules

Purpose: the working pattern an employee is assigned to: hours, days, weekend, and what changes in Ramadan.

FieldMeaning
CodeGenerated with the WS- prefix.
Arabic Name / English NameThe schedule's name in both languages.
Hours / Day, Days / WeekLength of the working day and number of working days.
Start / EndShift start and end times.
Ramadan HoursHours per day in Ramadan. Leave empty where there is no statutory reduction.
Weekend DaysMulti-select: Friday and Saturday, Sunday alone…
ActiveInactive schedules vanish from pick-lists.

Country profiles

Path: Human Resources → Country Profiles/hr/country-profiles

Purpose: what differs between countries — contributions, tax, gratuity, leave, hours and holidays — is rows with effective dates in a profile per country, not code buried somewhere. The first time the screen is opened, profiles for Egypt, Saudi Arabia, the UAE, Kuwait, Qatar, Bahrain and Oman are created automatically from the catalogue, one of them flagged as default from your company's country. The last four carry initial figures awaiting certification by a local accountant — the "Figures" column in the list says so plainly, so review them before running real payroll on them. Each profile has seven tabs.

TabWhat it holds
GeneralCode, Country, Currency, Calendar (Gregorian / Gregorian & Hijri — display only; dates are always stored Gregorian), Month Mode (Actual days / 30 days — governs pro-rating when hire or termination falls mid-month), Default.
InsuranceCards: Code, names, Applies To (Nationals / Expatriates / Everyone), Effective From / To, Hired From / Until, Employee %, Employer %, Base (Basic / Basic + housing / Gross), Floor, Cap. The engine picks the latest effective row that fits the employee's nationality and hire date.
TaxA table of brackets: Effective From, From, To, Rate %, Annual Personal Exemption. "Ladder Min. Income" carries Egypt's bracket-dropping rule and stays 0 where there is one ladder.
GratuityCards: Effective From / To, Enabled, Base, First-tier Years, Days/Year (first), Days/Year (after), Cap (months), Resign < 2y / 2–5y / 5–10y / > 10y (1 = full, 0 = none).
LeaveCards: Kind (Annual, Sick, Maternity, Paternity, Hajj, Marriage, Bereavement, Study, Unpaid), Effective From, Days, Tier, After Years, After Age, Min. Service (months), Paid %, Once per service, Gender.
HoursCards: Effective From / To, Hours / Day, Hours / Week, Ramadan Hours and Ramadan Hours / Week, Overtime Day / Night / Rest Day / Holiday % (135 = one and a third).
HolidaysPer year: date, name, days. Islamic holidays are seeded as estimates — review them once announced; saved year by year with "Save Year's Holidays".
ButtonEffect
SaveSaves the profile with all its tables (except holidays, which have their own button).
Restore CatalogueReplaces the profile's tables with the seeded figures for that country, and its year's holidays — after confirmation.
Clone ProfileA copy under a new code for a free zone or a branch with different terms — starts from the source figures, edited freely.
DeleteCloned profiles only; the three catalogue profiles cannot be deleted.

Steps

  1. Open the screen; the three seeded profiles appear.
  2. Open your country's profile and go through the tabs with a local accountant; correct what needs it and save.
  3. On Holidays pick the year, review the estimated dates, then Save Year's Holidays.
  4. If you have a branch in a free zone with different terms, press Clone Profile and edit the copy.
  5. Set the default profile in Settings (or tick Default on the General tab).
⚠️ Effective-dated rules: when the law changes, add a new row with a new effective-from date — do not edit or delete the old row, since whatever was computed with it stays computed with it. And Restore Catalogue wipes your edits across the whole profile; press it only when you really want to go back to the seed.

Settings

Path: Settings → Human Resources tab/settings

Purpose: four keys that govern the whole module, on the general settings screen rather than a screen of their own.

FieldMeaning
Default Country ProfileInherited by every new employee unless overridden on the card; empty = the profile flagged as default on the profiles screen.
Reminder Days Before Document ExpiryHow many days before expiry the reminder starts and the row turns amber. Default 30; 0 disables the reminder.
Probation MonthsFrom which Probation Ends is suggested on a new employee. Default 3.
Pay DayBetween 1 and 28 so it exists in every month. Default 25.

Daily reminders

Path: a background job — arrives in the notification bell.

Purpose: a job that runs once a day and notifies every user who holds HR.Employees.View of three things:

AlertWhen
Documents expiringAn employee document expiring within the reminder days, or expired and not renewed.
Contracts endingA fixed-term contract approaching its end date.
Probation endingAn employee under probation whose probation end is approaching — so you decide to confirm or let go.
💡 On demand: the Expiring soon button on the employee list shows the same set whenever you want it, and the reminder appears in the notification bell like every other system notification.

Permissions and role templates

Path: Administration → Roles — see Administration

GroupActions
HR.EmployeesView, Create, Edit, Delete — View is also what brings the daily reminders.
HR.Departments HR.JobTitles HR.PayGrades HR.WorkSchedulesView, Create, Edit, Delete.
HR.CountryProfilesView, Edit.
HR.SettingsView, Edit.

Two role templates are created for the company when the module is enabled:

TemplateWhat it grants
مسؤولو الموارد البشرية (HR officers)Every permission in the module — employees and their documents, masters, country profiles and settings — plus viewing cost centres.
مشرفو الأقسام (department supervisors)Read-only on employees, departments and job titles — for the line manager.
ℹ️ Next phase: payroll processing — calculation, payment and its journal entries — is the module's next phase and is not released yet; do not look for it in this version.