|
1234567891011121314151617181920212223242526272829303132333435363738394041 |
- # PO Workbench module
-
- Purchase order receiving workbench at `/po/workbench`.
-
- ## Public API
-
- Only **`PoWorkbenchShell`** is imported from outside this folder (via `PoWorkbenchPageClient`). Do not import subfolders from other routes.
-
- ## Layout (desktop)
-
- ```
- searchCriteria | detailsHeader
- searchResults | details (form + line grid)
- ```
-
- - **layout/** — `PoWorkbenchShell` 2×2 grid tokens and `PoWorkbenchRegion` pane chrome.
- - **search/** — Criteria bar, advanced filters, PO list, `/po/list` hook and mappers.
- - **details/** — Selected PO summary header.
- - **detailsGrid/** — Receipt form and four-column line grid (mock lines until detail API).
- - **shared/** — Result summary, receive status chip, shared icon/typography tokens.
- - **mock/** — Optional local list fixtures (`PO_WORKBENCH_LIST_MOCK_ROWS`); not used by production shell.
-
- ## Naming
-
- | Kind | Pattern | Example |
- |------|---------|---------|
- | Component | `PoWorkbench` + PascalCase | `PoWorkbenchDetailsGrid.tsx` |
- | Hook | `usePoWorkbench` + camelCase | `usePoWorkbenchListSearch.ts` |
- | Helper / layout | `poWorkbench` + camelCase file | `poWorkbenchDetailsGridLayout.ts` |
- | Type | `PoWorkbench` + domain | `PoWorkbenchListRow` |
- | Constant | `PO_WORKBENCH_*` / `DETAILS_GRID_*` | `PO_WORKBENCH_GRID_TEMPLATE_COLUMNS` |
-
- ## Data flow
-
- 1. User filters → `usePoWorkbenchListSearch` → `GET /po/list` → `PoWorkbenchListRow[]`.
- 2. Selection → `PoWorkbenchDetailsHeader` + `PoWorkbenchDetailsGrid`.
- 3. Detail lines: `PO_WORKBENCH_DETAILS_GRID_MOCK_ROWS` (replace with API later).
-
- ## Comments
-
- Source comments are in **English**. UI strings use i18n (`poWorkbench`, `purchaseOrder` for status labels).
|