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

PLAN ANUAL DE MANTENIMIENTO — DETALLADO {{ $anio }}

Emitido el {{ $cab['fecha'] }} · Periodo: {{ $inicio->format('d/m/Y') }} → {{ $fin->format('d/m/Y') }} · Total de OT planificadas: {{ number_format($kpis['total_ots']) }} · Costo estimado: {{ $cab['moneda'] }} {{ number_format($kpis['costo_total_estimado'], 2) }}
{{-- ===== ÍNDICE DEL DOCUMENTO ===== --}}

ÍNDICE DEL DOCUMENTO

@foreach($ots_por_mes as $m) @endforeach @if($con_fichas) @endif
Parte I — Resumen ejecutivo por mes{{ count($ots_por_mes) }} secciones (una por cada mes con actividad)
   {{ $m['nombre'] }} {{ $anio }} {{ $m['total'] }} OT · {{ $cab['moneda'] }} {{ number_format($m['costo'], 2) }}
Parte II — Fichas individuales de cada OT{{ $ots_detalladas->count() }} fichas
{{-- ===== PARTE I — POR MES ===== --}}

PARTE I

RESUMEN MENSUAL DE ÓRDENES DE TRABAJO

@foreach($ots_por_mes as $m)

{{ strtoupper($m['nombre']) }} {{ $anio }} {{ $m['total'] }} OT · {{ $m['ejecutadas'] }} ejecutadas · {{ $cab['moneda'] }} {{ number_format($m['costo'], 2) }}

@foreach($m['ots'] as $ot) @php $estadoCodigo = optional($ot->estado)->codigo; $rowClass = in_array($estadoCodigo, ['EJE','APR']) ? 'ejec' : ($estadoCodigo === 'VEN' ? 'venc' : ''); @endphp @endforeach
Código Fecha Equipo Frecuencia Responsable Estado Prioridad Horóm. inicio Costo
{{ $ot->codigo }} {{ $ot->fecha_programada?->format('d/m') }} {{ optional($ot->equipo)->nombre }}
{{ optional($ot->area)->nombre }}
{{ optional($ot->frecuencia)->codigo }} {{ optional($ot->responsable)->nombre_completo ?: '—' }} {{ optional($ot->estado)->nombre }} {{ optional($ot->prioridad)->nombre ?: '—' }} {{ $ot->horometro_inicio !== null ? number_format((float)$ot->horometro_inicio, 1) : '—' }} {{ $cab['moneda'] }} {{ number_format($ot->costo_total, 2) }}
TOTAL DEL MES {{ $cab['moneda'] }} {{ number_format($m['costo'], 2) }}
{{ $m['total'] }} órdenes planificadas · {{ $m['ejecutadas'] }} ejecutadas ({{ $m['total'] > 0 ? round($m['ejecutadas']*100/$m['total'],1) : 0 }}% cumplimiento) · Costo total: {{ $cab['moneda'] }} {{ number_format($m['costo'], 2) }}
@endforeach {{-- ===== PARTE II — FICHAS INDIVIDUALES (solo si se solicitan) ===== --}} @if($con_fichas)

PARTE II

FICHAS INDIVIDUALES POR ORDEN DE TRABAJO

{{ $ots_detalladas->count() }} fichas en orden cronológico

@foreach($ots_detalladas as $idx => $ot)

Ficha #{{ $idx + 1 }} — {{ $ot->codigo }} {{ $ot->fecha_programada?->format('d/m/Y') }}

@if($ot->descripcion) @endif
Equipo {{ optional($ot->equipo)->codigo }} · {{ optional($ot->equipo)->nombre }} Área {{ optional($ot->area ?? optional($ot->equipo)->area)->nombre ?: '—' }}
Plan {{ optional($ot->plan)->codigo ?? '—' }} · {{ optional($ot->plan)->nombre ?? '' }} Frecuencia {{ optional($ot->frecuencia)->nombre ?? '—' }}{{ optional($ot->frecuencia)->dias ? ' (' . $ot->frecuencia->dias . 'd)' : '' }}
Fecha programada {{ $ot->fecha_programada?->format('d/m/Y') ?: '—' }} Horómetro inicio {{ $ot->horometro_inicio !== null ? number_format((float)$ot->horometro_inicio, 2) . ' h' : '—' }}
Responsable {{ optional($ot->responsable)->nombre_completo ?: '—' }} Prioridad {{ optional($ot->prioridad)->nombre ?: '—' }}
Estado @if($ot->estado) {{ $ot->estado->nombre }} @else — @endif Costo estimado {{ $cab['moneda'] }} {{ number_format($ot->costo_total, 2) }}
Descripción {{ $ot->descripcion }}
@if($ot->items->count())
Checklist ({{ $ot->items->count() }} ítems):
    @foreach($ot->items->take(8) as $it)
  1. {{ \Illuminate\Support\Str::limit($it->descripcion, 80) }} @php $lila = collect([ $it->lila_l_limpieza ? 'L' : null, $it->lila_i_inspeccion ? 'I' : null, $it->lila_l_lubricacion ? 'Lu' : null, $it->lila_a_ajuste ? 'A' : null, ])->filter()->implode('·'); @endphp @if($lila) [{{ $lila }}] @endif
  2. @endforeach @if($ot->items->count() > 8)
  3. ... y {{ $ot->items->count() - 8 }} más
  4. @endif
@endif
@endforeach @endif {{-- ===== FIRMAS al final ===== --}}
Elaborado por
Encargado de Mantenimiento
Revisado por
Superintendente de Planta
Aprobado por
Gerencia de Operaciones