PhoenixKitWarehouse.Web.StockLive (PhoenixKitWarehouse v0.2.2)

Copy Markdown View Source

LiveView for the Warehouse "In stock" page.

Two views, toggled per-user:

  • Grouped (default): read-only catalogue/category tree via WarehouseBrowser.stock_sheet.
  • Flat: full table-parity view backed by Andi.Warehouse.StockColumnConfig โ€” global search, per-column filtering, sorting, and configurable columns.

Both views share a warehouse scope selector, rendered next to the Grouped/Flat toggle: "All warehouses" (the :warehouse_scope assign is nil, totals aggregate every location via StockLedger.stock_map/0) or one specific warehouse (:warehouse_scope holds its location_uuid, totals come from StockLedger.stock_map_for_location/1). Persisted per-user via ViewConfigs, same as stock_view. Hidden entirely when no warehouse LocationType is configured (StockLedger.list_warehouses/0 returns nil).

Both views also carry a deficit indicator (ยง5 โ€” PhoenixKitWarehouse. Deficits / MinStockSettings), always computed across every warehouse regardless of :warehouse_scope (same as Deficits.available_by_item/0). Grouped shows a light warning icon next to items below their configured minimum; Flat additionally exposes Min. quantity (inline-editable), Available, and Deficit columns, a per-row highlight, a "Deficit" filter, and a "Create supplier order" action button on deficit rows.

Admin-chrome pattern: self-wrapping render with LayoutWrapper.app_layout so the page title lands in the global admin header (see :self_wrapped_layout on_mount). Navigation via PhoenixKit.Utils.Routes.path/1.

Summary

Functions

on_mount(atom, params, session, socket)