Firstlines: Seite und Dashboard-Kachel zaehlen wieder dieselbe Menge

Beim Formulieren der Kundenrueckmeldung aufgefallen: der vorige Commit hat die
Inkonsistenz an einer Stelle behoben und an einer anderen wieder eingebaut. Die
Kachel zaehlt ueber isActiveConsultant() (Mitgliedsebene + gesetztes
Abrechnungskonto), die Kopfzeile der Firstlines-Seite zaehlte aber ueber
isActiveAccount() (Konto in der Zukunft). Bei abgelaufenen Jahresgebuehren nannten
Kachel und Seite damit unterschiedliche Zahlen - genau das, was der Fix vermeiden
sollte.

firstlines() bekommt den BackofficeDashboardService injiziert und nutzt dieselbe
Regel. Test um beide Randfaelle erweitert (abgelaufenes vs. gar kein
Abrechnungskonto), damit die Doppel-Definition nicht zurueckkommt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin 2026-08-25 10:47:50 +00:00
parent cee4a2e0eb
commit 8dc0361fec
6 changed files with 168 additions and 11 deletions

View file

@ -185,4 +185,13 @@ it('ordnet akkumulierte Abo-Punkte dem Neuabo ueber user_abo_id zu (Replikat-Sho
expect($aboRow)->not->toBeNull()
->and($aboRow['id'])->toBe($newAbo->id)
->and(array_sum($aboRow['monthly']))->toBe(42);
// Aktives Abo: Label ist die Kunden-E-Mail
expect($aboRow['label'])->toBe($userAbo->email);
// Geloeschtes (ersetztes) Abo: "Abo #<id> (<E-Mail>)", damit die Kundin erkennbar bleibt
$userAbo->delete();
$dataDeleted = IncentiveController::buildParticipantDetailData($participant->fresh(['incentive', 'user']));
expect($dataDeleted['abo_sources']->first()['label'])
->toBe('Abo #'.$userAbo->id.' ('.$userAbo->email.')');
});