{{-- ===== CABECERA ===== --}}
Tipo de Documento: {{ $cab['tipo_documento'] }} — Cronograma Anual
{{ $cab['empresa_larga'] }}
{{ $cab['direccion'] }}
Código de Formato:
{{ $cab['codigo_formato'] }}{{ $cab['fecha_codigo'] ? ' / ' . $cab['fecha_codigo'] : '' }}
Versión: {{ $cab['version'] }}

CRONOGRAMA ANUAL DE MANTENIMIENTO {{ $anio }} — DIAGRAMA GANTT

Emitido el {{ $cab['fecha'] }} · Periodo: {{ $inicio->format('d/m/Y') }} → {{ $fin->format('d/m/Y') }} · {{ $gantt_equipos->count() }} equipos · {{ number_format($kpis['total_ots']) }} OT programadas
Quincenal (PM 01 · 360h) Mensual (PM 02 · 720h) Semestral (PM 03 · 4320h) Anual (PM 04 · 8640h) Otra frecuencia
@foreach($meses_offsets as $idx => $mes) @endforeach @for($s = 1; $s <= 52; $s++) @php // Detectar si esta semana es inicio de mes para añadir borde $esBordeMes = collect($meses_offsets)->contains(fn ($m) => $m['semana_inicio'] === $s) && $s !== 1; @endphp @endfor @php $areaActual = null; @endphp @forelse($gantt_equipos as $eq) @if($areaActual !== optional($eq['area'])->id) @php $areaActual = optional($eq['area'])->id; @endphp @endif @for($s = 1; $s <= 52; $s++) @php $esBordeMes = collect($meses_offsets)->contains(fn ($m) => $m['semana_inicio'] === $s) && $s !== 1; @endphp @endfor @empty @endforelse
Equipo{{ $mes['nombre'] }}
{{ $s }}
📁 {{ optional($eq['area'])->nombre ?? '— Sin área —' }}
{{ optional($eq['equipo'])->codigo }} {{ optional($eq['equipo'])->nombre }} @if(count($eq['semanas'][$s] ?? []) > 0) @foreach($eq['semanas'][$s] as $ot) @php $c = optional($ot->frecuencia)->codigo; $clase = match($c) { 'QUI' => 'qui', 'MEN' => 'men', 'SEM' => 'sem', 'ANU' => 'anu', default => 'otra', }; @endphp @endforeach @endif
Sin OT planificadas en {{ $anio }}.
Resumen: Cumplimiento {{ $kpis['cumplimiento_pct'] }}% ({{ $kpis['ejecutadas'] }} ejecutadas) · Pendientes {{ $kpis['pendientes'] }} · Vencidas {{ $kpis['vencidas'] }} · Equipos cubiertos {{ $kpis['equipos_cubiertos'] }} de {{ $gantt_equipos->count() }} · Costo total estimado {{ $cab['moneda'] }} {{ number_format($kpis['costo_total_estimado'], 2) }}
{{-- Firmas --}}
Elaborado por
Encargado de Mantenimiento
Revisado por
Superintendente de Planta
Aprobado por
Gerencia de Operaciones