<?php
/**
 * GENERADOR PDF MSP 005 - EVOLUCIÓN Y PRESCRIPCIONES (Standalone con paleta MSP oficial)
 *
 * Este archivo se invoca por URL: reportes/generar_pdf_msp_005.php?idatencion=N
 * Delega al wrapper unificado en generar_pdf_msp.php que aplica la paleta MSP oficial,
 * datos del emisor dinámicos (cero hardcodeo) y QR de firma electrónica simulada.
 *
 * Registro en BD: atencion_formatos (igual que el resto de formatos MSP).
 */

ini_set('display_errors', 0);
error_reporting(E_ERROR | E_PARSE);

if (strlen(session_id()) < 1)
    session_start();

require_once __DIR__ . "/../config/Conexion.php";
require_once __DIR__ . "/generar_pdf_msp.php";

if (!isset($_GET['idatencion']) || !ctype_digit((string)$_GET['idatencion'])) {
    die("Error: parámetro idatencion inválido o ausente.");
}
$idatencion = (int)$_GET['idatencion'];

// Obtener datos_json del formato MSP_005 si existe (puede estar vacío)
$datosJson = '{}';
$sqlF = "SELECT datos_json FROM atencion_formatos
         WHERE idatencion='$idatencion' AND tipo_formato='MSP_005'
         ORDER BY id_atencion_formato DESC LIMIT 1";
$rsF = @ejecutarConsultaSimpleFila($sqlF);
if ($rsF && !empty($rsF['datos_json'])) {
    $datosJson = $rsF['datos_json'];
}

// Generar PDF con la función unificada (incluye paleta MSP + QR firma)
$rutaRelativa = generarPDFMsp005($idatencion, $datosJson);

if (!$rutaRelativa) {
    die("Error: no se pudo generar el PDF del MSP-005.");
}

// Actualizar registro en atencion_formatos
$usuario_creacion = isset($_SESSION['idusuario']) ? (int)$_SESSION['idusuario'] : 1;
$sqlCheck = "SELECT id_atencion_formato FROM atencion_formatos
             WHERE idatencion='$idatencion' AND tipo_formato='MSP_005' LIMIT 1";
$rsCheck = @ejecutarConsultaSimpleFila($sqlCheck);

if ($rsCheck) {
    $sqlU = "UPDATE atencion_formatos
             SET ruta_pdf='$rutaRelativa', fecha_modificacion=NOW(), estado='completado'
             WHERE id_atencion_formato='" . $rsCheck['id_atencion_formato'] . "'";
    @ejecutarConsulta($sqlU);
} else {
    $sqlI = "INSERT INTO atencion_formatos
             (idatencion, tipo_formato, ruta_pdf, usuario_creacion, estado, datos_json, orden)
             VALUES ('$idatencion', 'MSP_005', '$rutaRelativa', '$usuario_creacion', 'completado', '$datosJson', 1)";
    @ejecutarConsulta($sqlI);
}

// Mostrar el PDF al navegador
$rutaFisica = dirname(__DIR__) . '/' . $rutaRelativa;
if (file_exists($rutaFisica)) {
    header('Content-Type: application/pdf');
    header('Content-Disposition: inline; filename="' . basename($rutaRelativa) . '"');
    header('Content-Length: ' . filesize($rutaFisica));
    readfile($rutaFisica);
} else {
    die("Error: PDF generado pero no se pudo leer en {$rutaFisica}");
}
