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:
@@ -0,0 +1,66 @@
|
||||
---
|
||||
title: Barcodes
|
||||
section: stock
|
||||
order: 2
|
||||
summary: Binding the supplier's barcode to each size, dealing with an unknown code once, printing ThreadCount's own labels, and the formats the scanners read.
|
||||
screen: Stock › On hand › a garment
|
||||
role: Admin
|
||||
keywords: barcode, scan, bind, unbind, unknown barcode, label, print labels, generate barcode, EAN-13, Code 128, scanner, GTIN
|
||||
---
|
||||
|
||||
## Supplier barcodes
|
||||
|
||||
Each size of a garment carries one barcode, and a code belongs to one size in the facility. Most garments arrive with the supplier's code on the swing tag, and that is the code to bind.
|
||||
|
||||
1. **Open the product.** `Stock › On hand`, then the garment's name.
|
||||
2. **Press Scan sizes.** The dialog starts on the first size with no barcode.
|
||||
3. **Scan each size's label.** After each scan it moves to the next unbound size. **Re-scan** on a row points it at that size instead.
|
||||
4. **Add a size while scanning.** Type the size into `Size that isn't on the item yet`, then scan. The size is added at the end of the list with its code.
|
||||
|
||||
The same can be done on the phone in the counter app, or in bulk from `Settings › Data` with the Supplier barcodes template.
|
||||
|
||||
## An unknown code
|
||||
|
||||
When a scan on `Stock › On hand` or `Stock › Count` matches nothing, the `Unknown barcode` dialog opens. An admin picks the garment, then taps the size, and the code is bound from then on: the next scan anywhere finds it. An issuer sees the code and is told only an admin can bind it. **New product from this barcode** opens `Add item` with the code waiting for its size.
|
||||
|
||||
`Scan to add` on `Stock › On hand` works the same way for a pile of garments: a known code offers **Open product**; an unknown one offers a new product or a binding.
|
||||
|
||||
The dialog checks the digits. A code that fails its check digit is flagged as a possible mis-read but can still be bound. A code of a non-standard length can also be bound.
|
||||
|
||||
With `Settings › Data › Look up unknown barcodes in public databases` ticked, `Scan to add` sends the barcode number, and nothing else, to UPCitemdb, then Open Products Facts, and shows any product name found. Only valid EAN-13, UPC-A, EAN-8 and GTIN-14 codes are looked up, up to 120 an hour per facility. It is off by default.
|
||||
|
||||
## ThreadCount barcodes
|
||||
|
||||
For garments that arrived unlabelled, **Generate barcodes** on the product page gives every size without a code one of ThreadCount's own. **Generate** on a single row does one size. Sizes that already carry a supplier code keep it.
|
||||
|
||||
A generated code is a 13-digit EAN-13 starting `29`, the GS1 range reserved for use inside one business, with a real check digit. Numbers come from a counter held for the facility, so two people labelling at once can't be given the same one.
|
||||
|
||||
Every size also resolves from an internal 9-digit number starting `93`. It is never shown or printed, and binding another garment's internal number to a size is refused.
|
||||
|
||||
## Typed and moved barcodes
|
||||
|
||||
On the product page each size has a barcode box. Type or scan the code and press Enter or **Save**. Nothing reformats what is typed; codes may carry letters. To take a code off, clear the box and confirm, or press **×**.
|
||||
|
||||
A code already on another garment is refused with where it is. Confirm the move, or press **Move … onto size … anyway** in Scan sizes, and the code leaves the old size for this one.
|
||||
|
||||
## Printing labels
|
||||
|
||||
**Print labels** on the product page shows the count in its name: one label for every garment on hand, across the sizes that carry a barcode. It opens an A4 sheet of labels, 2 across, in a new tab, with the print dialog up.
|
||||
|
||||
Each label carries the garment name, size, SKU, the bars with the code beneath, and the organisation name from the slips (or the facility name). A valid EAN-13 prints as EAN-13; any other code prints as Code 128. A code too long to print at a readable size on the label is flagged above the sheet. With nothing on hand, or no size labelled, the sheet says which instead of printing.
|
||||
|
||||
## Accepted formats
|
||||
|
||||
- The camera and the phone apps read EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39 and Code 93. QR codes are ignored.
|
||||
- A scanner that types the code and presses Enter works in the scan boxes on the desktop screens. See [keyboard and scanner](/docs/reference/keyboard-and-scanner).
|
||||
- A bound code can be up to 64 characters.
|
||||
|
||||
## What is written
|
||||
|
||||
| Action | Record · Change | Undo |
|
||||
|---|---|---|
|
||||
| Bind a code (scan, type or pick) | Barcode record: code, garment, size position | Clear the box, or press × |
|
||||
| Move a code | The same record now points at the new size | Move it back |
|
||||
| Generate | Barcode record marked generated; the facility's number counter moves on | Unbind; the number is not handed out again |
|
||||
| Remove a size | Its barcode is deleted with it | Bind the code again |
|
||||
| Print labels | Nothing | Nothing to undo |
|
||||
@@ -0,0 +1,66 @@
|
||||
---
|
||||
title: Catalogue, sizes and cuts
|
||||
section: stock
|
||||
order: 1
|
||||
summary: How a garment is entered once, why a size is a position in its list, what a cut is, and who a garment's staff groups let ask for it.
|
||||
screen: Stock › On hand
|
||||
role: Admin
|
||||
keywords: catalogue, garment, product, add item, sizes, size run, cut, gender, men's, women's, unisex, staff groups, discontinue, duplicate, price history
|
||||
---
|
||||
|
||||
## What a catalogue item holds
|
||||
|
||||
A catalogue item is one garment in one colour: a name, a cut, a SKU, a supplier, a unit cost, a product type, the staff groups it is for, notes, and a list of sizes. Stock, barcodes, reorder levels and supplier codes are all held per size, underneath the item.
|
||||
|
||||
Add one from `Stock › On hand` with **Add garment**, or import many from `Settings › Data` with the Catalogue template (see [CSV templates](/docs/reference/csv-templates)).
|
||||
|
||||
1. **Enter the garment.** Item name, cut, SKU, supplier, unit cost, product type and notes. The supplier list comes from `Settings › Catalogue & suppliers`; a supplier name the directory does not hold is added to it.
|
||||
2. **Add the sizes.** Type a size and press Enter, or pick from a run: `XS – 5XL`, `6 – 24` or `72 – 117`. Tap a size in the run again to take it off.
|
||||
3. **Give each size its barcode and opening stock.** Both are optional. Leave opening stock at 0 if the garments are arriving on an order.
|
||||
4. **Add to catalogue.** It is refused without a name, a size and a cost (0 is a cost), or when one barcode is on two sizes.
|
||||
|
||||
The product type decides whether a garment counts as a top or trousers, which is half a set under the [entitlement rule](/docs/people/entitlement-rule). Any other type is not part of a set.
|
||||
|
||||
## Cuts
|
||||
|
||||
A garment's cut is one of `Unisex`, `Men's` or `Women's`, set in the `Gender` field. A men's or women's garment shows `(M)` or `(W)` after its name on every screen.
|
||||
|
||||
A staff record carries a uniform style: `Men's`, `Women's`, `Either`, or blank. Blank offers every cut, exactly as `Either` does. A unisex garment is offered to everyone. The style is set on the [staff register](/docs/people/staff-register).
|
||||
|
||||
In a catalogue import, a gender starting with `m` is men's, one starting with `f` or `w` is women's, and anything else, blank included, is unisex.
|
||||
|
||||
## Staff groups
|
||||
|
||||
The `Staff groups` tick-list says which of the facility's groups a garment is for. **An empty list means every group**, and ticking `All groups` clears the others. Groups not on the list can't request the garment from the staff app, and need the coordinator override at the counter.
|
||||
|
||||
In a catalogue import, several groups are separated by `|` and `All` means every group. A blank group column on a re-import leaves the garment's groups as they were.
|
||||
|
||||
## A size is a position
|
||||
|
||||
ThreadCount records a size by its position in the item's size list, not by its name. Every issue, count, movement, barcode and reorder level points at a position. For that reason:
|
||||
|
||||
- A new size is always added at the end of the list, from **Edit product › Add a size** or from **Scan sizes**. It starts with no barcode.
|
||||
- Once anything is recorded against an item, its existing sizes can't be reordered or removed as a list.
|
||||
- **Remove** on a size row takes off one size. It is refused if that size has an issue, stock on hand, an open supplier order, a stock movement, a stocktake, a hand-in, a ward request, somebody waiting for it, a kit check answer or a record query against it. The refusal names which.
|
||||
- Removing a size deletes its reorder level and barcode, and moves every later size down one place. A garment's last size can't be removed; discontinue it instead.
|
||||
|
||||
> **In plain terms** Add sizes freely; remove them only while nothing has happened to them.
|
||||
|
||||
## Discontinue, duplicate, delete
|
||||
|
||||
- **Discontinue** takes a garment out of counts, flags and the order list. Its stock still counts in the on-hand value. **Reinstate** brings it back.
|
||||
- **Duplicate** makes a new item with the same description, cut, supplier, cost, sizes and reorder levels, and no barcodes, stock or history. It is refused if an item with that name already exists for the same groups.
|
||||
- **Delete**, from the multi-select bar, removes items with nothing recorded against them. Anything with history or stock on hand is discontinued instead.
|
||||
|
||||
A change of unit cost, from the product page, the bulk `Apply price` or a delivery, adds an entry to the garment's **Price history** with the old figure and who changed it. Past issues keep the price they were recorded at.
|
||||
|
||||
## What is written
|
||||
|
||||
| Action | Record · Change | Undo |
|
||||
|---|---|---|
|
||||
| Add item | New catalogue item; barcodes bound; opening stock per size; first price history entry when the cost is above 0 | Delete while nothing is recorded, otherwise Discontinue |
|
||||
| Change unit cost | Item cost; a price history entry | Change it back; the entry stays |
|
||||
| Add a size | Size appended to the list | Remove, while nothing is recorded against it |
|
||||
| Remove a size | Size, its reorder level and barcode deleted; later sizes move down one | Add it again; it goes on at the end |
|
||||
| Discontinue | Item marked discontinued | Reinstate |
|
||||
| Duplicate | New item with sizes and reorder levels | Delete |
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: The order list
|
||||
section: stock
|
||||
order: 5
|
||||
summary: What to order, grouped by supplier and net of what is on order, raised as one order per group with the supplier's order number, then printed, downloaded or emailed.
|
||||
screen: Orders › Order list
|
||||
role: Admin
|
||||
keywords: order list, purchase order, reorder, supplier order, raise, supplier code, order sheet, print, CSV, email supplier, supplier order number, order history
|
||||
---
|
||||
|
||||
## What appears
|
||||
|
||||
`Orders › Order list` puts two kinds of group on one screen: stock groups, one per supplier, and every draft order that has lines. The heading counts both.
|
||||
|
||||
A **stock group** holds each size at or below its [reorder level](/docs/stock/reorder-levels), topped up to twice the level, less what is on hand, less what is on order. On order counts placed orders and drafts other than replenishment drafts. A size needing nothing more is left off. The supplier is the garment's, or the first in `Settings › Catalogue & suppliers` when it has none.
|
||||
|
||||
Each line shows the supplier's code for that size, the garment, size, on hand, reorder level, on order and an editable `Order qty`. A line with no supplier code shows `no code`, linked to the product page where it is entered. A size that would run out before a delivery placed today is tagged `runs out` and sorted to the top. The group heading shows the supplier's account number, the number of lines and the value at catalogue cost.
|
||||
|
||||
- **Remove** takes a line off; a quantity of 0 is dropped when raised.
|
||||
- **Add a line** adds any current garment and size to that group.
|
||||
- Edits stay on this screen until the list is raised.
|
||||
|
||||
## Drafts and staff orders
|
||||
|
||||
Every draft order with lines is its own group, headed with its supplier and either the person it is for (with their cost centre) or `draft`. A draft made for a staff member from **New order** is raised as its own order and is never merged into a stock group, so each staff member's order stays separate from the shelf's.
|
||||
|
||||
A supplier's replenishment draft from Order flagged is also listed here as a draft. Its sizes are not netted off the stock group above it, so check the two against each other before raising.
|
||||
|
||||
Order in at the counter places its orders straight away, one per supplier, so they don't appear here.
|
||||
|
||||
## Raising the list
|
||||
|
||||
Every group has an optional `Supplier order no.` field: the number the supplier gives when the order is placed on their site.
|
||||
|
||||
**Raise N orders** does all groups in one go:
|
||||
|
||||
- A stock group becomes a new order for stock, status `Ordered`, with the supplier order number as its reference and an expected date of today plus the supplier's lead time, or 14 days when none is set.
|
||||
- A draft becomes `Ordered`, taking the supplier order number if one was typed.
|
||||
|
||||
If any group is refused, for example a draft somebody else has already placed, nothing is raised.
|
||||
|
||||
## The sheet, the CSV and the email
|
||||
|
||||
After raising, each new order is listed with three buttons. The same sheet is **Order sheet** on the order's own page, and the email is **Email supplier** there once the order is placed.
|
||||
|
||||
**Print** opens the A4 purchase order: the order number and supplier reference; the facility, its location and organisation; the supplier with contact, phone and email; the date and expected date; the account number; the person it was ordered for, with department and cost centre; and a row per line with a tick box, the supplier code, description, size, quantity, unit cost and total. Where a size has no supplier code, the garment's SKU is printed instead. It ends with lines for who ordered and the date placed. Opening the sheet records when the order was printed.
|
||||
|
||||
**CSV** downloads the order number, supplier and supplier order number, then `Supplier code`, `Description`, `Size`, `Qty` and `Unit cost` per line.
|
||||
|
||||
**Email** sends the order to the supplier's `Order email` from `Settings › Catalogue & suppliers`. The subject is `Purchase order ORD-2026-0042 (NW-48211) — Riverside General`, with the lines, account, delivery location and estimated value ex tax, asking the supplier to quote the order number on the invoice. Sending records when it was emailed. It is refused for a draft, a cancelled order, a supplier with no order email, and a server with no email set up; print the sheet instead.
|
||||
|
||||
## Filters and history
|
||||
|
||||
`Orders › All orders` lists every order. Filter by search (order number, reference, invoice, tracking, supplier, person or garment), supplier, garment, ordered-from and ordered-to dates, and `All`, `Draft`, `Open` or `Received`. `Open` means placed and not yet received or cancelled. **Export CSV** downloads the orders shown, with the filters applied.
|
||||
|
||||
The tiles count drafts to send, orders awaiting delivery with their value, overdue orders, and stock received this month at invoiced cost.
|
||||
|
||||
A product page lists every order line for that garment under `Orders` (date, order, supplier, size, quantity, unit cost then, supplier reference, invoice, status) and every change of unit cost under `Price history`.
|
||||
|
||||
## What is written
|
||||
|
||||
| Action | Record · Change | Undo |
|
||||
|---|---|---|
|
||||
| Raise, stock group | New order: stock, `Ordered`, reference, expected date, lines | Cancel order on the order page (Admin) |
|
||||
| Raise, draft | Status `Draft` to `Ordered`; reference if typed | Cancel order (Admin) |
|
||||
| Print sheet | The order's printed time | Nothing to undo |
|
||||
| Email | Email to the supplier; the order's emailed time | None; the supplier has it |
|
||||
| CSV | Nothing | Nothing to undo |
|
||||
@@ -0,0 +1,67 @@
|
||||
---
|
||||
title: Receiving and back orders
|
||||
section: stock
|
||||
order: 6
|
||||
summary: Booking a delivery in against its order, recording the invoice, splitting short lines to a back order, and sending garments to the shelf or the pickup list.
|
||||
screen: Orders › an order › Receive delivery
|
||||
role: Admin or Issuer
|
||||
keywords: receive, delivery, goods received, invoice, back order, short delivery, partial delivery, pickup, shelf, invoiced cost, docket
|
||||
---
|
||||
|
||||
## Before a delivery can be received
|
||||
|
||||
Open the order from `Orders`. **Receive delivery** appears on an order that is `Ordered`, `Shipped` or `Back Order`. A draft has to be marked ordered first, and a received or cancelled order can't be received again. **Mark shipped** is optional and changes nothing about receiving.
|
||||
|
||||
The `Units received` tile shows how many units have arrived against how many were ordered.
|
||||
|
||||
## Ticking the lines
|
||||
|
||||
The `Receive delivery` dialog lists each line of the order:
|
||||
|
||||
- `Outstanding`: ordered less already received.
|
||||
- `Arrived`: filled in with the outstanding figure. Change it to what is in the box.
|
||||
- `Destination`: `Shelf`, or `Pickup` when the order is for a staff member. A staff member's order starts on `Pickup`; an order for stock has only `Shelf`.
|
||||
- `Invoiced cost`: the unit cost on the invoice, filled in with the catalogue cost.
|
||||
|
||||
**Scan items off the box (camera)** adds 1 to a line for each garment scanned, and names a garment that isn't on the order.
|
||||
|
||||
An arrived figure above the outstanding one is refused. Book surplus in with `Adjust quantity › Receive` on `Stock › On hand`, which records it as received without an order. At least one line needs a quantity.
|
||||
|
||||
## Invoice, date and price
|
||||
|
||||
1. **Enter the invoice number.** It is kept on the delivery and on the order.
|
||||
2. **Check the arrival date.** It starts on today.
|
||||
3. **Add a note** if something was wrong, and **Photo the invoice** if you want the invoice on file.
|
||||
4. **Check any price flag.** When an invoiced cost differs from the catalogue, the line shows both. **Keep** leaves the catalogue alone; **Update catalogue cost** (Admin) changes it and adds a price history entry.
|
||||
5. **Receive.**
|
||||
|
||||
Delivered units are valued at the invoiced cost from then on, on the order and in the order's CSV; anything still outstanding is valued at the catalogue cost.
|
||||
|
||||
## Short lines become a back order
|
||||
|
||||
Receiving closes the order as `Received`, whatever arrived. Anything short is moved onto a new order:
|
||||
|
||||
- Status `Back Order`, for the same supplier, person, cost centre and supplier reference.
|
||||
- Its note reads `Back order — short on` and the original order number.
|
||||
- Its expected date is today plus the supplier's lead time, or 14 days when none is set.
|
||||
|
||||
The two orders link to each other: the back order says which order it came from, and the original lists its back orders. A back order is received the same way, and anything short on it goes to another back order. Cancel a back order the supplier won't fill with **Cancel order** (Admin).
|
||||
|
||||
## Where the garments go
|
||||
|
||||
- **Shelf** lines are added to stock on hand for their sizes straight away.
|
||||
- **Pickup** lines are not put on the shelf. They become one pickup for the staff member, which appears on the [pickup call list](/docs/counter/pickup-call-list). Marking it picked up records the garments as issued to that person.
|
||||
|
||||
The order's `History` panel adds a `Delivery received` entry with the invoice number, each line and where it went, and an **Invoice photo** button when one was taken. A received order's details are locked.
|
||||
|
||||
> **Careful** There is no undo for a delivery once received; a wrong quantity is corrected on the shelf with Adjust quantity.
|
||||
|
||||
## What is written
|
||||
|
||||
| Action | Record · Change | Undo |
|
||||
|---|---|---|
|
||||
| Receive | A delivery record (date, invoice, note, photo) with a line per arrived size (quantity, destination, invoiced cost); the order set to `Received` with its invoice and received date, the note added to its notes | None; correct stock with Adjust quantity |
|
||||
| Short lines | New `Back Order` order linked to the original | Cancel order (Admin) |
|
||||
| Shelf lines | Stock on hand for those sizes goes up | Adjust quantity (Admin) |
|
||||
| Pickup lines | A pickup for the staff member with those lines | None from this screen |
|
||||
| Update catalogue cost | Catalogue unit cost; a price history entry | Change the cost on the product page |
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: Reorder levels
|
||||
section: stock
|
||||
order: 3
|
||||
summary: A reorder level per size or the facility default, when a size is flagged, what Order flagged drafts, and how the forecast suggests a level.
|
||||
screen: Stock › On hand
|
||||
role: Admin
|
||||
keywords: reorder level, par, minimum, low stock, flagged, order flagged, replenishment, forecast, suggested reorder, lead time, weeks of cover
|
||||
---
|
||||
|
||||
## Where a level comes from
|
||||
|
||||
Every size has a reorder level. It is the size's own figure if one has been set, and the facility default otherwise. The default is `Settings › Catalogue & suppliers › Default reorder level`, which starts at `3`.
|
||||
|
||||
Set a size's own level in any of these places:
|
||||
|
||||
- **− and +** beside `Reorder at` on a size row, on `Stock › On hand` (open the item) or on the product page.
|
||||
- **Set reorder** on the multi-select bar, which sets the same level on every size of the selected products.
|
||||
- **Use** beside a forecast suggestion on the product page (below).
|
||||
- The `Reorder levels` template in `Settings › Data`, or the optional `reorder` column of `Opening balances`. See [CSV templates](/docs/reference/csv-templates).
|
||||
- **Duplicate** on a product copies its levels to the copy.
|
||||
|
||||
A level can't go below 0. Once a size has its own level, no screen returns it to the default; set it to the default figure instead.
|
||||
|
||||
## When a size is flagged
|
||||
|
||||
A size is flagged when what is on hand is at or below its reorder level. A size is left out while nothing has ever happened to it: no opening stock, no adjustment, no level of its own and no movement. Discontinued garments are never flagged.
|
||||
|
||||
Flags show in four places:
|
||||
|
||||
- `Stock › On hand`: the `At or below reorder` tile, the `Flagged` filter, an `N to reorder` tag on the item, and `REORDER` or `OUT` on each size.
|
||||
- The dashboard: the `Lines at reorder` tile and the `Reorder flags` panel, which lists the first 12 and marks a size with none on the shelf.
|
||||
- `Orders`: the `Suggested order` panel, which lists flagged sizes that are on no open order or draft, with a figure of twice the level less what is on hand (at least 1).
|
||||
- The [order list](/docs/stock/order-list), where they become lines to raise.
|
||||
|
||||
## Order flagged
|
||||
|
||||
**Order flagged** on `Stock › On hand`, and **Add to supplier drafts** on `Orders`, put every flagged size onto its supplier's replenishment draft. Both are open to Admins and Issuers.
|
||||
|
||||
For each flagged size the quantity is twice its reorder level, less what is on hand, less what is already on order. On order counts placed orders and other drafts, but not the replenishment draft being topped up. A size needing nothing more is skipped.
|
||||
|
||||
- The supplier is the garment's supplier, or the first supplier in `Settings › Catalogue & suppliers` when it has none.
|
||||
- A line already on the draft is raised to the new figure if that is larger, never added to.
|
||||
- A supplier with no replenishment draft gets a new one, dated today, expected after the supplier's lead time or 14 days when none is set.
|
||||
|
||||
Nothing reaches a supplier until the draft is marked ordered or raised from the order list.
|
||||
|
||||
On the phone, the count's variance screen says how many lines will fall to or below their level, and committing the count opens the Reorder screen.
|
||||
|
||||
## The forecast's suggested level
|
||||
|
||||
The product page's `Ordering` panel shows, for each size, a usage figure and a suggested level. It is worked out from issues already recorded:
|
||||
|
||||
1. **Usage.** Garments of that size issued in the last 13 weeks, averaged per week. If none were issued in 13 weeks, the last 26 are used. Pre-loved issues are not counted.
|
||||
2. **Lead time.** The supplier's lead time in days divided by 7, or 2 weeks when none is set.
|
||||
3. **Suggested level.** Weekly usage × (lead time in weeks + 2), rounded up.
|
||||
|
||||
The label reads like `3.1 wk cover · ~4/wk`: how many weeks the shelf lasts at that rate, and the weekly rate. With no issues in 26 weeks it reads `no usage yet` and nothing is suggested. A `runs out before delivery` tag appears when the weeks of cover are fewer than the lead time; the same size is tagged `runs out` on the order list.
|
||||
|
||||
A suggestion writes nothing. **Use** sets it as the size's level.
|
||||
|
||||
> **In plain terms** The suggestion covers the lead time plus 2 weeks at the recent rate of issue.
|
||||
|
||||
## What is written
|
||||
|
||||
| Action | Record · Change | Undo |
|
||||
|---|---|---|
|
||||
| − / +, Use | That size's reorder level | Set it again |
|
||||
| Set reorder (bulk) | The level on every size of each selected product | Set it again per size |
|
||||
| Default reorder level | Facility setting, read by every size without its own | Change it back |
|
||||
| Order flagged | Replenishment draft per supplier: created, or lines added or raised | Remove lines on the draft, or cancel it (Admin) |
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: Stocktakes
|
||||
section: stock
|
||||
order: 4
|
||||
summary: Counting the shelf at the desk or on a phone, blind counts, variance in garments and dollars, the reasons a large gap needs, and what committing files.
|
||||
screen: Stock › Count
|
||||
role: Admin or Issuer
|
||||
keywords: stocktake, count, audit, stock count, blind count, variance, shrinkage, count sheet, reason, missing, condemned, laundry, commit, location, shelf
|
||||
---
|
||||
|
||||
## Counting at the desk
|
||||
|
||||
`Stock › Count` lists every size of every current garment with the figure ThreadCount holds (`System`) and a `Counted` box.
|
||||
|
||||
1. **Narrow the scope.** Filter by name, SKU, size or barcode, or pick a staff group. `Uncounted` hides lines already counted.
|
||||
2. **Count.** Scan a garment into the scan box and each scan adds 1 to its line; **Camera** does the same. Or type the figure into `Counted`.
|
||||
3. **Watch the tiles.** `Lines counted`, `Variances`, `Net value` and `Gaps needing a reason`, with a bar showing how much of the scope is counted.
|
||||
4. **Zero uncounted in scope** sets every uncounted line in the scope to 0, for a count where the rest of the shelf is empty.
|
||||
|
||||
The tally is kept in this browser for the signed-in person until it is filed or cleared, and the screen says when the last entry was made. **Clear counts** starts again. A code that matches nothing opens the [unknown barcode](/docs/stock/barcodes) dialog.
|
||||
|
||||
`Shelf` counts stock on hand. `Pre-loved pool` counts the pool of handed-in garments instead, carried at nil value. The desk count is scoped by group and filter; counting by location is done on a phone.
|
||||
|
||||
## Blind counts and the count sheet
|
||||
|
||||
`Blind` hides the `System` and `Variance` columns and the `Variances` and `Net value` tiles, so the counter can't see the expected figure. A counted line shows a tick. A line that needs a reason still asks for one.
|
||||
|
||||
**Print count sheet** prints the lines in scope, grouped by garment, with the size, the bound barcode, the system figure and an empty box. In blind mode the system figure is left off and the sheet is marked `BLIND COUNT`.
|
||||
|
||||
## Variance and reasons
|
||||
|
||||
A line's variance is counted less system. `Net value` is each variance times the garment's unit cost, added up: what filing the count would move in dollars.
|
||||
|
||||
A gap as large as `Settings › Issuing rules › A count gap needs a reason at` or larger, over or short, must carry a reason: `At laundry`, `Condemned`, `Missing` or `Other`. The setting starts at `5` and is never treated as less than 1. Lines still owing a reason are moved to the top of the list, and the count can't be filed until each has one. The server refuses the whole count if one arrives without.
|
||||
|
||||
## Committing
|
||||
|
||||
The button reads **File count** when every counted line matched and **Apply adjustments** when some didn't.
|
||||
|
||||
- Only counted lines are sent. Uncounted lines are left as they are.
|
||||
- Every counted line is filed, matching or not, so each size's `Last counted` date on `Stock › On hand` is right.
|
||||
- Each variance moves stock on hand by the difference. In `Pre-loved pool`, the pool is set to the counted figure.
|
||||
- The system figure is read again on the server when the count is filed.
|
||||
|
||||
## Filed counts
|
||||
|
||||
`Stocktake history`, below the count, lists filed counts newest first: date, who counted, lines counted, variances, and the net change in garments and dollars. Open one to see each variance with its dollar value. **CSV** downloads that count's variance lines with unit cost and variance value. The latest 200 filed counts are held on screen.
|
||||
|
||||
In the counter app, `Variance` charts each size's gap across the last 6 shelf counts.
|
||||
|
||||
## Counting on a phone
|
||||
|
||||
In the [counter app](/docs/apps/counter-app), `Stocktake` lists every location that has garments placed on it, counting the locations inside it, plus `Not on a shelf yet`. Sizes are placed on a shelf from the `Sizes` panel on a garment's page; locations are made in `Stock › Locations`.
|
||||
|
||||
1. **Pick the location.** Each line shows counted over expected, and the expected figure stays on screen.
|
||||
2. **Scan.** Each scan adds 1. A code placed on another shelf is refused with that shelf's name. **Undo** takes 1 off the current line; **Type a count instead** is for a label that won't scan.
|
||||
3. **Finish count.** The variance screen lists lines that don't match, with **Recount** and the reasons for large gaps.
|
||||
4. **Commit count.**
|
||||
|
||||
The tally is kept on the phone for that person and that location until committed, and is cleared when that person signs out of the counter app.
|
||||
|
||||
> **Careful** A phone commit files every line on that location, and a line nobody scanned is filed as 0.
|
||||
|
||||
## What is written
|
||||
|
||||
| Action | Record · Change | Undo |
|
||||
|---|---|---|
|
||||
| Counting (desk or phone) | Nothing on the server; the tally is kept on the device | Clear counts |
|
||||
| File count / Apply / Commit | A stocktake: date, who, lines counted, variances, shelf or pool, and the location for a phone count; a line per counted size with system, counted and reason | No undo; a filed count stays in history |
|
||||
| A variance on the shelf | Stock on hand moved by the difference | Count again, or Adjust quantity (Admin) |
|
||||
| A variance in the pool | The pre-loved pool set to the counted figure | Count again, or Adjust quantity › Pre-loved |
|
||||
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Suppliers
|
||||
section: stock
|
||||
order: 7
|
||||
summary: The supplier directory, the contact, account, order email and lead time each supplier carries, the supplier's code for each size, and where each is used.
|
||||
screen: Settings › Catalogue & suppliers
|
||||
role: Admin
|
||||
keywords: supplier, vendor, supplier directory, lead time, account number, order email, contact, supplier code, product code, remove supplier
|
||||
---
|
||||
|
||||
## The supplier directory
|
||||
|
||||
`Settings › Catalogue & suppliers` lists every supplier the facility buys from, each in its own panel with the number of products and orders that use it.
|
||||
|
||||
1. **Type the name** into `New supplier`, for example `Northline Workwear`.
|
||||
2. **Press Add supplier.** A name already on the list, in any mix of capitals, is refused.
|
||||
|
||||
A supplier is also added when a garment is saved, bulk-changed or imported with a supplier name the directory doesn't hold. The match is made without regard to capitals, and the garment is stored with the directory's spelling, so `northline workwear` finds `Northline Workwear`.
|
||||
|
||||
A supplier's name can't be changed once added. **Export CSV** downloads the supplier, contact, phone, account number, lead time, and the number of products and orders for each.
|
||||
|
||||
## Each supplier's details
|
||||
|
||||
| Field | What it holds |
|
||||
|---|---|
|
||||
| `Contact person` | Who to ask for |
|
||||
| `Phone` | The supplier's phone number |
|
||||
| `Account no.` | The facility's account with the supplier |
|
||||
| `Order email` | Where purchase orders are emailed; blank means print or CSV only |
|
||||
| `Lead time (days)` | Days from ordering to delivery; blank means none set |
|
||||
|
||||
Changes save as you type. An order email that isn't an email address is refused, and it is stored in lower case. An Issuer sees the fields but can't change them.
|
||||
|
||||
## Where the details are used
|
||||
|
||||
- **Lead time** sets the expected delivery date: in `New order` when the supplier is picked, on orders raised from the [order list](/docs/stock/order-list), on replenishment drafts, and on back orders. With none set, those orders expect delivery in 14 days. The forecast reads it in weeks, and assumes 2 weeks when none is set (see [reorder levels](/docs/stock/reorder-levels)).
|
||||
- **Contact, phone and account number** print on purchase orders. The A4 order sheet also prints the order email, and the order list shows the account number beside each supplier's group.
|
||||
- **Order email** is the only address **Email** and **Email supplier** send to. Without it they are refused with a note to add one here.
|
||||
|
||||
## The supplier's code for each size
|
||||
|
||||
Suppliers number each size and colour of a garment separately. Record that code on the product page, in the `Ordering` panel, against each size (up to 60 characters). An Issuer sees the codes but can't change them.
|
||||
|
||||
The code is printed against the line on the A4 order sheet, in the order CSV and in the order email, so it can be keyed into the supplier's own site. Where a size has none, the sheet and the email use the garment's SKU. On the order list a missing code shows as `no code`, linked back to the product page.
|
||||
|
||||
The supplier code is separate from the barcode: it is what the supplier calls the size, and the [barcode](/docs/stock/barcodes) is what a scanner reads.
|
||||
|
||||
## Changing and removing a supplier
|
||||
|
||||
A garment's supplier is changed on its product page with **Edit product**, or for several at once with `Change supplier…` on the multi-select bar of `Stock › On hand`. Changing a garment's supplier doesn't change existing orders. An order's supplier can be changed on the order page until it is received or cancelled.
|
||||
|
||||
**×** on a supplier's panel removes it, and appears only when no product and no order uses it. The server refuses the removal otherwise.
|
||||
|
||||
> **In plain terms** A supplier that has ever been used stays in the directory, so its orders keep their contact and account details.
|
||||
|
||||
## What is written
|
||||
|
||||
| Action | Record · Change | Undo |
|
||||
|---|---|---|
|
||||
| Add supplier | Supplier record with its name | Remove it while nothing uses it |
|
||||
| Edit a detail | That field on the supplier | Edit it again |
|
||||
| Remove | Supplier record deleted | Add it again and re-enter the details |
|
||||
| Supplier code | The code on that size of the garment | Edit or clear it |
|
||||
Reference in New Issue
Block a user