LiveView for the Warehouse "Turnover" report (ยง8, no export).
A simple, fixed-column report โ deliberately NOT built on the
table-parity stack (ColumnManagement/ColumnConfig): a six-field
movement report has no per-user column-personalization need. Renders a
date_from/date_to + warehouse-scope filter form (single
phx-change="filter_change" covering all three fields, defaulting to
the current calendar month and every warehouse) on top of
PhoenixKitWarehouse.Turnover.compute/3.
The "Balance" column is each item's current on-hand quantity, not a
historical balance as of date_to (see Turnover's moduledoc for why โ
there's no ledger/journal table to reconstruct a point-in-time balance
from). That limitation is surfaced twice in the UI, not just in code: an
always-visible caption under the filter form (works without hover, so it
reaches touch/mobile users too) and an info-icon tooltip on the column
header itself.
Admin-chrome pattern: self-wrapping render with LayoutWrapper.app_layout
(see :self_wrapped_layout on_mount), same as StockLive/TransferIndexLive.
Navigation via PhoenixKit.Utils.Routes.path/1.