Reserve materials for specific sites before physically withdrawing them. Release on changing needs, fulfill on withdrawal, cancel on project cancellation.
Site materials should be set aside, not fought over at need. Reservations prevent overallocation and enable better planning.
Two sites want same batch. Without reservations — who gets it? Prioritized reservations solve.
Site waits for materials because another site uses them. Reservations protect you.
You don't know how much is really available for new site. availableStock = stock - reserved is real-time.
Reservation without cancel/release/fulfill flow — materials stay blocked forever.
Construction Hub provides full reservation lifecycle.
getNextNumber generates unique reservation number. Consistent numbering for audit.
create for specific site/contract + material + quantity. From available stock — blocked for reservation.
release endpoint — if site no longer needs full quantity, free part or whole back to available stock.
fulfill — when actually withdrawing material, reservation converts to OUTBOUND stock movement. Auto inventory update.
cancel — on project cancellation or needs change. Material returns to availableStock. Audit trail preserved.
list with pagination, filters by warehouse, site, status. Quick find of active reservations.
Four steps from planning to withdrawal:
Plan materials for upcoming site. See availableStock.
create reservation for site. Quantity blocked, visible as RESERVED.
release for less than planned, cancel on cancellation. Flexible workflow.
When actually taking material, fulfill generates OUTBOUND stock movement. Reservation closes.
Suitable for firms with multiple active sites:
Plan orders knowing what's reserved for which site.
Reserve materials when approving BOQ, guarantee availability.
Prioritize movements — reserved first, ad-hoc later.
Know what's set aside for their site. Confidence in planning.
Why manual reservations are impractical:
| Feature | Excel | Construction Hub |
|---|---|---|
| Available stock | Sum − manually reserved | Real-time auto |
| Lifecycle | None | Create/release/fulfill/cancel |
| Per site | Column | Foreign key + aggregation |
| Prioritization | Verbal | Formalized |
| Audit | None | Full log |
| Auto numbering | Manual | getNextNumber |
| Fulfill integration | Double entry | Auto stock movement |
ACTIVE → FULFILLED (on withdrawal), or ACTIVE → RELEASED (on partial release), or ACTIVE → CANCELLED (on cancellation). Every transition with audit record.
Release — free part or whole because site no longer needs as much. Cancel — cancel entire reservation because project changed.
fulfill converts reservation into OUTBOUND stock movement. Material physically leaves warehouse. Reservation closes with FULFILLED status.
No. create checks availableStock (stock − ACTIVE reservations) before confirming. If insufficient — error.
First come first served. For manual prioritization — cancel older reservation if needed, create new.
list with pagination and filters by site, warehouse, status. Dashboard also has active reservations summary.
Yes, on relevant events — cancel by another user, approaching release deadline, etc.