${{ number_format($shift['total'],2) }}
Ціль: ${{ number_format($shift['target'],2) }}
{{-- ДЕТАЛЬНИЙ % НОРМИ + ПРОГНОЗ / ПІДСУМОК --}}
@if($shift['target'] > 0)
@if($isActive)
{{-- Активна зміна — прогноз --}}
Якщо тримати такий темп до кінця зміни, очікуваний результат:
@if($predictionPercent !== null && $predictedShiftTotal !== null && $elapsedFraction > 0)
≈ ${{ number_format($predictedShiftTotal,2) }}
({{ $predictionPercent }}% від цілі)
@else
Поки що замало даних для коректного прогнозу
@endif
@elseif($isFinished)
{{-- Зміна завершена — підсумок (тільки якщо зміна вже пройшла) --}}
Підсумок по зміні:
@php
$progress = (int)$shift['progress'];
$target = (float)$shift['target'];
$total = (float)$shift['total'];
$missingAmount = max(0, $target - $total);
$missingPercent = $progress < 100 ? (100 - $progress) : 0;
$overAmount = $progress > 100 ? max(0, $total - $target) : 0;
@endphp
@if($progress >= 100)
Зміну закрито на 100%
@if($overAmount > 0)
(перевиконано +${{ number_format($overAmount,2) }})
@endif
@else
Не вистачило {{ $missingPercent }}%
(-${{ number_format($missingAmount,2) }})
щоб закрити зміну на 100%
@endif
@endif
@else
Ціль не задана для цієї зміни.
@endif
{{-- ЧАС ДО КІНЦЯ / ПОЧАТКУ ЗМІНИ --}}
@php
$timeLeftLabel = null;
if ($shiftStart && $shiftEnd) {
if ($now->between($shiftStart, $shiftEnd)) {
// активна зміна — рахуємо, скільки лишилось до кінця
$remainingMinutes = $now->diffInMinutes($shiftEnd);
$hoursLeft = intdiv($remainingMinutes, 60);
$minutesLeft = $remainingMinutes % 60;
$timeLeftLabel = 'До кінця зміни залишилось ' .
$hoursLeft . ':' . str_pad($minutesLeft, 2, '0', STR_PAD_LEFT);
} elseif ($now->lt($shiftStart)) {
// зміна ще не почалась
$remainingMinutes = $now->diffInMinutes($shiftStart);
$hoursLeft = intdiv($remainingMinutes, 60);
$minutesLeft = $remainingMinutes % 60;
$timeLeftLabel = 'До початку зміни залишилось ' .
$hoursLeft . ':' . str_pad($minutesLeft, 2, '0', STR_PAD_LEFT);
} else {
// зміна вже закінчилась
$timeLeftLabel = 'Зміна вже завершилась';
}
}
@endphp
@if($timeLeftLabel)
{{ $timeLeftLabel }}
@endif
{{-- Погодинний розподіл --}}
@if(!empty($shift['hours']))
Погодинний розподіл:
@foreach($shift['hours'] as $h)
{{ $h['label'] }}
${{ number_format($h['amount'],2) }}
@endforeach
@endif