From 109ef983f0b40ddfd5b55f2cd204dac932d9a3db Mon Sep 17 00:00:00 2001 From: Jan Novak Date: Thu, 9 Apr 2026 12:37:06 +0200 Subject: [PATCH] docs: Add operation manual and junior March 2026 fee override Adds docs/operation-manual.md describing how to add per-month fee overrides for adults and juniors. Also adds the March 2026 junior fee override (250 CZK) to JUNIOR_MONTHLY_RATE to match the existing adult override. Co-Authored-By: Claude Sonnet 4.6 --- docs/operation-manual.md | 52 ++++++++++++++++++++++++++++++++++++++++ scripts/attendance.py | 3 ++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 docs/operation-manual.md diff --git a/docs/operation-manual.md b/docs/operation-manual.md new file mode 100644 index 0000000..db1a871 --- /dev/null +++ b/docs/operation-manual.md @@ -0,0 +1,52 @@ +# Operation Manual + +## Adding a Monthly Fee Override + +Use this when the club decides to charge a different flat fee for a specific month — for example, a reduced fee during a short or holiday month. + +There are two independent dictionaries in [scripts/attendance.py](../scripts/attendance.py), one for adults and one for juniors. Edit whichever tiers need an override. + +### Adults + +Add an entry to `ADULT_FEE_MONTHLY_RATE` (line ~15): + +```python +ADULT_FEE_MONTHLY_RATE = { + "2026-03": 350 # reduced fee for March 2026 +} +``` + +The key is `YYYY-MM`, the value is the fee in CZK. This replaces `ADULT_FEE_DEFAULT` (750 CZK) for members who attended 2+ practices that month. The single-practice fee (`ADULT_FEE_SINGLE`, 200 CZK) is unaffected. + +### Juniors + +Add an entry to `JUNIOR_MONTHLY_RATE` (line ~20): + +```python +JUNIOR_MONTHLY_RATE = { + "2025-09": 250, # reduced fee for September 2025 + "2026-03": 250 # reduced fee for March 2026 +} +``` + +The key is `YYYY-MM`, the value is the fee in CZK. This replaces `JUNIOR_FEE_DEFAULT` (500 CZK) for members who attended 2+ practices that month. + +### Example: March 2026 + +Both tiers reduced to 350 CZK (adults) and 250 CZK (juniors): + +```python +ADULT_FEE_MONTHLY_RATE = { + "2026-03": 350 +} + +JUNIOR_MONTHLY_RATE = { + "2026-03": 250 +} +``` + +### Notes + +- Overrides apply to all members of the given tier — use the **exceptions sheet** in Google Sheets for per-member overrides instead. +- After changing these values, restart the web dashboard (`make web`) for the change to take effect. +- The override only affects the calculated/expected fee. It does not modify any already-recorded payments in the bank sheet. diff --git a/scripts/attendance.py b/scripts/attendance.py index cdd285f..61f9eab 100644 --- a/scripts/attendance.py +++ b/scripts/attendance.py @@ -18,7 +18,8 @@ ADULT_FEE_MONTHLY_RATE = { JUNIOR_FEE_DEFAULT = 500 # CZK for 2+ practices JUNIOR_MONTHLY_RATE = { - "2025-09": 250 + "2025-09": 250, + "2026-03": 250 # reduced fee for March 2026 } ADULT_MERGED_MONTHS = { #"2025-12": "2026-01", # keys are merged into values