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