@extends('layouts.app') @section('title', 'Plan emitiranja') @section('content')
Sve narudžbe i reklamni blokovi

Plan emitiranja

Danas
← Prethodni dan
{{ $date->translatedFormat('l, d.m.Y.') }} Sljedeći dan →
@if($missingAudio->isNotEmpty())
⚠ Nedostaje audio datoteka: @foreach($missingAudio as $warning){{ $warning->order->number }} · {{ $warning->spot->code }} — {{ $warning->spot->name }}@if(!$loop->last) · @endif @endforeach
@endif @php($overloadedBlocks = $blocks->filter(function($block) use ($plays,$jingles) { $blockPlays=$plays->get($block->id,collect()); $duration=$blockPlays->sum(fn($play)=>(int)ceil(($play->orderItem->spot->duration_ms??0)/1000))+$jingles->durationFor($block); return $blockPlays->count()>$block->max_spots||$duration>$block->max_duration_seconds; })) @if($overloadedBlocks->isNotEmpty())
⚠ Prekoračen limit: {{ $overloadedBlocks->pluck('time_label')->join(', ') }}. Provjerite broj reklama ili ukupno trajanje blokova.
@endif @if($conflicts->isNotEmpty())
⚠ Konflikti u planu {{$conflicts->count()}}@foreach($conflicts as $conflict)@php($conflictBlock=$blocks->firstWhere('id',(int)$conflict['block_id']))
{{$conflictBlock?->time_label}} · {{$conflict['type']}}{{$conflict['value']}} — {{$conflict['spots']}}
@endforeach
@endif
@foreach($blocks->groupBy(fn($block)=>substr($block->starts_at,0,2)) as $hour=>$hourBlocks)
@php($nextHour = str_pad((int) $hour + 1, 2, '0', STR_PAD_LEFT))
{{ $hour }}–{{ $nextHour }}h
@foreach($hourBlocks as $block) @php($blockPlays=$plays->get($block->id,collect())) @php($jingleDuration=$jingles->durationFor($block)) @php($duration=$blockPlays->sum(fn($play)=>(int)ceil(($play->orderItem->spot->duration_ms??0)/1000))+$jingleDuration) @php($overLimit=$blockPlays->count()>$block->max_spots||$duration>$block->max_duration_seconds) @php($adWord=$blockPlays->count()===1?'reklama':($blockPlays->count()>=2&&$blockPlays->count()<=4?'reklame':'reklama'))
{{ $block->time_label }}{{ $block->name }} · {{ $block->block_type==='featured'?'Izdvojeni':'Redovni' }}
{{ $overLimit?'⚠ ':'' }}{{ $blockPlays->count() }} {{ $adWord }} · {{ $duration }} s
@forelse($blockPlays as $play)
⋮⋮
{{ $play->orderItem->spot->code }} — {{ $play->orderItem->spot->name }}{{ $play->orderItem->order->number }} · {{ $play->orderItem->spot->client->name }}{{ $play->orderItem->spot->category ?: 'Bez kategorije' }} · {{ $play->orderItem->spot->voice_talent ?: 'Bez vokala' }} · {{ $play->orderItem->spot->duration_label }}
↗
@empty
Prazan blok — povucite spot ovdje
@endforelse
@endforeach
@endforeach
@endsection