@extends('layouts.manager') @section('title','Графік по зміні') @section('page_title','Графік по зміні') @push('head') @endpush @section('content') @php $daysCount = count($labels); $shiftLabel = [ 'day' => 'денна', 'evening' => 'вечірня', 'night' => 'нічна', ][$shift] ?? $shift; // режим: tg (коли обраний cabinet_id і ми показуємо по TG по всій базі) $mode = $mode ?? (($cabinetId ?? null) ? 'tg' : 'shift'); // список кабінетів для таблиці: // ✅ у TG-режимі показуємо ті кабінети, де реально є записи (щоб не було плутанини) $tableCabinets = $cabinets; if ($mode === 'tg') { $ids = collect($cabinetTotals)->keys()->map(fn($id) => (int)$id)->all(); $tableCabinets = $cabinets->filter(fn($c) => in_array((int)$c->id, $ids, true)); } // totals для таблиці $totalAllCab = 0; $maxCabVal = 0; foreach ($tableCabinets as $c) { $v = (float)($cabinetTotals[$c->id] ?? 0); $totalAllCab += $v; if ($v > $maxCabVal) $maxCabVal = $v; } // бейдж для "джерела TG" (кабінет, з якого ми взяли TG) $badgeCabName = null; $badgeOpName = null; if (($cabinetId ?? null) && isset($selectedCabinet) && $selectedCabinet) { $badgeCabName = $selectedCabinet->name; $badgeOpName = $selectedOperatorName ?: null; } // avgLine приходит из контроллера, но на всякий случай: $avgLine = $avgLine ?? []; @endphp {{-- Верхний блок: контекст --}}
| Кабінет / оператор | Частка від загальної суми | Сума за період, $ |
|---|---|---|
|
{{ $c->name }}
@if($isTop)
TOP
@endif
@if($mode === 'tg' && !empty($selectedTgNorm))
Оператор:
{{ $selectedOperatorName ?: '—' }}
—
{{ '@'.$selectedTgNorm }}
@elseif($opName)
Оператор: {{ $opName }}
@endif
|
Вклад:
{{ number_format($percent, 1, '.', ' ') }}%
|
{{ number_format($val, 2, '.', ' ') }} |
| Немає записів для вибраних фільтрів. | ||
| Разом | {{ $totalAllCab > 0 ? '100%' : '0%' }} | {{ number_format($totalAllCab, 2, '.', ' ') }} |