Doku: Protokoll Umsetzungen September, Nachtraege 06.10.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kevin 2026-10-06 12:36:06 +00:00
parent 3d0864713b
commit b8a18b09cf

View file

@ -0,0 +1,113 @@
# Protokoll Umsetzungen September 2026
**Stand:** 06.10.2026 · **Zeitraum:** 01.09.–06.10.2026 · **Branch:** `payment/phase-r-payone-refactoring`
**Quellen:** Git-Historie (60 Commits), `dev/_tickets/`, `dev/2026-07-22/` (Statistik-Audit, Deploy-Notizen), `dev/2026-08-26-logs/ANALYSE.md`, `dev/2026-09-10-business-plan/`
**Zum Datum:** Angegeben ist das Umsetzungsdatum laut Doku bzw. Migration. Viele Pakete wurden gesammelt
erst am 23.09. committet, das Commit-Datum ist dann später als die eigentliche Arbeit.
**Zu den Stunden:** Es handelt sich um Schätzungen. Enthalten sind Analyse, Umsetzung, Tests, Abstimmung und
Deploy-Vorbereitung. Grundlage sind Umfang der Änderungen, Anzahl der Tests und die Aufwandsangaben in den
Entwicklungsplänen.
---
## Übersicht
| Bereich | Stunden |
| --- | ---: |
| Statistik, Punkte und Prognose | 81,0 |
| Abos | 27,0 |
| Recruiting Challenge (E1) | 36,5 |
| Berater und Mitgliedschaft (Übertragen, B2, Standard-Shop) | 29,0 |
| Büro und Admin (Kunden löschen, Newsletter, Absatzmengen, DATEV, Checkout) | 49,5 |
| Fehlerbehebung, Log-Analyse, Sicherheit | 18,0 |
| Planung, Abstimmung, Kundeninfo, Release | 21,0 |
| **Gesamt** | **262,0 h (≈ 33 PT à 8 h)** |
---
## Chronologisches Protokoll
| Datum | Umsetzung | Commit(s) | Std. |
| --- | --- | --- | ---: |
| 02.09. | **Absatzmengen nach Versand oder Rechnung:** neues Versanddatum an Bestellungen (live, DHL oder geschätzt), Nachtrag für Altbestellungen, Auswertung je Produkt wahlweise nach Warenausgang oder Rechnungsdatum, Sets in Einzelartikel aufgelöst, Admin-Umschalter und Export | `85d0cc1` | 10,0 |
| 02.–08.09. | **DATEV:** stornierte Rechnungen bleiben im Rechnungsmonat, Storno im Monat des Stornobelegs; Prüfliste (CSV) für den Steuerberater; Korrespondenz und offene Differenzen mit dem Steuerberater | `3058979` | 9,0 |
| 07.09. | **Kundenfeedback Statistik K1–K9:** Kundenabo-Punkte in 3 Spalten, „direkt“-Spalten entfernt, Beschriftung Payline-Prognose, Summe Payline-Abos, Abo-Bestellungen türkis markiert, Telefon im Neupartner-Drilldown, Summenzeile „Recruiter des Monats“, sortierbare Kundenabo-Liste, Liefertag-Prognose; Entwicklungsplan K1–K15 und Antwort an die Kundin | `94e2b13` (Teil), `728dde4` | 14,0 |
| 08.09. | **Zoom-Meeting und Entwicklungsplan September:** Protokoll ausgewertet, Pakete A1–E1 mit Aufwand, Risiken und Rückfragen; laufend gepflegt bis 25.09. | Doku | 8,0 |
| 09.09. | **Warenkorb:** nicht-numerische Mengen (z. B. „2,5“) brachen die Gewichts- und Versandberechnung | `384b2dc` | 1,5 |
| 09.–10.09. | **Statistik-Audit und Korrekturen:** Audit mit Prüfprotokoll, Nachprüfung und Bewertung (A01–A19); Stornos mindern die richtige Punktekategorie; abgeschlossene Monate vollständig eingefroren; übrige Korrekturen (Abo-Regeln, Prognose, Sortierung); **Deploy 10.09.** | `42ec51c`, `8d7a98c`, `94e2b13`, `9a3940f`, `2f21bd4` | 24,0 |
| 10.09. | **Konzept Business-Ledger:** Entwicklungsplan und Analyse als langfristige Lösung für Punkte und Provision (noch nicht umgesetzt) | `cb4eaff` (Doku) | 6,0 |
| 11.09. | **Kundenabo-Vorschau:** bereits abgerechnete Punkte fehlten in der Basis; Vorschau taggenau, Liste zeigt die tatsächlich gebuchten Punkte | `4062c46`, `8f4e105` | 4,0 |
| 11.09. | **Newsletter-Listen (Phase 1+2):** Berater und Kunden nach Filtern zusammenstellen, Listen speichern und laden, Export XLSX/CSV, Export-Protokoll, 29 Tests | `c858bd6` | 16,0 |
| 14.09. | **Ticket #1 Berater übertragen:** neuer Menüpunkt, Vorschau (Firstline, Downline, Kunden, Abos, Portal-Logins), Übertragung in einer Transaktion, Schutz gegen Kreise im Baum, Protokollierung | `c568248` | 8,0 |
| 14.09. | **Ticket #2 Kunden löschen:** Modal mit allen Dubletten (Kundennummer oder E-Mail), komplett löschen ohne Bestellung, sonst DSGVO-Löschung über alle Einträge, Sperre bei aktivem Abo | `90c2188` | 7,0 |
| 14.09. | **C1 Team-Statistik = Team-Struktur:** Statistik rechnet mit Provisionsbaum und -punkten, Umschalter auf gesamte Downline; **C2 Laufstand-Race:** sperrendes Lesen, Deadlock-Wiederholung in den Zahlungs-Webhooks, nächtliches Sicherheitsnetz 02:45; zwei Hotfixes nach Livegang; **Deploy 14.09.** | `d57687b`, `de62a42`, `203999a` | 18,0 |
| 16.09. | **A4 Abo pausieren/kündigen:** eigener Bereich mit Stand „X von 6 Lieferungen“, Hinweis auf die Folgen einer Kündigung, Angebot zur Pause | `c0535be` | 4,0 |
| 16.09. | **A3 Abo-Status und Grund:** aktiv/pausiert bis/Zahlung fehlgeschlagen (mit Grund)/gekündigt von, für Berater, Kunde und Büro; Admin-Filter; Nachtrag für Bestandsabos | `ec3ecad` | 8,0 |
| 16.09. | **A1+A2 Liefertag 1–31:** freie Wahl mit Monatsende-Regel, Änderung nur nach vorn, Sperre erst am Ausführungstag | `66c6ae0` | 12,0 |
| 16.09. | **Neupartner zählen im Monat der Zahlung** statt der Registrierung | `d5ad1ba` | 6,0 |
| 18.09. | **Nachbesserungen aus dem Audit vom 18.09.:** Zahlungsdatum nur bei Zahlung, Neupartner-IDs im Snapshot, Pausenende folgt dem Liefertermin | `4899e3a` | 5,0 |
| 18.09. | **Kommapunkte (z. B. 7,5):** wurden bei Einmalprodukten, Homepartys und Shop-API abgeschnitten; Migration auf DECIMAL, Auswertung und Reparatur-Command für betroffene Monate | `a038775` | 7,0 |
| 18.09. | **E1 Recruiting Challenge, Grundfunktion:** Geldprämie je Neupartner, Auszahlungs-Export, mehrere Incentives parallel; Inhaltsvorschlag und Abstimmungsfragen | `b28f51b`, `0894733` | 12,0 |
| 22.09. | **E1 Ausbau:** finale Texte als Seeder, „Nur für VIP sichtbar“, Teaser und Rangliste zu einer Seite zusammengefasst, Bilder je Incentive, Dashboard-Karte, VIP-Badge; Deploy-Notiz | `b091dd9` … `fb4313f`, `9c6f5ab` | 10,5 |
| bis 23.09. | **Log-Analyse vom 26.08., Fehlerbehebung:** Abo-Anlage im Portal (Fehler 500), Log-Kanal und Log-Mails über die Queue, E-Mails mit Umlauten abweisen, DHL-Auslandslabels (V53WPAK, Feldlängen, Tracking-Wiederholung), Löschpräfix in der User-Bereinigung | `19b9731`, `5bf7785`, `1471e29`, `b374ef7`, `ded133c` | 13,5 |
| bis 23.09. | **Sicherheit Profilfoto:** Upload wird nach Inhalt geprüft (vorher war eine .php-Datei möglich), Löschen nur per POST (CSRF) | `b66a1de` | 2,0 |
| 23.09. | **B2 Berater fällt aus:** Pausieren nach 2 Tagen, Rückgabe bei Zahlung, harter Cut am 28. Tag, Sponsor-Mails; Kundenübersicht zum Ablauf; 25.09.: Berater ohne Sponsor gehen ans Firmenkonto, Dry-Run ausgewertet | `bb57522`, `445e745`, `ca11af8` | 18,0 |
| 23.09. | **A07 Payline:** Home-Kacheln und Prognose zählen die Mitglieder des Provisionsbaums | `03ad249` | 2,0 |
| 23.09. | **Warnung für überfällige Abos:** tägliche Mail um 05:30, ohne automatische Nachbuchung | `d6d8b3d` | 3,0 |
| 23.09. | **E1:** Gleichstand nach „zuerst erreicht“, Neupartner zählen im Monat der Zahlung | `d5b3c71` | 3,0 |
| 23.09. | **Sprachdateien:** fehlende ES/FR-Texte für „Zahlungseingang erfassen“ | `af22b93` | 1,0 |
| 23.–25.09. | **Release:** Formatierung, Aufteilung in Commits, Doku versioniert, **Deploy 23.09. und 25.09.** | `e9fa749`, `cb4eaff`, `10f60ad` | 5,0 |
| 24.09. | **Kundenrückmeldung:** Punkte-Legende entfernt, Level-Prognose „Stand Monatsende“ | `8e05376` | 1,0 |
| 24.09. | **E1:** Schalter „Abos berücksichtigen“, Recruiting Challenge ohne Abos | `792d553` | 3,0 |
| 25.09. | **E1:** Start 09.10., Texte EN/ES/FR; Storno nimmt Neupartner aus der Wertung; Rang und Auszahlung nur mit bestätigter Teilnahme; Unbestätigte nur für VIP sichtbar; Firmenkonto ohne Rang und Prämie | `d99c143`, `0e409f6`, `106609d`, `690a775` | 8,0 |
| 25.09. | **Kundeninfo „Neuerungen im September“** | `4c0d55e` | 2,0 |
| 28.09. | **Standard-Shop für jeden Berater:** Kundenbestellung bei Beratern ohne Shop führte zu einem Fehler; Shops werden jetzt automatisch angelegt, Nachtrag per `user:ensure-shops` | `20b611c` | 3,0 |
| 06.10. | **Standard-Shop mivita.shop:** Herkunft der Kontaktdaten im Willkommen-Element geklärt (Shop-Einstellungen des Firmenkontos), keine Code-Änderung | – | 0,5 |
| 06.10. | **Checkout „Wie bist du auf uns aufmerksam geworden?“:** kein Pflichtfeld mehr, farbig hervorgehoben mit Hinweis „freiwillig“; Tests angepasst | `b42052b` | 1,0 |
| 06.10. | **Kunden löschen, Nachbesserung:** DSGVO-gelöschte Kunden blieben mit Namen in den Listen stehen (Eindruck „es wird nichts gelöscht“, Kunde 61009 achtmal gelöscht), bei einem Eintrag wurde die E-Mail nachträglich zurückgeschrieben. Jetzt: Markierung mit Lösch-Datum, in Admin- und Berater-Kundenliste ausgeblendet (Admin-Filter), Bearbeiten gesperrt, Schutz gegen Zurückschreiben von Kontaktdaten, klare Texte im Modal und in der Meldung (DE/EN/ES/FR), Reparatur-Command `gdpr:repair-customers`; dazu serverseitige Superadmin-Prüfung der DSGVO-Löschung und Eigentümer-Prüfung beim Nachtragen einer Kunden-E-Mail durch Berater; 11 Tests | `b42052b` | 6,0 |
| | **Summe** | | **262,0** |
---
## Deploys im September
| Datum | Inhalt |
| --- | --- |
| 10.09. | Statistik-Paket aus dem Audit vom 09.09. |
| 14.09. | C1 Team-Statistik = Team-Struktur, C2 Laufstand-Fix |
| 23.09. | Abo-Paket A1–A4, E1 Recruiting Challenge (nur VIP) |
| 25.09. | B2, A07, Warnung überfällige Abos, E1-Nachträge, Rückmeldungen vom 24.09.; alles bis `792d553` |
| 06.10. | Checkout-Herkunft freiwillig, Kunden löschen Nachbesserung (`b42052b`) |
**Umgesetzt, Deploy noch offen:** B2 Firmenkonto (`445e745`), E1 Storno/Bestätigung/Firmenkonto (`0e409f6`,
`106609d`), Standard-Shop (`20b611c`, danach `php artisan user:ensure-shops`).
## Noch offen
- Live nach Deploy 06.10.: `php artisan migrate` und `php artisan gdpr:repair-customers --execute` (zieht Eintrag 45013 nach), falls noch nicht erfolgt
- Erster echter Lauf von `user:cleanup` (B2), Dry-Run vom 25.09. liegt vor
- Start der Recruiting Challenge am 09.10. (Seeder einspielen, Freigabe nach Verkündung im Call)
- A5 Kundenabo → Partnerabo, B1 Jahresgebühr automatisch abbuchen, D1 Reiter „Events“, D2 Top 3 firmenweit (wartet auf den Anwalt)
- Newsletter Phase 3 (Sperrliste, Abmelde-Import) und Phase 4 (rapidmail)
- C2 Stufe 3, Business-Ledger (nur Konzept)
## Nicht enthalten (August)
- `c3dc7eb` Mitgliedschaft: Erinnerungen und eigenes Verlängerungs-Produkt (26.08.)
- `2e71173` Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang (28.08.)
- Die Log-Analyse selbst (26.08.); nur die Fehlerbehebung daraus ist oben erfasst
Ergebnis: rund 262,0 Stunden (etwa 33 Personentage)
Bereich Std.
Statistik, Punkte, Prognose (K1–K9, Audit 09.09., C1/C2, Neupartner nach Zahlungsmonat, Kommapunkte, A07) 81,0
Recruiting Challenge E1 36,5
Büro/Admin (Kunden löschen inkl. Nachbesserung 06.10., Newsletter-Listen, Absatzmengen, DATEV, Checkout-Herkunft) 49,5
Berater (Berater übertragen, B2 Berater fällt aus, Standard-Shop) 29,0
Abos A1–A4 und Warnung bei überfälligen Abos 27,0
Planung, Abstimmung, Kundeninfo, Release/Deploys 21,0
Fehlerbehebung aus der Log-Analyse, Sicherheit Profilfoto, Kleinigkeiten 18,0