Store ledger for advanced/deferred payments. Member registry, cashier, point of sale module, and transaction history.
Find a file
Claude b1fcc3dbe9
Add configurable display timezone; default to server's local timezone
- _server_timezone(): detects IANA timezone from /etc/timezone or
  /etc/localtime symlink at startup; used as the CONFIG default
- CONFIG: new "timezone" key set to server's detected timezone
- AppSettingsUpdate: new optional timezone field
- _display_tz(), _fmt_dt(), _now_display() helpers: convert stored UTC
  datetimes to the configured timezone for display; falls back to server
  local if the setting is empty or the zone name is invalid
- receipt(): transaction timestamp uses _fmt_dt() instead of raw UTC slice
- statement(): row timestamps and "Generated" line use _fmt_dt()/_now_display()
- Admin settings: Timezone text input (IANA name) in General section
- app.js: loadAdminSettings/saveSettings handle timezone field

https://claude.ai/code/session_01JuRTR5Xjx8emQsyerBgGU7
2026-05-30 16:59:54 +00:00
docs deployment.md: add Part 7 explaining internet isolation and NAT protection 2026-05-30 12:15:46 +00:00
static Add configurable display timezone; default to server's local timezone 2026-05-30 16:59:54 +00:00
.gitignore Ignore runtime data files (clubledger.db, staff.json) 2026-05-30 15:44:56 +00:00
LICENSE Initial commit 2026-05-30 12:01:08 +07:00
main.py Add configurable display timezone; default to server's local timezone 2026-05-30 16:59:54 +00:00
README.md Initial commit 2026-05-30 12:01:08 +07:00
requirements.txt Redesign receipts/statement to match spec; add logo upload 2026-05-30 16:55:23 +00:00
run.bat WINDOWS ONLY 2026-05-30 20:30:03 +07:00
run.sh run.sh: remove --quiet from pip so install errors are visible 2026-05-30 11:47:23 +00:00

ClubLedger

Store ledger for advanced/deferred payments. Member registry, cashier, point of sale module, and transaction history.