@extends('layouts.teamlead') @section('title', 'Панель тімліда') @section('page_title', 'Панель тімліда') @push('head') {{-- Окремий CSS для дашборду тімліда --}} @endpush @section('content') @php $cabinetsCount = $cabinets->count(); // середній рейтинг по балансах $avgBalanceScore = null; if (!empty($cabinetRatings)) { $vals = collect($cabinetRatings) ->pluck('score') ->filter(fn($v) => $v !== null); if ($vals->count()) { $avgBalanceScore = round($vals->avg(), 1); } } // середній рейтинг по статистиці $avgStatsScore = null; if (!empty($cabinetStatsRatings)) { $vals2 = collect($cabinetStatsRatings) ->filter() ->pluck('score') ->filter(fn($v) => $v !== null); if ($vals2->count()) { $avgStatsScore = round($vals2->avg(), 1); } } $selectedMonth = $selectedMonth ?? now()->format('Y-m'); // опціонально: попередній місяць (якщо колись додаси в контролер) $avgBalancePrev = $avgBalancePrev ?? null; $avgStatsPrev = $avgStatsPrev ?? null; $avgBalanceDeltaPct = null; if ($avgBalanceScore !== null && $avgBalancePrev) { $avgBalanceDeltaPct = round((($avgBalanceScore - $avgBalancePrev) / $avgBalancePrev) * 100, 1); } $avgStatsDeltaPct = null; if ($avgStatsScore !== null && $avgStatsPrev) { $avgStatsDeltaPct = round((($avgStatsScore - $avgStatsPrev) / $avgStatsPrev) * 100, 1); } // коротке імʼя без "T1" і т.п. if ($user && $user->name) { $parts = explode(' ', $user->name); $shortName = $parts[0] ?? $user->name; } else { $shortName = 'Тімлід'; } @endphp {{-- Заголовок + красивий фільтр по місяцю --}}
Тут ти бачиш усі свої кабінети, операторів по змінах та їх рейтинг від 0 до 100, а також окремо загальний рейтинг кабінетів по балансах та по статистиці (New / Young / Old / Spend).
| Назва | Денна | Вечірня | Нічна | Рейтинг кабінету | Дії |
|---|---|---|---|---|---|
| {{ $cab->name }} | {{-- Денна --}}
@if($cab->day_operator)
{{ $cab->day_operator }}
@if($cab->day_tg_username)
{{ $cab->day_tg_username }}
@endif
@if($dayRating !== null && $dayTarget)
Day • {{ $dayRating }} / 100
Середнє: {{ number_format($dayAvg, 2) }} $ / норма: {{ number_format($dayTarget, 2) }} $
@else
Немає даних по рейтингу.
@endif
@else
—
@endif
|
{{-- Вечірня --}}
@if($cab->evening_operator)
{{ $cab->evening_operator }}
@if($cab->evening_tg_username)
{{ $cab->evening_tg_username }}
@endif
@if($evenRating !== null && $evenTarget)
Evening • {{ $evenRating }} / 100
Середнє: {{ number_format($evenAvg, 2) }} $ / норма: {{ number_format($evenTarget, 2) }} $
@else
Немає даних по рейтингу.
@endif
@else
—
@endif
|
{{-- Нічна --}}
@if($cab->night_operator)
{{ $cab->night_operator }}
@if($cab->night_tg_username)
{{ $cab->night_tg_username }}
@endif
@if($nightRating !== null && $nightTarget)
Night • {{ $nightRating }} / 100
Середнє: {{ number_format($nightAvg, 2) }} $ / норма: {{ number_format($nightTarget, 2) }} $
@else
Немає даних по рейтингу.
@endif
@else
—
@endif
|
{{-- Рейтинг кабінету (баланси + статистика) --}}
{{-- Баланси --}}
Баланси: {{ $balanceRating !== null ? $balanceRating.' / 100' : 'немає даних' }}
@if($balanceRating !== null)
@endif
Статистика: {{ $statsScore !== null ? $statsScore.' / 100' : 'немає даних' }}
@if($statsScore !== null)
@endif
@if($statsMetrics)
@foreach($statsMetrics as $m)
@if($m['target'] > 0)
@else
{{ $m['label'] }}:
{{ number_format($m['fact'], 2, '.', ' ') }}
/ {{ number_format($m['target'], 2, '.', ' ') }}
({{ $m['pct'] }}%)
@endif
@endforeach
Немає агрегованої статистики по конекшн / спенд.
@endif
|
{{-- Дії --}}
Редагувати |
| У тебе ще немає прив'язаних кабінетів. | |||||