Solavel Docs

Contracts

Last updated

Contracts is where you keep track of every employee's employment contract: how long it runs, when it started, when it ends, and every renewal since. It warns you about contracts that end in the next 30 days, lists the ones that have already ended, and lets you renew a contract in one step, with an optional new salary.

Use it when you need to answer "whose contract ends this month?", to renew a contract before it lapses, or to see a person's renewal history. HR officers and owners use it weekly. Managers with records access use it before contract-end conversations.

There is no separate contract record in SolaHR. A contract is the set of contract fields on the employee record (start date, end date, period, signed date, contract file), plus the renewals added on top of it. You enter the first contract when you add or edit the employee (see Employees). This screen reads those fields and adds renewals.

Where to find it

  • Sidebar: People → Contracts.
  • URL: /contracts. One employee's contract opens at /contracts/{employee}.
  • From an employee: open the employee in People → Employees and choose the Contracts tab. It shows the same contract data and also has Renew contract.
Who sees it Condition
Menu item and list Your role has View warnings, documents, contracts (hr.records.view) and your plan includes Contracts.
Renew Contract, Download Contract, Download Identification Your role also has Manage warnings, documents, contracts (hr.records.manage).

If your plan does not include Contracts, the page shows Not included in your plan ("This module is not enabled for your organization."). If your role lacks the permission, you see Access denied ("You do not have permission to view this page.").

Screen tour

Header

The page title is Contracts with the subtitle Track employee contracts and renewals. The list has no header buttons. You create contracts on the employee record, and you renew them from a contract's detail page.

Summary tiles

Four tiles sit across the top. They always count the whole organization. Your filters do not change them.

Tile What it counts
Active All employees whose employment status is Active, whatever their contract dates.
Expiring Soon Active employees whose contract end date falls between now and 30 days from now.
Expired Employees whose status is contract ended, plus anyone whose contract end date is already in the past. Resigned or terminated people with a past end date are counted too.
Renewals This Month Renewals recorded in the current calendar month, counted by the date you saved them, not by the new start date.

The Active tile counts every active employee. The Active status filter is narrower: it only shows active employees with no end date or an end date more than 30 days away. So the tile can show a higher number than the filtered list.

Filters

Filter What it does
Search Matches the employee's name or employee number. Partial text works, for example EMP-00 or Haddad.
Status All, Active, Expiring Soon or Expired. Leave it on All to show everyone.
Contract Period A labelled box: type a number of months, for example 12 or 24. It shows only contracts with exactly that period.

Any change to a filter takes you back to page 1.

The list

Column Meaning
Employee Name in bold, with the employee number underneath.
Contract Period Contract length, for example 24 Months. Shows — if no period is stored.
Start Date Start of the current contract term. After a renewal, this is the renewal's start date.
End Date End of the current contract term.
Status The employee's employment status badge: Active, contract ended, resigned or Terminated. This is the employee's status, not a contract status.
(action) View opens the contract detail page.

Rows are sorted by end date, soonest first. Employees with no end date come first. The list shows 15 rows per page, and the pager at the bottom shows the range and total, for example 1–15 of 42.

Every employee appears in the list, including those with no written contract. Their period and dates show —.

Empty state. If nothing matches, you see Nothing here yet — "No records match the current view." Clear the search or set Status back to all.

Contract detail page

Click View on a row. The page heading is the employee's name, with the employee number below it. A breadcrumb leads back to Contracts.

Area What it shows
Renew Contract (top-right) Only shown when you have manage permission and the employee's status is Active.
Tiles Start Date, End Date, Contract Period (for example 12 Months) and Salary (current monthly salary on the employee record).
Contracts card The employee's status badge, then Download Contract and Download Identification buttons when those files exist and you have manage permission.
Renewal History card One line per renewal: new start → new end · N Months, followed by the new salary entered with that renewal. It shows — when there have been no renewals, and — for the salary when a renewal kept the old salary.

Downloads

Button Downloads Shown when
Download Identification The ID document uploaded on the employee record (ID document field), saved as identification_<employee number>.<ext>. The employee has an ID document and you have manage permission.
Download Contract A legacy contract copy, saved as contract_copy_<employee number>.<ext>. Only for older records that still carry a legacy contract copy.

To download the current Contract file that was uploaded on the employee record or with a renewal, open the employee's Contracts tab and click Download. That also needs manage permission.

If a stored file is missing, the download fails with a "not found" error. Upload the file again on the employee record.

Add the first contract (on the employee record)

The first contract is entered on the employee, not on this screen.

  1. Go to People → Employees and click Add employee, or open an employee and click Edit.

  2. In the Contract section, tick Has a written contract.

  3. Fill in the fields:

    Field Required Rules / defaults Notes
    Has a written contract — Tick box. Leave it unticked if there is no written contract. Saving with it unticked clears the contract file, period and signed date.
    Contract start No Valid date. Start of the current term.
    Contract end Yes, when the box is ticked On or after Contract start. For a new employee, also on or after the joining date. Drives Expiring Soon and Expired.
    Date signed No Valid date. Shown on the employee's Contracts tab.
    Period (months) No Whole number, 1–120. Hint: Calculated automatically when left empty. For a new employee with a joining date and a period but no end date, SolaHR sets the end date to the joining date plus the period.
    Contract file No PDF, JPG or PNG, up to 5 MB. Stored privately. Replacing it deletes the old file.
    ID document (Personal information section) No PDF, JPG or PNG, up to 5 MB. This is the file Download Identification returns.
  4. Save the employee. The contract now appears on Contracts with its dates.

Renew a contract

You can renew from the contract detail page or from the employee's Contracts tab. Both create the same renewal. Only the employee tab lets you attach a new contract file.

From the Contracts screen

  1. Go to People → Contracts. Set Status to Expiring Soon to find the contracts that are due.

  2. Click View on the employee.

  3. Click Renew Contract (top-right).

  4. Fill in the Renew Contract dialog:

    Field Required Rules / defaults Notes
    Contract Period Yes Whole number, 1–120 months. Defaults to 12. Length of the new term.
    New Start Date No Valid date. Leave it blank to start the day after the current end date. If the employee has no end date, the term starts today.
    New Salary No Number, 0 or more, two decimals. Fill it in only if the salary changes. Leave it blank to keep the current salary.
    Notes No Up to 1,000 characters. Stored with the renewal.
  5. Click Save. You see Updated successfully. The dialog closes and the page reloads.

From the employee's Contracts tab

  1. Open the employee in People → Employees and choose the Contracts tab.
  2. Click Renew contract (shown for active employees when you have manage permission).
  3. Fill in New period (months) (required, defaults to 12), Contract start, New salary (optional), Contract file (PDF/JPG/PNG up to 5MB) and Notes.
  4. Click Confirm (or Cancel). You see Saved successfully.

What a renewal changes

When you save a renewal, SolaHR does all of the following in one step. If any part fails, nothing is saved.

What Result
New end date Start date plus the period in months. For example, start 1 Nov 2026 + 12 months = 1 Nov 2027.
Renewal record Stores the previous start date, end date and period, the new start date, end date and period, the new salary, the contract file, the notes and who renewed it. It appears under Renewal History and on the employee's Renewal history table.
Employee contract fields Contract start, Contract end and Period are replaced with the new term. The original joining date is never changed.
Contract file Replaced only if you attached one (employee tab only).
Salary The employee's salary is replaced only if you entered New Salary. Payroll calculated after this uses the new amount. Payslips and runs already calculated are not changed.
Status If the employee was not Active, they are set back to Active and the change is logged with the reason contract renewal.
Counters Renewals This Month goes up by one. The employee leaves Expiring Soon if the new end date is more than 30 days away.

Errors you may see

Message Cause Fix
Field error on Contract Period Empty, not a whole number, below 1 or above 120. Enter 1–120.
Field error on New Salary Not a number, or negative. Enter a positive amount or leave it blank.
Field error on Contract file Wrong type or larger than 5 MB. Upload a PDF, JPG or PNG under 5 MB.
You do not have access to this action. Contact your workspace administrator. Your role lacks manage permission. Ask an Owner or SolaHR Administrator.
Status not confirmed — "We could not confirm whether the change completed. Check the current status before submitting again." The connection dropped while saving. Click Check current status and look at Renewal History before you try again. Otherwise you could add the renewal twice.

Statuses and lifecycle

Contracts have no status of their own. The screen combines the employee's status with the contract end date:

Contract state (filter/tile) Rule What you can do
Active (filter) Employee is Active and the end date is empty or more than 30 days away. View, renew early, download files.
Expiring Soon Employee is Active and the end date is within the next 30 days. Renew, or plan the exit (see End of Service).
Expired Employee status is contract ended, or the end date has passed. View and download. To renew, set the employee back to Active first (see below).

Employee statuses shown in the Status column:

Status badge Meaning Renew allowed?
Active Currently employed. Yes
contract ended The contract term ran out. A daily check can set this when an active employee's end date has passed. No. Change the status to Active on the employee first.
resigned Employee resigned. No
Terminated Employment terminated. No

The daily check that sets contract ended does not always run straight away. Until it does, an employee whose end date has passed can still show Active while being counted under Expired. Renew or close the contract once you see it under Expired, rather than waiting for the status to change.

Renew an employee whose contract already ended. Open the employee, change the employment status back to Active (see Employees), then renew. Leave New Start Date blank if the new term should run on directly from the old end date, or enter the actual restart date.

Permissions

Role See Contracts Renew Download files
Owner Yes Yes Yes
SolaHR Administrator Yes Yes Yes
Manager-level SolaHR role (default manager permissions) Yes Yes Yes
Member-level SolaHR role (default member permissions) Yes (read-only) No No
HR Manager, Department Manager, Attendance Recorder, HR Viewer (scoped roles) No. Records are not part of the scoped presets. No No

Owners can change what each role holds in Team access and Settings. The server checks the permission on every request, so a hidden button cannot be reached by typing a URL.

The contract list covers the whole organization. It is not limited to a manager's departments, which is why scoped roles do not get it.

Worked examples

Example 1 — quick renewal of an expiring contract

Al Noor Trading LLC employs Omar Haddad (EMP-0007, Store Supervisor, Dubai Main) on a 12-month contract from 1 Nov 2025 to 1 Nov 2026, at AED 8,500 a month. On 10 October 2026:

  1. Mariam (HR officer) opens People → Contracts. Expiring Soon shows 3.
  2. She sets Status to Expiring Soon. Omar is listed with End Date 01 Nov 2026 and status Active.
  3. She clicks View, then Renew Contract, leaves Contract Period at 12, leaves New Start Date blank, enters New Salary 9000, and in Notes types Annual renewal, 6% increase.
  4. She clicks Save and sees Updated successfully.

Result:

Where What changed
Tiles on the detail page Start Date 02 Nov 2026, End Date 02 Nov 2027, Contract Period 12 Months, Salary 9,000.00
Renewal History 02 Nov 2026 → 02 Nov 2027 · 12 Months with 9,000.00
Contracts list Expiring Soon drops to 2. Renewals This Month rises by one.
Payroll Payroll calculated from now on uses AED 9,000 for Omar.

Example 2 — a contract that lapsed, renewed with a new term and file

Sara Khan (EMP-0012, Sales Associate) had a 24-month contract from 15 Aug 2024 to 15 Aug 2026. Nobody renewed it in time.

  1. In September, Contracts → Expired lists Sara. Her status shows contract ended, because the daily check has run.
  2. On the contract page there is no Renew Contract button, because she is not Active.
  3. HR opens People → Employees → Sara Khan, changes her employment status to Active with effective date 1 Sep 2026 and the reason Renewal signed late.
  4. On Sara's Contracts tab, HR clicks Renew contract and enters:
    • New period (months) 24
    • Contract start 2026-08-16 (the new term runs on from the old one)
    • New salary (optional) blank (she stays at AED 6,200)
    • Contract file: the signed scan sara-khan-2026.pdf (1.2 MB)
    • Notes: Renewed late; no break in service
  5. HR clicks Confirm and sees Saved successfully.

Result:

Field Before After
Contract start 15 Aug 2024 16 Aug 2026
Contract end 15 Aug 2026 16 Aug 2028
Period (months) 24 24
Salary AED 6,200 AED 6,200 (unchanged)
Contract file old scan sara-khan-2026.pdf
Status Active (set by HR) Active

Sara drops off the Expired filter and appears under Active. Renewal History gets one line, with — for the salary because none was entered. The status change and the renewal both appear in the employee's history, and the joining date stays 15 Aug 2024 for service-length calculations.

How it connects

Screen / app Connection
Employees Owns the contract fields and files. Its Contracts tab shows the same data plus downloads and Renew contract.
Dashboard Upcoming people events lists Contract expires dates in the next 30 days.
Payroll A new salary entered on renewal becomes the employee's salary for future payroll calculations.
End of Service When a contract is not renewed, settle the employee's end of service there. The original joining date, which renewals never change, is the service start.
Documents Keep visas, Emirates ID copies and other expiring papers in Documents & Communication → Documents. These are separate from the contract file.
Reports Headcount and status reports reflect status changes caused by renewals.
Audit Log Records changes to the employee record.

Tips and common problems

Problem Cause Fix
No Renew Contract button The employee is not Active, or you lack manage permission. Set the status back to Active on the employee, or ask for Manage warnings, documents, contracts.
Download Contract never appears on the contract page That button is for legacy contract copies only. Use Download on the employee's Contracts tab for the current contract file.
Can't attach a file when renewing from Contracts The Contracts dialog has no file field. Renew from the employee's Contracts tab, or attach the file afterwards by editing the employee.
An employee's end date has passed but they still show Active The daily check that sets contract ended has not run yet. Act on the Expired count. Renew, or change the status yourself.
Active tile is bigger than the Active filter result The tile counts all active employees. The filter excludes contracts expiring within 30 days. Expected. Add the Expiring Soon count to compare.
A person with no contract appears in the list Every employee is listed, with — for missing dates. Filter by Status or Contract Period to focus.
The renewal started on the wrong day New Start Date was left blank, so it defaulted to the day after the old end date. Renew again with the correct start date. Each renewal replaces the current term and adds a history line.
Wrong salary entered on renewal The salary was overwritten on save. Edit the employee's salary on the employee record. The renewal history keeps the amount you typed.

Related