next_qual_user_level)) { return self::renderQualifiedBadge($source); } // Prüfe ob User den Level erreichen könnte, aber noch nicht qualifiziert ist (gelb) if (!empty($source->next_can_user_level)) { return self::renderCanReachBadge($source); } // Kein nächster Level verfügbar (rot) return self::renderNoLevelBadge(); } /** * Rendert Badge für qualifizierte User (grün) */ private static function renderQualifiedBadge($source): string { $level = $source->next_qual_user_level; $ku = formatNumber($source->sales_volume_points_KP_sum ?? 0, 0); $ku_required = formatNumber($level['qual_kp'] ?? 0, 0); $tp = formatNumber($source->payline_points_qual_kp ?? 0, 0); $tp_required = formatNumber($level['qual_pp'] ?? 0, 0); $levelName = TranslationHelper::transUserLevelName($level['name'] ?? 'Unbekannt'); return ' ' . e($levelName) . '
KU: ' . $ku . '/' . $ku_required . ' | TP: ' . $tp . '/' . $tp_required . '
'; } /** * Rendert Badge für User die den Level erreichen könnten (gelb) */ private static function renderCanReachBadge($source): string { $level = $source->next_can_user_level; $ku = formatNumber($source->sales_volume_points_KP_sum ?? 0, 0); $ku_required = formatNumber($level['qual_kp'] ?? 0, 0); $tp = formatNumber($source->payline_points_qual_kp ?? 0, 0); $tp_required = formatNumber($level['qual_pp'] ?? 0, 0); $levelName = TranslationHelper::transUserLevelName($level['name'] ?? 'Unbekannt'); return ' ' . e($levelName) . '
KU: ' . $ku . '/' . $ku_required . ' | TP: ' . $tp . '/' . $tp_required . '
'; } /** * Rendert Badge wenn kein nächster Level verfügbar ist (rot) */ private static function renderNoLevelBadge(): string { return ' '; } /** * Fallback-Badge bei Fehlern oder fehlenden Daten */ public static function renderErrorBadge(string $message = 'Fehler bei der Berechnung'): string { return ' Fehler '; } /** * Badge für fehlende Daten */ public static function renderNoDataBadge(): string { return ' Keine Daten '; } }