mivita/tests/Feature
Kevin 42ec51cb36 Statistik: Stornos mindern die richtige Punktekategorie
Ein Storno einer Shop-Bestellung wurde als Eigenpunkt gebucht und liess damit
die Shop-Provisionsbasis ungemindert. Betroffen sind 7 Faelle aus April bis
August 2026 (178,82 EUR Differenz in der Provisionsbasis, gegen user_businesses
geprueft).

Ursache: `status_turnover` beschreibt nur, wohin der UMSATZ gehoert. Die Punkte
folgen einer anderen Regel — eine Gutschrift (Status 4) bucht ihre Punkte immer
auf KP/TP, auch wenn ihr Umsatz dem Shop zugeordnet ist. Die Gegenbuchung kann
diese Aufteilung ohne die Ursprungsart nicht spiegeln, deshalb haelt
`storno_origin_status` sie jetzt auf der Stornozeile fest. NULL heisst
"Altzeile ohne Angabe" und faellt auf das bisherige Verhalten zurueck —
abgeschlossene Monate aendern sich dadurch nicht.

Stornoregel (Kundenentscheidung): Ein Storno mindert nur den Monat der
Ursprungsbestellung. Ist der Monat abgeschlossen, passiert nichts mehr, denn
Abrechnung und Gutschriften stehen. Ein Minus in den neuen Monat mitzunehmen
waere nicht nachvollziehbar. Fuer den Ausnahmefall gibt es den Settings-Schalter
`storno-points-current-month`, standardmaessig aus.

Ausserdem: Die persoenliche Monatsstatistik summierte Status 0 (nicht
zugeordnet) und 3 (pending) mit, die gemeinsame Punkteauswertung nicht. Beide
nutzen jetzt dieselbe Statusliste, und ein Storno mindert das Segment seiner
Ursprungsbuchung statt pauschal in "Sonstige" zu laufen.

Die Migration fuer `status_turnover` zieht nur das Schema auf den tatsaechlichen
Stand nach (nullable statt NOT NULL) — auf Produktion faktisch wirkungslos,
aber Neuinstallationen und die Testdatenbank haben damit dieselbe Semantik.

Audit-Befunde A02, A06, A15, R01-R03.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 11:18:40 +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
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 Statistiken: Review-Fixes vor Livegang (Fehldarstellungen + Test-Regression) 2026-08-25 09:41:53 +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
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
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