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

@ -12,6 +12,7 @@ use App\Services\Abo\PaylineForecastService;
use App\Services\Abo\TeamAboOverviewService;
use App\Services\AboHelper;
use App\Services\AboOrderCart;
use App\Services\Backoffice\BackofficeDashboardService;
use App\Services\Backoffice\SalesVolumePoints;
use App\Services\BusinessPlan\ExportBot;
use App\Services\BusinessPlan\TreeCalcBot;
@ -716,7 +717,7 @@ class TeamController extends Controller
* mit Monats-Gesamtpunkten und Kontaktdaten — für alle Berater, verlinkt
* von der Firstlines-Kachel der Monatsstatistik.
*/
public function firstlines(): View
public function firstlines(BackofficeDashboardService $dashboardService): View
{
$user = User::find(\Auth::user()->id);
$month = max(1, min(12, (int) Request::get('month', now()->month)));
@ -752,7 +753,11 @@ class TeamController extends Controller
'rows' => $rows,
// Die Dashboard-Kachel zeigt nur aktive Berater; die Liste zeigt alle
// (inaktive sind fürs Nachfassen gerade interessant) und weist beide Zahlen aus.
'activeCount' => collect($rows)->where('is_active_account', true)->count(),
// Zwingend dieselbe Regel wie die Kachel (isActiveConsultant), NICHT
// isActiveAccount — sonst nennt die Seite eine andere Zahl als die Kachel.
'activeCount' => $firstlines
->filter(fn (User $member) => $dashboardService->isActiveConsultant($member))
->count(),
'selectedMonth' => $month,
'selectedYear' => $year,
'filterMonths' => HTMLHelper::getTransMonths(),