Ordering to release — runbook
Read-only reference. Edit it in the repo at docs/runbooks/ordering-to-release.md.
# Ordering → receiving → shop release
The one path that turns an approved, paid job into released shop work. It is about
seven actions across two screens. Do them in order. Synthetic/role terms only — no
customer names here.
**The one rule that stops jobs (F1): order every material for every track each
product needs, before you approve.** A fixed-frame awning needs *both* a steel frame
and fabric; a metal patio cover needs steel only. If you leave out a track's material,
that track stalls at "Waiting for fabrication" and the product never reaches fitting.
The plan step now refuses this and tells you which product and track is missing — see
step 3.
---
## 1. Review the material draft
- **Screen:** Order draft (`/jobs/:id/order-draft`), reached from the job's "Material order list."
- **Do:** Check the generated list. Fill quantity, purchase unit and vendor on every
line you are ordering. Exclude a line only with a reason. Make sure **every track
every product needs has at least one material** (see the F1 rule above).
- **Press:** **Approve draft** (after ticking "I checked all products, materials…").
- **You should see:** the draft turn to **"Approved draft · not placed."**
## 2. Confirm when each material is needed
- **Screen:** Received materials (`/jobs/:id/received-materials`).
- **Do:** For each material, choose its work track (Fabrication = steel, Fabric,
Fitting, etc.).
- **Press:** **Confirm material plan.**
- **You should see:** the coverage summary listing each material and its track.
## 3. If the plan is short (F1 guard)
- **What happens:** if a product needs a track with no material, confirmation is
**refused** and names the gap ("*product* needs Fabrication").
- **Do one of:**
- Go back to the Order draft, add the missing material, re-approve, and confirm; or
- If it is genuinely ordered elsewhere, **Confirm plan as an exception** with a
reason. The job then shows **"Approved with material gaps"** on the coordinator
inbox until you close the gap.
- **To close a gap later — Add a missing material (append):** on Received materials,
open **"Add a missing material (append to this plan)."** Choose the product, its
track, and the material; give a reason; press **Append material.** Nothing already
reserved or started is disturbed. Then receive it the normal way (steps 5–6) and the
stalled track releases.
## 4. Record the purchase order
- **Screen:** Record purchase order (`/jobs/orders/new`, "Record a delivery against a
purchase order" → New).
- **Do:** Enter vendor and ordered-by; add one line per material with destination
**Job**. Optionally attach the vendor confirmation under **Order evidence**.
- **Press:** **Record purchase order.**
- **You should see:** the order with each line "Received: 0 · Remaining: full."
(Once the vendor confirms, the board's **Ordered** reads "Confirmed by vendor.")
## 5. Record the delivery
- **Screen:** Record delivery (`/jobs/orders/:orderId/receipts`).
- **Do:** Pick the order line, enter the received quantity and the roll/lot numbers.
- **Press:** **Record delivery.**
- **You should see:** the line change to "Received: full · Remaining: 0," and the
board's **Here** read "Confirmed by receipt."
## 6. Reserve the received material to the plan
- **Screen:** Received materials → the receipt's **Reserve received material** form.
- **Do:** Match the receipt to the material it covers; enter the quantity.
- **Press:** **Reserve received material.**
- **You should see:** the coverage row read "*n* of *n* received and reserved," and the
coordinator inbox row for this job clear.
## 7. Release the first shop work
- **Screen:** Received materials → **Assign initial shop work.**
- **Do:** Choose the product, the track (Fabrication / Fabric / Fitting), and the worker.
- **Press:** **Assign shop work.**
- **You should see:** the stage appear in the shop for that worker to Start. Repeat for
each product and track. Fitting releases on its own once a product's tracks are done.
---
*After this, the shop drives cut/weld/finish and pattern/sew, the two tracks join at
fitting, the kit is approved and staged, and the crew loads and installs. Those steps
live on the shop and installer screens, not here.*