How the two sections work
The Stock Transfers list is really two lists on one screen, each backed by its own query. Understanding the split makes the page’s behaviour predictable.
Which status goes where
| Section | Statuses | Meaning |
|---|---|---|
| Needs your action | pending, in transit, in progress | Open — has a next step |
| All other transfers | completed, cancelled, partial | Terminal, or a partially-received GRN |
A transfer moves from the top list to the bottom as it progresses: a pending request is dispatched (→ in transit), the rider confirms and it’s received (→ in progress), and completing it makes it completed — at which point it drops into All other transfers.
Independent fetch, independent pagination
Each section runs its own server query, filtered to its own status set, and has its own Previous / Next pager and total count. The two queries fire in parallel and neither writes over the other’s data. Practically:
- Paging deep into All other transfers (say, last month’s completed moves) leaves Needs your action exactly where it was.
- Each section shows its true server-side total (e.g. “Page 1 of 4 · 37 total”), not a slice of a combined page.
This is the key difference from a single paginated grid, where “page 2” would re-slice everything and could empty the action list.
Filters apply to both; triage focuses both
- Search, Locations, Type, Product, Date, and Attention filters are applied to both section queries, so they narrow the whole screen consistently. Changing any of them resets both sections to page 1.
- The Status filter narrows within the split: pick a
pendingstatus and only the action list shows rows; pickcompletedand only the other list does. - The triage pills are a lighter, client-side focus over the rows already loaded on screen — a quick way to isolate awaiting dispatch, in transit / receiving, or needs review without a round-trip.
The action button vs. the section
A row’s action button (Dispatch / Rider confirm / Complete / Review / View) is decided per-transfer from its status and your access — so a transfer you can’t act on shows View. The section a row lands in is decided purely by status. Most open transfers you can act on; a few (e.g. one in a warehouse you’re not assigned to) sit in the action list with a View button.