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 docs(project-calendar): add the project month/week plan; fix a stale doc reference 2026-09-11 22:35:41 +02:00
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 feat(clock): add clock_events PocketBase collection 2026-09-12 00:14:13 +02:00
2026-09-12-add-po-date-uploaded.py fix(purchasing): restore the 30-day PO dedup window with a real timestamp 2026-09-11 14:17:42 +02:00
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 feat(schema): require site on every ingested collection 2026-09-11 15:32:48 +02:00
2026-09-15-add-indexes.py perf(schema): index the columns every per-site query filters on 2026-09-11 16:08:34 +02:00
2026-09-15-drop-legacy-columns.py refactor(schema): drop project_code, qty_outstanding, PLANT and data_import_batches 2026-09-11 16:05:42 +02:00
2026-09-16-add-suppliers-schema.py feat(schema): add suppliers collection and purchase_orders.supplier_ref 2026-09-11 18:12:30 +02:00
2026-09-16-migrate-suppliers.py feat(suppliers): migrate existing PO supplier text onto supplier records 2026-09-11 18:14:05 +02:00
2026-09-22-add-fuel-log-coordinates.py feat(clock): enhance vehicle scan API with GPS support 2026-09-22 19:59:44 +02:00
2026-09-22-add-vehicle-last-location.py feat(plant): fleet map page with GPS-denormalised vehicles, clustering, and tile switcher 2026-09-22 21:39:25 +02:00
2026-09-25-add-missed-clock-outs.py feat(clock): review missed scan-outs without changing phone flow 2026-09-25 07:27:12 +02:00
2026-09-28-fuel-logs-previous-reading.py feat: add employee search and save pending fleet updates 2026-09-30 00:42:38 +02:00
2026-09-28-users-login.py fix(auth): verify PocketBase backup key before migration 2026-09-29 07:01:15 +02:00
2026-09-30-add-supplier-reconciliation-rules.mjs Integrate agent work and add dashboard attention indicators 2026-10-04 21:53:32 +02:00
2026-09-30-add-supplier-reconciliation-rules.test.mjs Integrate agent work and add dashboard attention indicators 2026-10-04 21:53:32 +02:00
2026-10-01-add-dn-line-posting.mjs Integrate agent work and add dashboard attention indicators 2026-10-04 21:53:32 +02:00
2026-10-01-add-dn-line-posting.test.mjs Integrate agent work and add dashboard attention indicators 2026-10-04 21:53:32 +02:00
2026-10-01-add-dn-processing-preview.mjs Integrate agent work and add dashboard attention indicators 2026-10-04 21:53:32 +02:00
2026-10-05-add-mcp-operations.mjs feat: journal MCP operations and fence purchasing writes 2026-10-05 01:38:15 +02:00
2026-10-05-add-mcp-operations.test.mjs feat: journal MCP operations and fence purchasing writes 2026-10-05 01:38:15 +02:00
2026-10-07-office-access.py feat(auth): add Office access and restrict Clock users 2026-10-07 14:22:57 +02:00
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 feat(clock): review missed scan-outs without changing phone flow 2026-09-25 07:27:12 +02:00
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 feat(auth): add Office access and restrict Clock users 2026-10-07 14:22:57 +02:00