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
+66
View File
@@ -0,0 +1,66 @@
---
title: Issue a garment
section: counter
order: 1
summary: Pick the person, scan the garments, choose where each comes from, record it. What is written, and what the counter refuses.
screen: Counter
role: Admin or Issuer
keywords: issue, issue stock, scan, barcode, counter, six sets, ceiling, override, pre-loved, order in, refusal, slip, hand out uniform
---
`Counter` hands garments to one person at a time, and the server repeats every check.
## At the counter
1. **Find the person.** Search by name or staff number. Inactive staff are not listed. Each result shows the sets they hold against the ceiling.
2. **Scan the garments.** Scan into the barcode box and press Enter, use `Camera`, or tap a size under `Quick add`; tap again for one more. An unknown code opens a dialog to bind it ([Barcodes](/docs/stock/barcodes)).
3. **Choose a source for each line.** `From stock`, `Pre-loved` (shown when the pool holds that size) or `Order in`. A line with both shelf and pre-loved stock reads `Both available — pick a source` until you choose.
4. **Read the box under the bag.** It says `Inside what one person holds`, or names each reason the bag needs an override.
5. **Set the approval deduction.** When the person has a manager's approval with sets left, choose how many sets come off it. It starts at the larger of the tops and the trousers in the bag, not counting pre-loved lines.
6. **Print a slip if needed.** `Collection slip` and `Delivery slip` list the stock and pre-loved lines.
7. **Press `Record issue`.** Once the person signs, tick `signed` against the line in their issue history.
`Repeat last issue` fills the bag with the unreturned lines from the person's most recent issue date.
## What is written
| Record | Change | Undo |
|---|---|---|
| Issue, from stock | One row per line: today's date, condition `New`, today's catalogue cost | No screen deletes an issue; record a return |
| Issue, pre-loved | Condition `Pre-loved`, cost 0; the pool goes down | Return it as `Returned Good` |
| Replenishment draft | Stock lines added to the supplier's draft on `Orders` | Edit the draft |
| Order, for Order in | One order per supplier, status `Ordered`, for this person | Received lines join the [pickup call list](/docs/counter/pickup-call-list) |
| Manager's approval | Sets used go up, oldest approval first | A hand-in with credit ticked gives sets back |
| Signed tick | Marks the issue signed | Untick it |
An override is stamped only on the rows it applies to: `override` for the ceiling, `offGroup` for a garment outside the staff group, `offStyle` for the wrong cut. For `Order in` lines it is written into the order's note.
## What the counter refuses
| Refusal | Why | What to do |
|---|---|---|
| `This staff member is inactive — reactivate them on their profile first` | The record is inactive | Reactivate them on `People` |
| `Not enough on the shelf for <garment> <size>` | Shelf count below the bag | Switch to `Order in`, or count the shelf |
| `Not enough pre-loved <garment> <size> in the pool` | Pool below the bag | Switch to `From stock` or `Order in` |
| `<garment> is discontinued` | The garment is archived | Choose a current garment |
| `A. Hassan is holding 6 tops and 5 pairs. That would be 7 tops and 5 pairs, and the most anyone holds is 6 sets — 6 tops and 6 pairs. Hand a top in to make room, or a coordinator can record an override.` | Past the ceiling | Record a hand-in first, or tick the override |
| `<garment> is for <groups> — <name> is in <group>. Tick the coordinator override to issue it anyway.` | Outside their staff group | Choose their group's garment, or tick the override |
| `<garment> is the <cut> cut — <name> is set to <style>. Tick the coordinator override to issue it anyway.` | Not their uniform style | Choose their cut, or tick the override |
A cart wrong on several counts gets one refusal naming every reason.
A refusal ending `refresh and try again` means somebody changed the shelf, the pool, the approval or the person's holdings while you were serving. Refresh and record the bag again.
## The ceiling and the override
The ceiling is sets held at any time: 6 unless the facility has set its own figure. Tops and trousers are counted separately, so 7 tops and 2 pairs is past it. Garments outside a set, such as a fleece, have a ceiling of the same number, counted in garments. Holdings include garments on order, on the pickup list, and in approved request bags not yet collected. Pre-loved garments count. See [The entitlement rule](/docs/people/entitlement-rule).
One tick, `Issue anyway`, answers the ceiling, the staff group and the uniform style together. It clears when you change the person or the bag.
The `garments drawn since July` line is a running total for the reports. Nothing refuses on it.
> **In plain terms** A hand-in makes room; an override records that somebody chose to go past the rule.
## On a phone
The counter app has its own issue screen, recorded through the same server check. See [Counter app](/docs/apps/counter-app).