Contracts and Payroll
The money half of Human Resources. A contract says what a person is owed in a normal month; a payroll is one actual month, calculated and paid. Paying one writes a journal entry, so salaries land in the clinic's books like every other cost.
WARNING
Needs the HR module switched on, and the Contracts and Payroll permissions. Approving and marking as paid are two further permissions on top of viewing — see Staff and Roles.
Where to Find It
Click an address to open that screen on your own clinic. The first click asks which clinic you are, then remembers it. Addresses holding a {id} need a specific record, so they are shown but not linked.
| Screen | Address |
|---|---|
| Contracts | /all-contract |
| New contract | /new-contract |
| Contract details | /view-contract/{id} |
| Payroll | /all-payroll |
| New payroll | /new-payroll |
| Payroll details | /view-payroll/{id} |
Contracts
Human Resources → Contracts. One contract holds everything an employee is owed in a normal month.
| Field | Notes |
|---|---|
| Employee * | Who the contract is with |
| Code * | Suggested automatically as CTR-…; change it if your clinic numbers its own way |
| Contract type * | Permanent · Temporary · Part time · Freelance |
| Start date * | |
| End date | Leave empty for an open-ended contract |
| Probation end date | Optional |
| Basic salary * | The base figure before allowances and deductions |
| Status | Active · Expired · Terminated |
| Contract file | The signed PDF or scan, attached to the record |
| Notes | Free text |
Below the fields sit the components — the allowances and deductions from Salary Components. The ones you marked Default are offered for you; add, remove or change amounts per person.
WARNING
Two contracts for the same person cannot overlap in time. The system refuses the save. To give someone a raise, end the current contract on the last day of the old terms and start a new one the next day — that way the history stays readable, and the old month still shows what it was paid on.
Replacing the attached file on edit deletes the old one; the rest of the contract is unaffected.
Payroll
Human Resources → Payroll. One record per employee per month.
Creating one
Choose the employee, month and year. Picking the employee pulls their active contract into the form — the basic salary and every component — so most of the record fills itself. If they have no active contract, their most recent one is used instead.
Then the attendance figures:
| Field | Where it comes from |
|---|---|
| Working days | The month's expected days |
| Present days · Absent days · Leave days | The approved attendance sheet |
| Overtime hours | The same sheet |
WARNING
These figures are typed in, not copied automatically. The attendance sheet is your source; the payroll form does not read it for you. Approve the sheet first, then enter its totals here — that order keeps the two agreeing.
Finally the money:
| Field | Notes |
|---|---|
| Basic salary | From the contract |
| Total allowances | The sum of the allowance items |
| Overtime pay | Whatever your clinic pays for the overtime hours above |
| Total deductions | The sum of the deduction items |
| Net salary | What the employee is actually paid |
| Payroll items | The individual allowance and deduction lines, each with a name and amount |
| Notes | Free text |
One payroll per employee per month. A second attempt at the same month is refused — that refusal is a safeguard against paying twice, not an error to work around.
Draft → Approved → Paid
| State | What it means | Who can |
|---|---|---|
| Draft | Being prepared. Editable, counts for nothing | Anyone who can create payroll |
| Approved | Checked and agreed, not yet paid | Needs approve payroll |
| Paid | Money has gone out. The payment date is recorded | Needs mark payroll as paid |
What "Paid" does to the books
Marking a payroll paid records the payment date and posts a journal entry:
| Account | Amount | |
|---|---|---|
| Debit | 5100 · Staff Salaries Expense | the net salary |
| Credit | 1000 · Clinic Cash | the net salary |
In words: the clinic has a new cost, and its cash went down by the same amount. From that moment the salary appears in Profit & Loss like any other expense, and the entry sits in the journal with View Source pointing back to this payroll.
TIP
Only the net salary is posted — one figure, not a line per allowance. The breakdown lives on the payroll record itself, which is where a payslip question is answered.
Finding a payroll again
The list filters by employee, month, year, status and creation date, newest month first. Every record keeps its own activity log, so who approved it and who marked it paid is never in doubt.
Answering Real Questions
| Question | Where to look |
|---|---|
| What is this person's salary supposed to be? | Their active contract |
| Why was this month different? | The payroll record's days, overtime and items |
| Did the salary reach the accounts? | Journal Entries — one entry per paid payroll |
| How do I give someone a raise? | End the current contract, start a new one the following day |
| Why can I not create this payroll? | That employee already has one for the month |