No description
Find a file
Kevin 92344f7080 Statistik: abgeschlossene Monate werden vollstaendig eingefroren
Am ersten des Folgemonats wird der Monat abgerechnet, die Provision berechnet
und Gutschriften werden ausgestellt. Deswegen fliessen auch Stornos nicht mehr
rueckwirkend ein. Genau dieser Stand muss eingefroren werden — und zwar
einschliesslich Teamstruktur und Detaillisten, nicht nur der Kennzahlen.

Bisher hat `overlayCurrentAboStock()` beim Lesen eines gespeicherten Monats die
gesamte Kundenabo-Topliste live neu gerechnet, also auch abgerechnete
Monatswerte. Und die Detaillisten hinter den Kacheln lasen Monatsbuchungen und
Teamzuordnung grundsaetzlich neu — nach einem Sponsorwechsel oder einer
Loeschung konnte derselbe historische Klick andere Ergebnisse liefern als die
Kachel darueber.

Das Overlay entfaellt; der Snapshot wird unveraendert zurueckgegeben. Die
Detaillisten lesen die eingefrorene Mitgliedermenge aus dem Snapshot
(`user_ids` lag dort bereits, wurde nur nie benutzt) und die eingefrorenen
Abo-Ids aus dem neuen Feld `abo_ids`. Payload-Version 2.

Grenze, die bleibt: Ein Rebuild vergangener Monate friert die Struktur des
AUSFUEHRUNGSTAGS ein, nicht die des damaligen Monatsendes — frueheres
Sponsoring wird nirgends historisiert. Der `--force`-Lauf ist deshalb nur
richtig, wenn man bewusst einen einheitlichen Stand herstellt. Das ist hier der
Fall (Schemawechsel des Payloads), fuer den laufenden Betrieb genuegt der
naechtliche Lauf ohne `--force`.

Loest die August-Entscheidung F7 ("Abo-Bestaende tagesaktuell") ab. Zwei Tests
hielten die alte Regel fest und beschreiben jetzt die neue.

Mit drin, weil dieselben Dateien betroffen sind:
- Negative Monatssalden verschwanden aus dem Drilldown (`HAVING > 0`), obwohl
  ihre Betraege in der Uebersicht steckten. Nur die 1000-Punkte-Liste behaelt
  ihren Schwellenfilter (A03).
- Zusatzpunkte einer stornierten Bestellung werden anteilig verrechnet statt
  voll abgezogen (A06).
- Unformatierte Sortierwerte fuer die Detailliste (A14, siehe Folgecommit).

Audit-Befunde A03, A04, A06, A12.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 11:19:06 +00:00
.devcontainer 13-05-2026 implementation FR 2026-05-13 17:33:52 +02:00
app Statistik: abgeschlossene Monate werden vollstaendig eingefroren 2026-09-10 11:19:06 +00:00
bootstrap Stripe-Integration (S0–S3): Einmalzahlungen über Stripe Checkout + Notfall-Go-Live 2026-07-08 15:56:41 +00:00
config Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet 2026-08-21 10:44:44 +00:00
database Statistik: Stornos mindern die richtige Punktekategorie 2026-09-10 11:18:40 +00:00
dev Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang 2026-08-28 09:04:28 +00:00
docs Abo: Kreditkarte aktualisieren (CRM, Portal, Berater-Link) + Admin-Abo-Löschung 2026-07-08 15:56:19 +00:00
packages 27-05-2026 DHL Modul v2.1 / Optimierung tracking 2026-05-27 18:51:23 +02:00
public Abo: Einmalprodukte bereits bei der Abo-Anlage + es/fr-Sprachsync 2026-07-21 14:36:40 +00:00
resources Statistik: abgeschlossene Monate werden vollstaendig eingefroren 2026-09-10 11:19:06 +00:00
routes Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang 2026-08-28 09:04:28 +00:00
storage 20-02-2026 2026-02-20 17:55:06 +01:00
tests Statistik: abgeschlossene Monate werden vollstaendig eingefroren 2026-09-10 11:19:06 +00:00
.devcontainer.env update 20.10.2025 2025-10-20 17:42:08 +02:00
.env.dhl.example Cocker Setup 2025-08-29 14:48:03 +02:00
.env.example Stripe-Integration (S0–S3): Einmalzahlungen über Stripe Checkout + Notfall-Go-Live 2026-07-08 15:56:41 +00:00
.gitignore 23-01-2026 2026-01-23 17:35:23 +01:00
.htaccess First Commit 2018-10-29 09:39:31 +01:00
.mcp.json 20-02-2026 2026-02-20 17:55:06 +01:00
.phpunit.result.cache 20-02-2026 2026-02-20 17:55:06 +01:00
.rnd Customers Add+Edit, API WP 2020-06-12 14:46:51 +02:00
_todo.txt Updates to 03-2025 2025-04-01 10:36:47 +02:00
artisan First Commit 2018-10-29 09:39:31 +01:00
boost.json 20-02-2026 2026-02-20 17:55:06 +01:00
CLAUDE.md Doku: CLAUDE.md erweitert & Salescenter-/Arbeitsnotizen 2026-06-25 13:37:53 +00:00
clean_script_server.sh commit 08-2025 2025-08-12 18:01:59 +02:00
composer.json Stripe-Integration (S0–S3): Einmalzahlungen über Stripe Checkout + Notfall-Go-Live 2026-07-08 15:56:41 +00:00
composer.lock Stripe-Integration (S0–S3): Einmalzahlungen über Stripe Checkout + Notfall-Go-Live 2026-07-08 15:56:41 +00:00
cron_script_local.sh Updates to 03-2025 2025-04-01 10:36:47 +02:00
cron_script_server.sh Updates to 03-2025 2025-04-01 10:36:47 +02:00
database.db 20-02-2026 2026-02-20 17:55:06 +01:00
docker-compose.yml 10.April 2026 2026-04-10 17:15:27 +02:00
mivita.code-workspace update 20.10.2025 2025-10-20 17:42:08 +02:00
package.json First Commit 2018-10-29 09:39:31 +01:00
phpunit.xml Statistiken/Abo: Kundenfeedback 2026-07-24 komplett umgesetzt + Steuern: DATEV-Fixes 08+09/2025 (Sammel-Commit Branch-WIP) 2026-07-24 13:56:02 +00:00
restore_dc_tags_categories.sql 20-02-2026 2026-02-20 17:55:06 +01:00
server.php First Commit 2018-10-29 09:39:31 +01:00
sync_live_to_local.sh 23-01-2026 2026-01-23 17:35:23 +01:00
webpack.mix.js First Commit 2018-10-29 09:39:31 +01:00