Safe Count (new flow):
- Replaces simple re-use of FloatCountForm with a dedicated 3-column table:
Current in Safe | Adjustment | New Total
- Loads the most recent safe_cash float count on mount to pre-populate Current
- Adjustment inputs accept positive (deposit) or negative (uplift/exchange) values
- New Total = Current + Adjustment per denomination; minimum clamped to 0
- Saves a new safe_cash float_count record via existing /floats/save endpoint
Cash Summary (redesign):
- Backend adds a per-date denomination query (by_date_denom) to the
cash-summary endpoint in addition to the existing aggregate query
- Frontend rewritten as a cross-tab: denominations down rows, dates across
columns, row totals on the right, per-day cash totals in the footer
- Status badges (draft/final) shown per column in a header row
- "+ Add to Safe" button navigates to /safe passing the period's denomination
totals as React Router state, pre-filling the adjustment column
Float Management:
- Denomination entry form switched from CSS grid divs to a proper <table>
matching the style of the print view (header row, qty input right-aligned,
amount column, total in tfoot)
- DetailRecord type and FloatRecordPrint component exported so SafeCount can
reuse the existing print/view component for safe cash records
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>