ThreadCount Community edition

Uniform stock management for healthcare linen rooms: the coordinator app, the phone counter and the staff app, for your own server. Built from a113353 on 2026-09-15. Licensed under the Functional Source License (FSL-1.1-ALv2).
This commit is contained in:
ThreadCount
2026-09-15 22:54:09 +10:00
commit a6f1059ddf
424 changed files with 53535 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
---
title: Manager approvals
section: counter
order: 4
summary: One manager on each staff record approves that person's requests and signs their order form. Deciding in the app or by email, self-approval, and recording a signed form.
screen: People a person Requests
role: Admin or Issuer
keywords: manager, approval, approve, decline, approver, email link, self-approved, signed form, order form, sets, FTE, credit slip, delegate
---
Each staff record names one manager. That person approves the wearer's requests in the staff app and signs their paper order form.
## One manager per record
The manager is set in the `Manager` box under `Managers approval` on the staff record. Search the register by name or staff number and choose; it saves at once. Only an Admin can set, change or remove it.
- Anyone may be their own manager. The box then shows `Self-approved`.
- An inactive person cannot be chosen: `That manager is no longer active on the register.`
- A manager whom others still name cannot be deactivated: `<n> people still name <first name> as their manager, and a request can't be sent to somebody who is off the register. Give them a new manager first.`
Without a manager, the staff app refuses to raise a request: `Your manager isn't set yet — the linen room has to record who approves your requests.`
A request is addressed to the manager recorded when it was raised. Changing the manager later does not move it; use re-address on `Requests` ([Requests from staff](/docs/counter/requests-from-staff)).
## Deciding in the app
The manager opens the request in the staff app. Every garment starts marked approved. They can decline a single garment, or the whole request, with one of 3 reasons: `Over allowance`, `Not needed right now` or `Wrong item for the role`. Every garment must be decided before sending.
When at least 1 garment is approved the request goes to the linen room; when none is, it is declined. The wearer is emailed the result with the reason against each declined garment, when they have an account and email is set up.
## Deciding by email
When a request is raised, its manager is emailed `Uniform request from <name>`, or `Uniform request for <name>` when somebody raised it on the wearer's behalf. The link opens a page showing the request. Nothing is decided until the manager chooses on that page.
- The link lasts 14 days.
- It decides the whole request: approve every garment, or decline every garment with one of the 3 reasons.
- It works once. After either choice, both links in the email stop working.
- It stops working when the manager or the wearer is no longer active on the register.
The decision is filed under the manager's name and marked as made from the email.
## Self-approval and the raise rule
Anybody may approve a request for their own uniform. It is never recorded as an ordinary approval: the history line reads `Approved by <name> — their own request`, with `Self-approved` beside it.
Nobody approves a request they raised for somebody else:
- A manager's raise for one of their own staff goes to the manager's own manager. If there is none, or it would come back to them, the request waits on `Needs an approver`.
- Re-addressing to the raiser is refused: `<first name> raised this request, so it can't be sent back for <first name> to approve. Pick somebody else.`
- Sending a request to its wearer is refused unless they are set as their own manager.
- A decision by the raiser is refused: `You raised this request, so somebody else has to approve it — ask the linen room to re-address it.`
## Recording a signed order form
1. **Press `Print order form`** on the staff record, and have the manager sign it ([Slips and signatures](/docs/counter/slips-and-signatures)).
2. **Under `Record a signed order form`, enter** `Sets`, `FTE`, `Date signed` and any `Note on the form`. The date cannot be after today.
3. **Press `Photo the signed form`** if you want the sheet on file.
4. **Press `Record approval`.** It needs a manager set in the box: `Set their manager first.`
The approval is recorded under the manager in the box. When the sets are above what the FTE table proposes, ThreadCount writes a sentence saying so after your note, and shows it first under `This will go on the record as written:`.
Each approval then shows `<n> of <m> sets left` or `Fully collected`, with `Form` to view the photo and `Credit slip` to print the balance. Sets come off at [Counter](/docs/counter/issue-a-garment). An Admin can remove an approval with `×`.
## What is written
| Record | Change | Undo |
|---|---|---|
| Staff record | The manager | An Admin changes or removes it |
| Request and its lines | Each line approved or declined with a reason; status accepted or declined; decided time; a history line | None |
| Approval | Date signed, manager's name as signed, link to the manager, sets, FTE, note, photo; sets used starts at 0 | An Admin removes it |
The name on an approval is a copy. It still reads as signed after the manager is renamed or leaves.
> **In plain terms** The manager in the box is the only approver, on screen and on paper.