@extends('layouts.admin') @section('title','Графік по зміні') @section('page_title','Графік по зміні') @push('head') @endpush @section('content') @php $daysCount = count($labels); $shiftLabel = [ 'day' => 'денна', 'evening' => 'вечірня', 'night' => 'нічна', ][$shift] ?? $shift; $totalAllCab = 0; $maxCabVal = 0; foreach ($cabinets as $c) { $v = (float)($cabinetTotals[$c->id] ?? 0); $totalAllCab += $v; if ($v > $maxCabVal) $maxCabVal = $v; } @endphp {{-- Верхний блок: контекст + бейджи --}}

Графік зміни — {{ $shiftLabel }}

Період: @if($from || $to) {{ $from ?: '—' }}  –  {{ $to ?: '—' }} @else не вибрано (усі дні) @endif @if($daysCount) · Днів у вибірці: {{ $daysCount }} @endif
Зміна: {{ $shiftLabel }} @if($cabinetId) @php $cabSelected = $cabinets->firstWhere('id', $cabinetId); $opNameSel = null; if ($cabSelected) { $opNameSel = match($shift) { 'day' => $cabSelected->day_operator, 'evening' => $cabSelected->evening_operator, 'night' => $cabSelected->night_operator, default => null, }; } @endphp @if(isset($cabSelected)) Кабінет: {{ $cabSelected->name }}@if($opNameSel) ({{ $opNameSel }}) @endif @endif @else Кабінети: всі @endif
{{-- Фільтри --}}
{{-- KPI картки --}} @if($daysCount)
Разом за період
{{ number_format($sum, 2, '.', ' ') }} $
Сумарний обʼєм по вибраній зміні
Середнє за день
{{ number_format($avg, 2, '.', ' ') }} $
Середній результат для одного дня
Максимум за день
{{ number_format($max, 2, '.', ' ') }} $
Найсильніший день у вибірці
Мінімум за день
{{ number_format($min, 2, '.', ' ') }} $
Найслабший день у вибірці
@endif {{-- Графік --}}
Динаміка по зміні ({{ $shiftLabel }})
Показує суму за кожен день вибраного періоду.
@if (!$daysCount)
Немає даних для відображення графіка.
@endif {{-- Таблиця по кабінетах за період --}}
Розподіл по кабінетах (зміна: {{ $shiftLabel }})
Хто дає найбільший вклад у суму за вибраний період.
@foreach($cabinets as $c) @php $val = (float)($cabinetTotals[$c->id] ?? 0); $opName = match($shift) { 'day' => $c->day_operator, 'evening' => $c->evening_operator, 'night' => $c->night_operator, default => null, }; $isTop = $val > 0 && $val === $maxCabVal; $percent = $totalAllCab > 0 ? ($val / $totalAllCab * 100) : 0; @endphp @endforeach
Кабінет / оператор Частка від загальної суми Сума за період, $
{{ $c->name }} @if($isTop) TOP @endif
@if($opName)
Оператор: {{ $opName }}
@endif
Вклад: {{ number_format($percent, 1, '.', ' ') }}%
{{ number_format($val, 2, '.', ' ') }}
Разом по всіх кабінетах (ця зміна) {{ $totalAllCab > 0 ? '100%' : '0%' }} {{ number_format($totalAllCab, 2, '.', ' ') }}
@endsection @push('body') @endpush