mivita/tests/Feature
Kevin 8d7a98c685 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
..
BusinessPlan Incentive: Ticket-Fixes 2026-08-12 + Team-Struktur nach active_date sortiert 2026-08-12 10:28:06 +00:00
BusinessStoreOptimized 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
Incentive Firstlines: Seite und Dashboard-Kachel zaehlen wieder dieselbe Menge 2026-08-25 10:47:50 +00:00
Payment 20-02-2026 2026-02-20 17:55:06 +01:00
PaymentDashboard Stripe-Integration (S7.4): Payment-Dashboard für Stripe 2026-07-10 16:57:50 +00:00
SalesVolume Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet 2026-08-21 10:44:44 +00:00
Sys 10.April 2026 2026-04-10 17:15:27 +02:00
AboAdminDeleteTest.php 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
AboCardUpdateLinkTest.php Abo: Kreditkarte aktualisieren (CRM, Portal, Berater-Link) + Admin-Abo-Löschung 2026-07-08 15:56:19 +00:00
AboCreateOneTimeCartTest.php Abo: Fix Checkout-Rücksprung bei Einmalprodukten in der Bestellstrecke 2026-07-22 13:02:43 +00:00
AboCreateOneTimeItemsTest.php Abo: Einmalprodukte bereits bei der Abo-Anlage + es/fr-Sprachsync 2026-07-21 14:36:40 +00:00
AboCrmPaymentMethodTest.php Abo: Kreditkarte aktualisieren (CRM, Portal, Berater-Link) + Admin-Abo-Löschung 2026-07-08 15:56:19 +00:00
AboExecutionReminderTest.php Abo Einmalprodukte: Phasen 5-7, konfigurierbare Sperrfristen, Lokalisierung & Dashboard 2026-06-23 13:38:11 +00:00
AboExternalCompletionTest.php Abo: extern-erledigt für gelöschte Abos + Lieferhistorie-Umzug (Ticket Kunz Mai-Punkte) 2026-08-21 12:06:29 +00:00
AboHelperSetAboActiveClearsHoldTest.php 10.April 2026 2026-04-10 17:15:27 +02:00
AboLockDaysSettingTest.php Abo Einmalprodukte: Phasen 5-7, konfigurierbare Sperrfristen, Lokalisierung & Dashboard 2026-06-23 13:38:11 +00:00
AboMakeOrderOneTimeTest.php Abo Einmalprodukte: Phase 4 - Ausfuehrung, Purge & User-Retry 2026-06-08 15:32:27 +00:00
AboMoveOrdersTest.php Abo: extern-erledigt für gelöschte Abos + Lieferhistorie-Umzug (Ticket Kunz Mai-Punkte) 2026-08-21 12:06:29 +00:00
AboOneAboRuleTest.php 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
AboOnetimeDashboardAndMailTest.php Abo Einmalprodukte: Phasen 5-7, konfigurierbare Sperrfristen, Lokalisierung & Dashboard 2026-06-23 13:38:11 +00:00
AboOneTimeInvoiceGroupingTest.php Abo Einmalprodukte: Phasen 5-7, konfigurierbare Sperrfristen, Lokalisierung & Dashboard 2026-06-23 13:38:11 +00:00
AboOneTimeServiceTest.php Abo Einmalprodukte: Review-Gate (VIP), Verbindlichkeit & Summen-Layout 2026-06-08 14:59:22 +00:00
AboOneTimeViewTest.php 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
AboOneTimeWindowTest.php Abo: Kreditkarte aktualisieren (CRM, Portal, Berater-Link) + Admin-Abo-Löschung 2026-07-08 15:56:19 +00:00
AboOtMonthFilterTest.php Abo-Uebersichten: Team-Ansicht konsolidiert, Monatsfilter, Wachstum & Dashboard-KPIs 2026-06-23 14:07:29 +00:00
AboPauseTest.php 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
AboPaymentFailedMailTest.php Abo-Recovery: fehlgeschlagene Folgezahlung im Checkout nachholen 2026-07-02 10:38:05 +00:00
AboPaymentMethodServiceTest.php Abo: Kreditkarte aktualisieren (CRM, Portal, Berater-Link) + Admin-Abo-Löschung 2026-07-08 15:56:19 +00:00
AboPendingInitialPaymentTest.php Abo: Doppelbestellung verhindern, Payment-Link loeschen & Pending-Status 2026-06-25 13:37:30 +00:00
AboPortalCreateOneTimeTest.php Abo: Einmalprodukte bereits bei der Abo-Anlage + es/fr-Sprachsync 2026-07-21 14:36:40 +00:00
AboPortalPaymentMethodTest.php Abo: Kreditkarte aktualisieren (CRM, Portal, Berater-Link) + Admin-Abo-Löschung 2026-07-08 15:56:19 +00:00
AboRecoveryAdvanceTest.php Abo-Recovery: fehlgeschlagene Folgezahlung im Checkout nachholen 2026-07-02 10:38:05 +00:00
AboRepositoryDateChangeTest.php Steuerberater Modul tax 2026-05-08 15:34:57 +02:00
AboUpdateAuthorizationTest.php 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
AboUpdateCreditCardRequestTest.php Abo: Kreditkarte aktualisieren (CRM, Portal, Berater-Link) + Admin-Abo-Löschung 2026-07-08 15:56:19 +00:00
AboUserRetryTest.php Abo-Recovery: fehlgeschlagene Folgezahlung im Checkout nachholen 2026-07-02 10:38:05 +00:00
AdminAboDatatableSortTest.php 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
AdminAboEditDuringMinDurationTest.php Admin-Abo: Produkte trotz Mindestlaufzeit abziehen/entfernen 2026-07-07 08:17:27 +00:00
AdminAboRetryPaymentTest.php Steuerberater Modul tax 2026-05-08 15:34:57 +02:00
AnnualFeeDueServiceTest.php Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet 2026-08-21 10:44:44 +00:00
ApiOrderFreeShippingTest.php 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
BackfillFrenchDatabaseTranslationsTest.php 13-05-2026 implementation FR 2026-05-13 17:33:52 +02:00
BackofficeSnapshotFreezeTest.php Statistik: abgeschlossene Monate werden vollstaendig eingefroren 2026-09-10 11:19:06 +00:00
BackofficeStatisticsAccessTest.php Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet 2026-08-21 10:44:44 +00:00
BackofficeStatisticsDrilldownTest.php Statistiken: Review-Fixes vor Livegang (Fehldarstellungen + Test-Regression) 2026-08-25 09:41:53 +00:00
BackofficeStatisticsListsTest.php Statistik: abgeschlossene Monate werden vollstaendig eingefroren 2026-09-10 11:19:06 +00:00
CartMaxWeightTest.php Abo Einmalprodukte und Bestätigung abschließen 2026-06-05 15:28:08 +00:00
CheckoutOrderSourceValidationTest.php Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet 2026-08-21 10:44:44 +00:00
CheckoutVatIdRevalidationTest.php 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
CreateAboReplacementOrderTest.php Abo-Wartungs-Commands & Ausfuehrungs-Reminder aktivieren 2026-06-25 13:37:39 +00:00
CustomerAboAddonSplitTest.php Statistik: abgeschlossene Monate werden vollstaendig eingefroren 2026-09-10 11:19:06 +00:00
DhlApiCurlLoggingTest.php update 20.10.2025 2025-10-20 17:42:08 +02:00
ExampleTest.php First Commit 2018-10-29 09:39:31 +01:00
FrenchLocalizationTest.php 13-05-2026 implementation FR 2026-05-13 17:33:52 +02:00
GdprDeletionTest.php 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
HomeMonthlyStatsTest.php Statistiken: Review-Fixes vor Livegang (Fehldarstellungen + Test-Regression) 2026-08-25 09:41:53 +00:00
LiveCommissionServiceTest.php Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet 2026-08-21 10:44:44 +00:00
LocalizationMiddlewareTest.php 10.April 2026 2026-04-10 17:15:27 +02:00
LocalizationSyncTest.php Abo Einmalprodukte: Phasen 5-7, konfigurierbare Sperrfristen, Lokalisierung & Dashboard 2026-06-23 13:38:11 +00:00
ManualPaymentTest.php Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang 2026-08-28 09:04:28 +00:00
MembershipQtyProtectionTest.php 10.April 2026 2026-04-10 17:15:27 +02:00
MembershipReminderLinkTest.php Mitgliedschaft: Erinnerungen und eigenes Verlaengerungs-Produkt 2026-08-26 08:24:32 +00:00
MembershipRenewalProductTest.php Mitgliedschaft: Erinnerungen und eigenes Verlaengerungs-Produkt 2026-08-26 08:24:32 +00:00
MembershipViewTextsTest.php Mitgliedschaft: Erinnerungen und eigenes Verlaengerungs-Produkt 2026-08-26 08:24:32 +00:00
OrderWithdrawalTest.php Widerruf: Gesetzliche Online-Widerrufsfunktion (Formular, Bestätigungsmail, Admin-Verwaltung) 2026-07-08 15:56:02 +00:00
PaylineForecastServiceTest.php Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet 2026-08-21 10:44:44 +00:00
PaymentMethodsCommunicationTest.php Stripe-Integration (S4, S5, S7.6): Abos, Zahlungsart ändern, Zahlarten-Kommunikation 2026-07-09 14:45:17 +00:00
PaymentProviderManagerTest.php Stripe-Integration (S4, S5, S7.6): Abos, Zahlungsart ändern, Zahlarten-Kommunikation 2026-07-09 14:45:17 +00:00
PayoneHashKeyCommandTest.php Payment Phase R: PAYONE-Integration entflechten (R1–R7 + Review) 2026-06-10 13:42:45 +00:00
PayonePaymentServiceTest.php Payment Phase R: PAYONE-Integration entflechten (R1–R7 + Review) 2026-06-10 13:42:45 +00:00
PayoneTransactionRecorderTest.php Payment Phase R: PAYONE-Integration entflechten (R1–R7 + Review) 2026-06-10 13:42:45 +00:00
PayoneTransportExceptionHandlingTest.php Payment Phase R: PAYONE-Integration entflechten (R1–R7 + Review) 2026-06-10 13:42:45 +00:00
PayoneWebhookHandlerTest.php Payment Phase R: PAYONE-Integration entflechten (R1–R7 + Review) 2026-06-10 13:42:45 +00:00
PointsAboHighlightTest.php Statistik: Stornos mindern die richtige Punktekategorie 2026-09-10 11:18:40 +00:00
PortalOrderCreateTest.php Abo: Kreditkarte aktualisieren (CRM, Portal, Berater-Link) + Admin-Abo-Löschung 2026-07-08 15:56:19 +00:00
PreviewInvoiceCommandTest.php Abo Einmalprodukte: Phasen 5-7, konfigurierbare Sperrfristen, Lokalisierung & Dashboard 2026-06-23 13:38:11 +00:00
ProfileImageTest.php Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet 2026-08-21 10:44:44 +00:00
RegenerateCancellationInvoicePdfCommandTest.php Stornorechnung: Fix überdeckte Artikelzeile + Regenerate-Command 2026-07-14 14:19:28 +00:00
RepairAboOrderUserAssignmentTest.php Abo-Wartungs-Commands & Ausfuehrungs-Reminder aktivieren 2026-06-25 13:37:39 +00:00
RepairMissingAboFromOrdersTest.php 10.April 2026 2026-04-10 17:15:27 +02:00
RetryFailedPaypalAbosTest.php 10.April 2026 2026-04-10 17:15:27 +02:00
StatisticsConsistencyTest.php Statistik: abgeschlossene Monate werden vollstaendig eingefroren 2026-09-10 11:19:06 +00:00
StornoClosedMonthTest.php Statistik: Stornos mindern die richtige Punktekategorie 2026-09-10 11:18:40 +00:00
StornoPointsCategoryTest.php Statistik: Stornos mindern die richtige Punktekategorie 2026-09-10 11:18:40 +00:00
StripeAboTest.php Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang 2026-08-28 09:04:28 +00:00
StripeCheckoutTest.php Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang 2026-08-28 09:04:28 +00:00
StripeFoundationTest.php Stripe-Integration (S0–S3): Einmalzahlungen über Stripe Checkout + Notfall-Go-Live 2026-07-08 15:56:41 +00:00
StripeInvoiceReferenceTest.php Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang 2026-08-28 09:04:28 +00:00
StripePaymentMethodChangeTest.php Stripe-Integration (S4, S5, S7.6): Abos, Zahlungsart ändern, Zahlarten-Kommunikation 2026-07-09 14:45:17 +00:00
StripeSyncPaymentStatusTest.php Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang 2026-08-28 09:04:28 +00:00
StripeWebhookHandlerTest.php Stripe-Integration (S0–S3): Einmalzahlungen über Stripe Checkout + Notfall-Go-Live 2026-07-08 15:56:41 +00:00
TeamAboOverviewTest.php Statistiken: Review-Fixes vor Livegang (Fehldarstellungen + Test-Regression) 2026-08-25 09:41:53 +00:00
TeamCustomerAbosRedirectTest.php Abo-Uebersichten: Team-Ansicht konsolidiert, Monatsfilter, Wachstum & Dashboard-KPIs 2026-06-23 14:07:29 +00:00
TeamFirstlinesPageTest.php Firstlines: Seite und Dashboard-Kachel zaehlen wieder dieselbe Menge 2026-08-25 10:47:50 +00:00
TeamStructureAboBadgesTest.php 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
TopResultsServiceTest.php Statistiken: Review-Fixes vor Livegang (Fehldarstellungen + Test-Regression) 2026-08-25 09:41:53 +00:00
WizardPaymentCartTest.php 14-04-2026 2026-04-14 18:07:45 +02:00
YardCartWeightTest.php Warenkorb: nicht-numerische Mengen brechen die Gewichtsberechnung nicht mehr 2026-09-09 07:16:30 +00:00
YardShippingTaxTest.php 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