No description
Find a file
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
.devcontainer 13-05-2026 implementation FR 2026-05-13 17:33:52 +02:00
_static commit 08-2025 2025-08-12 18:01:59 +02:00
app Statistik: Stornos mindern die richtige Punktekategorie 2026-09-10 11:18:40 +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: Stornos mindern die richtige Punktekategorie 2026-09-10 11:18:40 +00:00
routes Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang 2026-08-28 09:04:28 +00:00
storage 10.April 2026 2026-04-10 17:15:27 +02:00
tests Statistik: Stornos mindern die richtige Punktekategorie 2026-09-10 11:18:40 +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
.phpstorm.meta.php Cocker Setup 2025-08-29 14:48:03 +02: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
_ide_helper Cocker Setup 2025-08-29 14:48:03 +02:00
_ide_helper.php 23-01-2026 2026-01-23 17:35:23 +01:00
_ide_helper_models.php 20-02-2026 2026-02-20 17:55:06 +01: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