HOCO B2B
Team tasksAnis

DSH-05 — Back-office stock pages

Stock overview and alerts, movements journal, receipts and adjustments, inventory sessions, warehouses, stock dashboard.

FieldDetails
Task codeDSH-05
PhaseP1 — V1 build & integration
Product scopeV1
StatusPlanned
StartSun 15 Nov 2026
DueSun 15 Nov 2026
ResponsibleAnis — Full-stack developer
Co-responsible—
Effort0.75 person-day(s) planned · 4 from scratch · size S
Area · appBack-office · dashboard
Depends onDSH-04, SRV-13
Unblocks—
Milestones—

Summary

Stock overview and alerts, movements journal, receipts and adjustments, inventory sessions, warehouses, stock dashboard.

Description

The stock manager needs exact quantities, movements and inventories (cahier §3, §4.3; STK-01, STK-02, STK-04…STK-06) — the only place where stock numbers are visible (decision 1). On top of SRV-13, this task delivers the stock dashboard (BO-07), the stock overview with physical, reserved and available quantities and alerts (BO-33), the movements journal (BO-34), receipt and adjustment forms (BO-35), inventory sessions with counting and validation (BO-36) and warehouses (BO-37). Out of scope: catalog editing (DSH-04) and stock-system synchronisation (V2).

Subtasks

#SubtaskOwner
1BO-07 stock dashboard: out-of-stock and low-stock counts, movements today, stock value at purchase price (gated), top stock-outs, links to filtered listsAnis
2BO-33 overview: reference, product, warehouse, physical, reserved, available, threshold, alert pill; filters warehouse, brand, category, alert state; inline threshold editAnis
3BO-34 movements journal: date, StockMovementType, quantity, before/after, reference link (order, return, inventory), user; filters and exportAnis
4BO-35 receipt and adjustment forms: multi-line entry with barcode scanner input, warehouse, reason, confirmation summaryAnis
5BO-36 inventory sessions: create (warehouse, scope), counting grid with scanner input, differences review, validate with reasonsAnis
6BO-37 warehouses: list and form, default selling warehouse, non-selling (quarantine) flagAnis
7Live stock alerts from the back-office SSE stream (toast and dashboard counter refresh)Anis
8Permission gating stock.view/create/update/validate/exportAnis

Deliverables

  • apps/dashboard/src/app/[locale]/(app)/stock/{page.tsx,dashboard/page.tsx,movements/page.tsx,receipts/new/page.tsx,adjustments/new/page.tsx}
  • apps/dashboard/src/app/[locale]/(app)/stock/{inventory,warehouses}/…
  • apps/dashboard/src/features/stock/ (scanner input, movement table)

Acceptance criteria

  • Available always equals physical minus reserved on BO-33 for every row (STK-02)
  • A receipt creates RECEIPT movements visible in BO-34 with the reference and user (STK-04)
  • An adjustment without a reason cannot be submitted (STK-06)
  • Validating an inventory session posts INVENTORY movements for every difference and the overview reflects the counted quantities (STK-06)
  • A low-stock event appears as an alert without page reload (STK-05)

Requirements covered

RequirementTitleRelease
STK-01Global stock or stock per warehouseV1
STK-02Physical, reserved and available stock (available = physical − reserved) with alert thresholdsV1
STK-04Every stock variation is journaled (movement ledger)V1
STK-05Low-stock and out-of-stock alertsV1
STK-06Inventory sessions and adjustments with reasonsV1

Screens

ScreenNameApp
BO-07Stock dashboardBO
BO-33Stock overviewBO
BO-34Stock movements journalBO
BO-35Stock receipt / adjustmentBO
BO-36Inventory sessionsBO
BO-37WarehousesBO

API surface

Endpoint groupOperations
Stock8

Test measures

  • Playwright e2e: receipt → overview → movements → inventory with one difference
  • Component test for the scanner input (keyboard-wedge scanners)
  • Manual check with a USB barcode scanner

KPI

  • Delivered by Sun 15 Nov 2026 within 0.75 person-day(s).
  • Every acceptance criterion above demonstrated before hand-off; linked requirements' acceptance criteria pass.
  • Zero open critical defects, permission gaps or data-integrity regressions at sign-off.

Generated from content/plan/tasks.json by scripts/generate-team-tasks.mjs. Dates are computed by the scheduler (Sunday–Thursday weeks, holidays excluded) — change the plan, not this page.

On this page