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 2d04e45 on 2026-09-15. Licensed under the Functional Source License (FSL-1.1-ALv2).
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
---
|
||||
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 › a garment
|
||||
role: Admin
|
||||
keywords: barcode, scan, bind, unbind, unknown barcode, label, print labels, generate barcode, scan sizes, scan to add, 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 garment.** `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. **Scan** or **Re-scan** on a row points it at that size instead.
|
||||
4. **Add a size while scanning.** Type it into `Size that isn't on the item yet`, then scan. The size goes on the end of the list with its code.
|
||||
|
||||
Codes can also be bound in bulk from `Settings › Data & audit log` with the Supplier barcodes template.
|
||||
|
||||
## An unknown code
|
||||
|
||||
On `Stock › Count`, a code that matches nothing opens the `Unknown barcode` dialog. An Admin picks the garment, then clicks the size, and the code is bound from then on. An Issuer sees the code and is told only an admin can bind it. **New product from this barcode** (Admin) opens `Add catalogue item` with the code waiting for its size.
|
||||
|
||||
A scanner used outside any field on another screen opens the search panel with `No person or garment has` the code. Admins get **Bind it to a garment** there, which opens the same dialog.
|
||||
|
||||
**Scan to add**, at the top of `Stock` (Admin), works through a pile of garments: a known code offers **Open product**; an unknown one offers a new product or a binding to a garment you already have.
|
||||
|
||||
The dialogs check the digits. A code that fails its check digit is flagged as a possible mis-read but can still be bound, and so can a code of a non-standard length.
|
||||
|
||||
With `Settings › Catalogue & suppliers › 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.
|
||||
|
||||
## Typed, generated and moved codes
|
||||
|
||||
The garment page's `Sizes` panel has a barcode box on each row (Admin). Type or scan the code and press Enter or **Save**. Codes may carry letters. To take a code off, clear the box and confirm, or press **×**.
|
||||
|
||||
**Generate barcodes**, in the garment page's menu, gives every size without a code one of ThreadCount's own; **Generate** on a row does one size. Sizes with a supplier code keep it. A generated code is a 13-digit EAN-13 starting `29`, the GS1 range 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.
|
||||
|
||||
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. Binding a code that is another garment's internal `93` number is refused.
|
||||
|
||||
## Printing labels
|
||||
|
||||
**Print labels (N)**, in the garment page's menu, prints one label for every garment on hand across the sizes that carry a barcode. It asks first, then opens an A4 sheet, 2 labels across, in a new tab.
|
||||
|
||||
Each label carries the garment name, size, SKU, and the bars with the code. A valid EAN-13 prints as EAN-13; any other code prints as Code 128. A code too long to print at a scannable size is flagged above the sheet. With no size labelled, or nothing on hand, the sheet says which instead of printing.
|
||||
|
||||
## Accepted formats
|
||||
|
||||
- The camera reads 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. 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,68 @@
|
||||
---
|
||||
title: Catalogue, sizes and cuts
|
||||
section: stock
|
||||
order: 1
|
||||
summary: The On hand list, how a garment is entered once, why a size is a position in its list, what a cut is, and where garments live.
|
||||
screen: Stock › On hand
|
||||
role: Admin
|
||||
keywords: catalogue, garment, product, add garment, on hand, inventory, sizes, size run, cut, gender, men's, women's, unisex, staff groups, discontinue, duplicate, delete, price history, locations, shelf
|
||||
---
|
||||
|
||||
## The On hand list
|
||||
|
||||
`Stock › On hand` lists every garment with a strip of its sizes and what each holds. The segment narrows it to `All`, `At reorder`, `Out`, `On order` or `No barcode`; `Filter garments`, `Group` and `Supplier` narrow it further. Click a size to open `Adjust quantity`, or the name to open the garment's page. **Export CSV** downloads every size.
|
||||
|
||||
Admins can tick garments for the bulk bar: `Discontinue`, `Reinstate`, `Delete`, `Set supplier`, `Set group`, `Set reorder` and `Apply price`.
|
||||
|
||||
## Adding a garment
|
||||
|
||||
A garment is one item in one colour: a name, a cut, a SKU, a supplier, a unit cost, a product type, staff groups, notes and a list of sizes. Stock, barcodes, reorder levels, supplier codes and shelf places are held per size.
|
||||
|
||||
1. **Press Add garment** at the top of `Stock`.
|
||||
2. **Enter the garment.** The supplier list comes from `Settings › Catalogue & suppliers`.
|
||||
3. **Add the sizes.** Type a size and press Enter, or pick from a run: `XS – 5XL`, `6 – 24` or `72 – 117`.
|
||||
4. **Give each size its barcode and opening stock.** Both are optional.
|
||||
5. **Press 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, half a set under the [entitlement rule](/docs/people/entitlement-rule), and the dialog says which. Many garments come in at once from `Settings › Data & audit log` with the Catalogue template (see [CSV templates](/docs/reference/csv-templates)).
|
||||
|
||||
## Cuts and staff groups
|
||||
|
||||
A garment's cut is `Unisex`, `Men's` or `Women's`, set in `Gender`. A men's or women's garment shows `(M)` or `(W)` after its name. A person's uniform style is set on their record in [People](/docs/people/staff-register). In an import, a gender starting with `m` is men's, one starting with `f` or `w` is women's, and anything else is unisex.
|
||||
|
||||
The staff groups tick-list says which groups a garment is for. **An empty list means every group.** Other groups can't request it, and need the override at the counter. In an import, groups are separated by `|`, and a blank group column on a re-import leaves a garment's groups as they were.
|
||||
|
||||
## A size is a position
|
||||
|
||||
ThreadCount records a size by its position in the size list, not by its name. Every issue, count, movement, barcode and reorder level points at a position.
|
||||
|
||||
- A new size goes on the end, from `Add a size` in the garment page's `Sizes` panel, or from **Scan sizes**. It starts with no barcode.
|
||||
- Once anything is recorded against a garment, its sizes can't be reordered.
|
||||
- **Remove** on a size row 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. The refusal names which.
|
||||
- Removing a size deletes its reorder level and barcode and moves every later size down one. A garment's last size can't be removed.
|
||||
|
||||
## Locations
|
||||
|
||||
`Stock › Locations` holds where garments live. A location is a `Room`, `Shelf`, `Bay`, `Laundry` or `External`, and can sit inside another. An Admin adds one with `New location`, `Kind` and `Inside`. **×** removes it: the locations inside move up a level and its sizes become unplaced. An Issuer sees the list read-only.
|
||||
|
||||
Anyone places a size with the `Location` select on the garment's page, and a count can then be scoped to that location (see [stocktakes](/docs/stock/stocktakes)).
|
||||
|
||||
## Discontinue, duplicate, delete
|
||||
|
||||
- **Discontinue**, from the garment page's menu or the bulk bar, takes a garment out of counts and reorder flags. Its stock still counts in the value on hand. **Reinstate** brings it back.
|
||||
- **Duplicate** copies the type, gender, supplier, cost, notes, sizes and reorder levels, but no barcodes or stock. It is refused when a garment of that name already exists for the same groups.
|
||||
- **Delete**, on the bulk bar, removes garments with nothing recorded against them. Anything with history or stock on hand is discontinued instead.
|
||||
|
||||
A change of unit cost, from **Edit garment**, `Apply price`, the order page or a delivery, adds an entry to `Price history`. Past issues keep their recorded price.
|
||||
|
||||
## What is written
|
||||
|
||||
| Action | Record · Change | Undo |
|
||||
|---|---|---|
|
||||
| Add to catalogue | New garment; barcodes; opening stock; a price history entry when the cost is above 0 | Delete while nothing is recorded, otherwise Discontinue |
|
||||
| Change unit cost | Garment cost; a price history entry | Change it back |
|
||||
| Add a size | Size appended | Remove, while nothing is recorded |
|
||||
| Remove a size | Size, reorder level and barcode deleted; later sizes move down | Add it again, at the end |
|
||||
| Discontinue | Garment marked discontinued | Reinstate |
|
||||
| Duplicate | New garment with sizes and reorder levels | Delete |
|
||||
| Remove a location | Location deleted; its sizes unplaced | Add it and re-place the sizes |
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: The To order list
|
||||
section: stock
|
||||
order: 5
|
||||
summary: What to order, one panel per supplier and net of what is already on order, raised and emailed in one press, then the orders on the way and the ledger of every order.
|
||||
screen: Orders
|
||||
role: Admin
|
||||
keywords: order list, to order, purchase order, reorder, supplier order, raise, order and email, supplier code, order sheet, print, CSV, email supplier, supplier order number, on the way, ledger, all orders, order history
|
||||
---
|
||||
|
||||
## The Orders screen
|
||||
|
||||
`Orders` has three columns. Admins see `To order` on the left; an Issuer sees `Recent orders` there instead, the latest 10. The middle column, `On the way`, lists placed orders still open, overdue first, each with **Receive** (see [receiving](/docs/stock/receiving-and-back-orders)). `This month` counts the orders placed and received this month with their value, and **Open the ledger** goes to every order.
|
||||
|
||||
**New order** and **Order for a person**, at the top, are open to everyone. Both make a draft.
|
||||
|
||||
## What appears in To order
|
||||
|
||||
`To order` has one panel per supplier, A to Z, for every supplier with a size at [reorder](/docs/stock/reorder-levels) or a draft with lines. The panel heading shows the supplier's lead time and order email, or `no email on file`, and the number of lines and their value at catalogue cost.
|
||||
|
||||
Each size at reorder is a line, with a suggested quantity of twice the level, less what is on hand, less what is on order, never below 0. On order counts every open order and draft, so a quantity already on a draft is not suggested again. The supplier is the garment's, or the first in `Settings › Catalogue & suppliers` when it has none.
|
||||
|
||||
The columns are `Code`, `Garment`, `On hand`, `Reorder`, `On order`, `Per week`, `Order` and `Cost`. A size with no supplier code shows `no code`, linked to the garment's page. A size tagged `runs out before this arrives` is sorted to the top.
|
||||
|
||||
- The `Order` stepper changes a quantity; **×** takes a line off.
|
||||
- **Add a line** adds any current garment and size, with a quantity.
|
||||
- Edits stay on this screen until the panel is ordered.
|
||||
|
||||
## Drafts in the panel
|
||||
|
||||
Each of the supplier's drafts with lines is listed under the table, tagged `staff` when it is for a person or `draft` when it is for stock, with its own `Supplier order no.` box. A draft for a staff member is raised as its own order and never merged into the stock order, so each person's order stays separate from the shelf's.
|
||||
|
||||
## Ordering
|
||||
|
||||
The foot of the panel has `Supplier order no.` for the stock order: the number the supplier gives when the order is placed on their site. **Sheet** prints the panel as it stands.
|
||||
|
||||
**Order and email**, or **Order** when the supplier has no order email, raises the panel:
|
||||
|
||||
- The stock lines become 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. Lines at 0 are dropped.
|
||||
- Each draft becomes `Ordered`, taking its supplier order number if one was typed.
|
||||
- If anything is refused, for example a draft somebody else has already placed, nothing is raised.
|
||||
- With an order email on file, each order is then emailed, and the panel says `Sent to` the address or why it wasn't.
|
||||
|
||||
The panel then lists the orders raised, each with **Print**, **CSV** and **Email**, until **Done**.
|
||||
|
||||
## The sheet, the CSV and the email
|
||||
|
||||
**Print** opens the A4 purchase order (Admin): 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; a row per line with the supplier code; and spaces for who ordered and the date placed. Where a size has no supplier code, the garment's SKU is used. Opening the sheet records when the order was printed. The same sheet is **Order sheet** on the order's own page.
|
||||
|
||||
**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. The subject reads like `Purchase order ORD-2026-0042 (NW-48211) — Riverside General`, with the lines, the account, the delivery location and an estimated value ex tax, asking the supplier to quote the order number on the invoice. It is refused for a draft, a cancelled order, a supplier with no order email, and a server with no email set up.
|
||||
|
||||
## The ledger
|
||||
|
||||
`Orders › All orders` lists every order. Search by order number, reference, invoice, tracking, supplier, person or garment, and filter by `Supplier`, `Garment`, `From`, `To` and `All`, `Draft`, `Open` or `Received`. `Open` means placed and not yet received or cancelled. **Export CSV** downloads the orders shown.
|
||||
|
||||
A garment's page lists every order line for it under `Orders`, and every change of unit cost under `Price history`.
|
||||
|
||||
## What is written
|
||||
|
||||
| Action | Record · Change | Undo |
|
||||
|---|---|---|
|
||||
| Order, stock lines | New order: stock, `Ordered`, reference, expected date, lines | Cancel order on the order page (Admin) |
|
||||
| Order, a 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 |
|
||||
| Sheet, CSV | Nothing | Nothing to undo |
|
||||
@@ -0,0 +1,69 @@
|
||||
---
|
||||
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 a pickup.
|
||||
screen: Orders › an order › Receive delivery
|
||||
role: Admin or Issuer
|
||||
keywords: receive, receive delivery, delivery, goods received, invoice, back order, short delivery, partial delivery, pickup, shelf, invoiced cost, docket, on the way, overdue
|
||||
---
|
||||
|
||||
## Before a delivery can be received
|
||||
|
||||
A delivery is received from three places: **Receive** on a row of `Orders › On the way`, **Receive delivery** on the order's own page, and **Receive delivery** in the `Receive` group on `Today`, which lists orders due within 2 days or overdue.
|
||||
|
||||
**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**, in the order page's menu (Admin), is optional and changes nothing about receiving.
|
||||
|
||||
The order page's `Units received` figure 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` from `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 in the facility's time zone.
|
||||
3. **Add a note** if something was wrong, and **Photo the invoice** if you want it 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. **Press Receive.**
|
||||
|
||||
On the order page, a line whose delivered units were invoiced at a different price is marked `invoice price`.
|
||||
|
||||
## 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's page says `back order of` the original, and the original lists its back orders under `Lines`. A back order is received the same way, and anything short on it goes to another back order. Cancel one 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 `Today` under `Call to collect` or `Deliver on the round`. See the [pickup call list](/docs/counter/pickup-call-list).
|
||||
|
||||
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 dialog |
|
||||
| Update catalogue cost | Catalogue unit cost; a price history entry | Change the cost on the garment page |
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: Reorder levels
|
||||
section: stock
|
||||
order: 3
|
||||
summary: A reorder level per size or the facility default, when a size is flagged, where the flags show, and how the forecast suggests a level.
|
||||
screen: Stock › a garment
|
||||
role: Admin
|
||||
keywords: reorder level, par, minimum, low stock, at reorder, out of stock, flagged, replenishment, forecast, suggested reorder, lead time, weeks of cover, runs out
|
||||
---
|
||||
|
||||
## 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 `Default reorder level` under `Settings › Catalogue & suppliers`, which starts at `3`.
|
||||
|
||||
An Admin sets a size's own level in any of these places:
|
||||
|
||||
- The **−** and **+** stepper in the `Reorder at` column of the `Sizes` panel, on the garment's page.
|
||||
- **Set reorder** on the bulk bar of `Stock › On hand`, which sets one level on every size of the ticked garments.
|
||||
- **Use** beside a forecast suggestion in the garment page's `Ordering` panel (below).
|
||||
- The Reorder levels template in `Settings › Data & audit log`, or the optional `reorder` column of Opening balances. See [CSV templates](/docs/reference/csv-templates).
|
||||
- **Duplicate** copies a garment's 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. An Issuer sees the levels but can't change them.
|
||||
|
||||
## When a size is flagged
|
||||
|
||||
A size is at reorder when what is on hand is at or below its 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.
|
||||
|
||||
The same rule drives every place a flag shows:
|
||||
|
||||
- `Stock › On hand`: the `At reorder` segment and its count, a low or out mark on the size in the strip, and a `N low` or `N out` tag on the garment.
|
||||
- The garment page: `Reorder` or `Out` in each size's `Status`.
|
||||
- The rail: the `Stock` badge counts garments with any size at reorder.
|
||||
- `Today`: the `Runs out before a delivery` panel lists sizes at reorder that are out, or forecast to run out before a delivery, 6 at most.
|
||||
- `Orders`: the To order list, where they become lines to order. See [the To order list](/docs/stock/order-list).
|
||||
|
||||
On the phone, the count's variance screen says how many lines will fall below par once the count commits: lines that were above their reorder level before the count and are at or below it after. Committing opens the Reorder screen only when there is at least one such line. Otherwise the screen reads "Nothing falls below par when this commits, so there is nothing to reorder." and committing returns to the home screen. Committing drafts no order itself.
|
||||
|
||||
## The forecast's suggested level
|
||||
|
||||
The garment 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 figure reads like `Suggested 12 · 3.1 wk cover · ~4/wk`: the suggestion, 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. On the To order list the same size reads `runs out before this arrives`, which is also shown for a size that is out and has any usage.
|
||||
|
||||
A suggestion writes nothing. **Use** appears when the suggestion differs from the current level, and sets it.
|
||||
|
||||
> **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 ticked garment | Set it again per size |
|
||||
| Default reorder level | Facility setting, read by every size without its own | Change it back |
|
||||
| A flag or a suggestion | Nothing; both are worked out on screen | Nothing to undo |
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Stocktakes
|
||||
section: stock
|
||||
order: 4
|
||||
summary: Counting the shelf or a location at the desk or on a phone, blind counts, variance in garments and dollars, the reasons a large gap needs, and what filing writes.
|
||||
screen: Stock › Count
|
||||
role: Admin or Issuer
|
||||
keywords: stocktake, stock take, count, audit, stock count, blind count, variance, shrinkage, count sheet, reason, missing, condemned, laundry, file count, apply adjustments, location, shelf, pre-loved
|
||||
---
|
||||
|
||||
## Counting at the desk
|
||||
|
||||
`Stock › Count` lists every size of every current garment with the figure ThreadCount holds (`System`) and a `Counted` box.
|
||||
|
||||
1. **Set the scope.** `Filter garments` by name, SKU, size or barcode, pick a `Group`, or pick a `Location` to count only the sizes placed there and inside it. `Show › Uncounted` hides lines already counted.
|
||||
2. **Count.** Each scan into `Scan to count +1` adds 1 to its line; **Camera** does the same. Or type the figure into `Counted`.
|
||||
3. **Watch the progress.** The bar reads `N% counted · N of N`, and the line below gives the variances, their dollar value and how many need a reason.
|
||||
4. **Zero uncounted** 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 `Saved tally · last entry` says when it was last touched. **Clear counts** starts again. A code that matches nothing opens the [unknown barcode](/docs/stock/barcodes) dialog. A code for a size outside the chosen location is not counted.
|
||||
|
||||
`Pool › Shelf` counts stock on hand. `Pool › Pre-loved` counts the pool of handed-in garments instead, carried at nil value. The screen can be reached from `Today`, where `Counts due` lists locations never counted or last counted 30 or more days ago.
|
||||
|
||||
## Blind counts and the count sheet
|
||||
|
||||
`Mode › Blind` hides the `System` figures and the variance and dollar figures, so the counter can't see the expected number. A counted line shows a tick under `Counted?`. 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. The dollar figure is each variance times the garment's unit cost, added up; in the pre-loved pool it is nil.
|
||||
|
||||
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 kept at the top of the list whatever the filter hides, and the file button stays off until each has one. The server refuses the whole count if one arrives without.
|
||||
|
||||
## Filing the count
|
||||
|
||||
The button reads **File count** when every counted line matched and **Apply adjustments** when some didn't. Issuers can file a count as well as Admins.
|
||||
|
||||
- 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 the garment page is right.
|
||||
- Each variance moves stock on hand by the difference. In the 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.
|
||||
- A count scoped to a location files with that location, and is refused if a line is not placed under it.
|
||||
|
||||
`Stocktake history`, below, lists filed counts newest first: date, who counted, pool, location, lines, variances, and the net change in garments and dollars. **Variances** shows each gap with its reason; **CSV** downloads that count's variance lines with unit cost and variance value.
|
||||
|
||||
## Counting on a phone
|
||||
|
||||
In the [counter app](/docs/apps/counter-app), the count lists every location with garments placed on it, plus `Not on a shelf yet`. Sizes are placed from the garment's page, and locations are made in `Stock › Locations`.
|
||||
|
||||
1. **Pick the location.** Each line shows counted against expected.
|
||||
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 counter app also charts each size's gap across the last 6 shelf counts.
|
||||
|
||||
> **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 adjustments / Commit count | A stocktake: date, who, lines counted, variances, shelf or pool, location if scoped; 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,64 @@
|
||||
---
|
||||
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, set supplier
|
||||
---
|
||||
|
||||
## The supplier directory
|
||||
|
||||
`Settings › Catalogue & suppliers` lists every supplier the facility buys from under `Suppliers`, 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**, or Enter. A name already on the list, in any mix of capitals, is refused.
|
||||
|
||||
A supplier is also added when a garment is saved or bulk-changed with a supplier name the directory doesn't hold. The match ignores 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, order email, lead time, and the number of products and orders for each.
|
||||
|
||||
## Each supplier's details
|
||||
|
||||
| Field | What it holds |
|
||||
|---|---|
|
||||
| `Contact` | 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 [To order](/docs/stock/order-list), and on back orders. With none set, those 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)).
|
||||
- **Lead time and order email** head each supplier's panel in `Orders › To order`, which shows `no email on file` when there is none.
|
||||
- **Contact, phone, order email and account number** print on the A4 purchase order, and the account number goes into the email.
|
||||
- **Order email** is the only address **Order and email**, **Email** and **Email supplier** send to. Without it, To order offers **Order** alone, and emailing an order is refused with a note to add an address.
|
||||
|
||||
## The supplier's code for each size
|
||||
|
||||
Suppliers number each size and colour of a garment separately. Record that code on the garment's page, in the `Ordering` panel's `Supplier code` column, against each size (up to 60 characters). It saves when you leave the box. An Issuer sees the codes but can't change them.
|
||||
|
||||
The code is printed against the line on the A4 purchase order, 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, the email and the CSV from To order use the garment's SKU; the order page's CSV has a separate `SKU` column. On To order a missing code shows as `no code`, linked back to the garment's 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 page with **Edit garment**, or for several at once with `Set supplier` on the bulk bar of `Stock › On hand`. Changing a garment's supplier doesn't change existing orders. An order's supplier can be changed in the order page's `Order details` 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