MEGAINFRA-WEBAPP/scripts/migrations
DEls 9f0fce988e feat(cash-floats): petty-cash cards on users, one log, clock Slips tab
Each cash float card lives on its holder's user record (card number, last
4-6 digits of the physical card, low limit, assigned date). Every movement
goes in one cash_float_log collection: opening, top-up, slip, handover and
correction rows with signed amounts. Balances are always summed from the log.

- Management -> Cash Floats: cards table (lowest balance first), add, edit,
  top up, hand over, correct balance, retire, movements sheet with slip
  photos and CSV export. Admin-only.
- Settings -> Users: card section in the edit form and the balance per holder.
- Clock app: Slips tab, shown only to a user who holds a card. Photo, site,
  supplier and amount; the slip comes off that user's own card.
- Sidebar needs-attention mark when a card is under its limit.
- Slips count as site spend ("Cash float slips" on the site page).
- Migration scripts/migrations/2026-10-24-cash-floats.py (already applied to
  production on 2026-10-24).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 13:17:06 +02:00
..
2026-08-19-extend-data-import-batches.py
2026-08-24-data-import-batches-allow-xlsx.py
2026-08-24-fuel-logs-latest-consumption.py
2026-08-28-vehicles-attention-dismissed.py
2026-08-28-vehicles-unit-type-optional.py
2026-08-29-fixed-costs-recurring-backfill.py
2026-08-31-data-import-batches-allow-pdf-images.py
2026-09-11-add-document-fields.py
2026-09-11-add-site-work-month-field.py
2026-09-11-backfill-entity-file-hashes.py
2026-09-11-backfill-fuel-log-sites.py
2026-09-11-backfill-timesheet-sites.py
2026-09-12-add-clock-events.py
2026-09-12-add-po-date-uploaded.py
2026-09-12-create-document-collections.py
2026-09-12-migrate-batches-to-documents.py
2026-09-12-rename-collections.py
2026-09-12-widen-sheet-mimetypes.py
2026-09-14-require-site.py
2026-09-15-add-indexes.py
2026-09-15-drop-legacy-columns.py
2026-09-16-add-suppliers-schema.py
2026-09-16-migrate-suppliers.py
2026-09-22-add-fuel-log-coordinates.py
2026-09-22-add-vehicle-last-location.py
2026-09-25-add-missed-clock-outs.py
2026-09-28-fuel-logs-previous-reading.py
2026-09-28-users-login.py
2026-09-30-add-supplier-reconciliation-rules.mjs
2026-09-30-add-supplier-reconciliation-rules.test.mjs
2026-10-01-add-dn-line-posting.mjs
2026-10-01-add-dn-line-posting.test.mjs
2026-10-01-add-dn-processing-preview.mjs
2026-10-05-add-mcp-operations.mjs
2026-10-05-add-mcp-operations.test.mjs
2026-10-07-office-access.py
2026-10-09-add-missed-out-actual-in.py feat(clock): fix a missing clock-in from Needs attention 2026-10-09 12:57:09 +02:00
2026-10-09-recalc-clock-paid-hours.py feat(clock): pay against the real work schedule 2026-10-09 19:51:24 +02:00
2026-10-14-site-map.py fix(site-map): allow tab-separated survey files 2026-10-14 08:52:19 +02:00
2026-10-17-clock-scan-location.mts fix: harden workforce, plant and financials 2026-10-19 13:18:31 +02:00
2026-10-17-vehicle-identity.mts fix: harden workforce, plant and financials 2026-10-19 13:18:31 +02:00
2026-10-17-worker-identity.mts fix: harden workforce, plant and financials 2026-10-19 13:18:31 +02:00
2026-10-18-plant-review.mts fix: harden workforce, plant and financials 2026-10-19 13:18:31 +02:00
2026-10-19-user-session-lifetime.py fix(auth): keep named user sessions for 60 days 2026-10-19 20:04:14 +02:00
2026-10-24-cash-floats.py feat(cash-floats): petty-cash cards on users, one log, clock Slips tab 2026-10-24 13:17:06 +02:00
test_2026_09_25_add_missed_clock_outs.py
test_2026_10_09_add_missed_out_actual_in.py feat(clock): fix a missing clock-in from Needs attention 2026-10-09 12:57:09 +02:00
test_2026_10_09_recalc_clock_paid_hours.py feat(clock): pay against the real work schedule 2026-10-09 19:51:24 +02:00
test_2026_10_14_site_map.py fix(site-map): allow tab-separated survey files 2026-10-14 08:52:19 +02:00
test_2026_10_24_cash_floats.py feat(cash-floats): petty-cash cards on users, one log, clock Slips tab 2026-10-24 13:17:06 +02:00
test_office_access.py