No description
Wer Ende August registriert und am 1. September bezahlt hat, tauchte in keiner
Neupartner-Zaehlung auf: Der August-Snapshot wurde um 04:45 eingefroren, da
fehlte noch das Abrechnungskonto; im September lag active_date im falschen
Monat. Betroffen sind 2026 acht Partner, auch im Recruiting ihrer Sponsoren.
Kundenentscheidung 16.09.2026: der Zeitpunkt der Zahlung ist massgeblich.
Neue Spalte users.partner_paid_at, gesetzt bei der ersten Kontozahlung
(Payment::paymentStatusPaidAction) und bei manueller Freischaltung durch den
Admin — nur, solange sie leer ist; Verlaengerung und Wiederherstellung aendern
sie nicht. Bestehende Partner werden per Migration aus der ersten bezahlten
Registrierungsbestellung rueckgefuellt (Zeitstempel der Punktebuchung, ersatzweise
Bestelldatum, ohne Bestellung das Aktivierungsdatum). Bewusst nicht
payment_account minus ein Jahr: das ergaebe bei Verlaengerern den Jahrestag der
Erstzahlung.
User::scopeNewPartnerIn() und isNewPartnerIn() lesen jetzt partner_paid_at —
damit Kachel, Recruiter-Ranking, Top 3 und Neupartner-Liste gleichermassen.
Die Liste und der CSV-Export zeigen "Bezahlt am" neben "Registriert am".
Unveraendert: die Teamstruktur haengt weiter an active_date (auch im
Provisionsbaum). Wer ist neu dazugekommen und wer gehoert zur Linie sind zwei
verschiedene Fragen.
Die eingefrorenen Monate Januar bis August enthalten sieben dieser Partner
nicht; ob sie per --force neu gebaut werden, ist eine Entscheidung — siehe
dev/2026-07-22/neupartner-zahlungsmonat.md.
Mit drin: die handgebaute SQLite-Tabelle in BackofficeDashboardServiceTest
kannte status_reason aus
|
||
|---|---|---|
| .devcontainer | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| dev | ||
| docs | ||
| packages | ||
| public | ||
| resources | ||
| routes | ||
| storage | ||
| tests | ||
| .devcontainer.env | ||
| .env.dhl.example | ||
| .env.example | ||
| .gitignore | ||
| .htaccess | ||
| .mcp.json | ||
| .phpunit.result.cache | ||
| .rnd | ||
| _todo.txt | ||
| artisan | ||
| boost.json | ||
| CLAUDE.md | ||
| clean_script_server.sh | ||
| composer.json | ||
| composer.lock | ||
| cron_script_local.sh | ||
| cron_script_server.sh | ||
| database.db | ||
| docker-compose.yml | ||
| mivita.code-workspace | ||
| package.json | ||
| phpunit.xml | ||
| restore_dc_tags_categories.sql | ||
| server.php | ||
| sync_live_to_local.sh | ||
| webpack.mix.js | ||