@php // Función segura para decodificar valores function decodeSafe($value) { if (is_null($value)) { return 'N/A'; } if (is_array($value) || is_object($value)) { return implode(', ', (array) $value); } if ( is_string($value) && (str_starts_with($value, '{') || str_starts_with($value, '[') || str_contains($value, '\u')) ) { $decoded = json_decode($value, true); if (json_last_error() === JSON_ERROR_NONE) { return is_array($decoded) ? implode(', ', $decoded) : $decoded; } } return $value; } // Función segura para enumerar texto function formatearTextoEnumerado($texto) { if (empty($texto)) { return '

Sin información disponible

'; } if (is_string($texto)) { $decoded = json_decode($texto, true); if (json_last_error() === JSON_ERROR_NONE && is_array($decoded)) { $items = $decoded; } else { $textoPlano = trim($texto, "[]\"' \n\r\t"); $textoPlano = str_replace(['•', "\r"], "\n", $textoPlano); $items = preg_split("/[\n;]+/", $textoPlano); } } else { $items = (array) $texto; } $items = array_filter(array_map('trim', $items), fn($v) => $v !== ''); if (empty($items)) { return '

Sin información disponible

'; } $html = ''; foreach ($items as $index => $item) { $html .= "

" . ($index + 1) . '. ' . e($item) . '

'; } return $html; } // Decodificar metas del backup $metasBackup = $backup->metas; if (is_string($metasBackup)) { $metasBackup = json_decode($metasBackup, true) ?? []; } @endphp

📑 Respaldo del Plan: {{ decodeSafe($backup->nombre_plan_estrategico) }}

📋 Información General

📂 Departamento: {{ decodeSafe($backup->nombre_departamento) }}

👤 Responsable: {{ decodeSafe($backup->nombre_responsable) }}

📅 Fecha Inicio: {{ $backup->fecha_inicio }}

📅 Fecha Fin: {{ $backup->fecha_fin }}

🎯 Ejes Estratégicos del Plan

{!! formatearTextoEnumerado($backup->ejes_estrategicos) !!}

📌 Objetivos

{!! formatearTextoEnumerado($backup->objetivos) !!}
@if (!empty($metasBackup))

🎯 Metas / Objetivos Estratégicos

@foreach ($metasBackup as $index => $meta) @php $actividades = $meta['actividades'] ?? []; if (is_string($actividades)) { $actividades = json_decode($actividades, true) ?? []; } $ejesMeta = $meta['ejes_estrategicos'] ?? []; if (is_string($ejesMeta)) { $ejesMeta = json_decode($ejesMeta, true) ?? []; } @endphp

Ejes Estratégicos:

{!! formatearTextoEnumerado($ejesMeta) !!}

Resultados Esperados: {{ decodeSafe($meta['resultados_esperados'] ?? 'N/A') }}

Indicador: {{ decodeSafe($meta['indicador_resultados'] ?? 'N/A') }}

Comentario: {{ decodeSafe($meta['comentario'] ?? 'N/A') }}

Periodo: {{ $meta['fecha_inicio'] ?? '' }} - {{ $meta['fecha_fin'] ?? '' }}

@if (!empty($actividades))
@foreach ($actividades as $actIndex => $actividad) @php $seguimientos = $actividad['seguimientos'] ?? []; if (is_string($seguimientos)) { $seguimientos = json_decode($seguimientos, true) ?? []; } // Detectar si la actividad tenía OBJETIVOS o INDICADORES al hacer el backup $tipoCampo = $actividad['tipo_campo'] ?? 'objetivos'; // valor por defecto $lista = $actividad['contenido_campo'] ?? []; // Asegurar formato array if (is_string($lista)) { $lista = json_decode($lista, true) ?? []; } // Asegurar formato array if (is_string($lista)) { $lista = json_decode($lista, true) ?? []; } $evidencias = $actividad['evidencias'] ?? ($actividad['evidencia'] ?? []); if (is_string($evidencias)) { $evidencias = json_decode($evidencias, true) ?? []; } @endphp

{{ ucfirst($tipoCampo) }}:

{!! formatearTextoEnumerado($lista) !!}

Comentario: {{ decodeSafe($actividad['comentario'] ?? 'N/A') }}

Unidad Encargada: {{ decodeSafe($actividad['unidad_encargada'] ?? 'N/A') }}

Periodo: {{ $actividad['fecha_inicio'] ?? '' }} - {{ $actividad['fecha_fin'] ?? '' }}

@if (!empty($evidencias))
📎 Evidencias:
@foreach ($evidencias as $archivo) @php $extension = pathinfo($archivo, PATHINFO_EXTENSION); @endphp @if (in_array(strtolower($extension), ['jpg', 'jpeg', 'png', 'gif', 'webp'])) Evidencia @else 📄 {{ basename($archivo) }} @endif @endforeach
@endif @if (!empty($seguimientos))
@foreach ($seguimientos as $segIndex => $seg) @php $evidenciasSeg = $seg['evidencias'] ?? ($seg['evidencia'] ?? []); if (is_string($evidenciasSeg)) { $evidenciasSeg = json_decode($evidenciasSeg, true) ?? []; } @endphp

Seguimiento {{ $segIndex + 1 }}:

Periodo: {{ decodeSafe($seg['periodo_consultar'] ?? '') }}

Observaciones: {{ decodeSafe($seg['observaciones'] ?? '') }}

Estado: {{ decodeSafe($seg['estado'] ?? '') }}

Documento: {{ decodeSafe($seg['documento'] ?? 'N/A') }}

@if (!empty($evidenciasSeg))
📎 Evidencias del seguimiento:
@foreach ($evidenciasSeg as $archivoSeg) @php $extensionSeg = pathinfo($archivoSeg, PATHINFO_EXTENSION); @endphp @if (in_array(strtolower($extensionSeg), ['jpg', 'jpeg', 'png', 'gif', 'webp'])) Evidencia @else 📄 {{ basename($archivoSeg) }} @endif @endforeach
@endif
@endforeach
@endif
@endforeach
@endif
@endforeach
@endif
📄 Descargar PDF