<?php
session_start();

// 1. Verificación de sesión y rol
if (!isset($_SESSION['Inicio']) || $_SESSION['Inicio'] !== "Ok" || !isset($_SESSION['Rol'])) {
    header("Location: ../login.php?m=5");
    exit;
}

// 2. Determinar la URL del menú y validar permisos de rol
$urlMenuCorrespondiente = "";
switch ($_SESSION['Rol']) {
    case "Administrativo":
        $urlMenuCorrespondiente = "../MenuAdministrativo.php";
        break;
    case "Titular":
        $urlMenuCorrespondiente = "../MenuTitular.php";
        break;
    case "Pasante":
        header("Location: ../login.php?m=4");
        exit;
    default:
        header("Location: ../login.php?m=6");
        exit;
}

$criterioBusqueda = '';
$resultadosHtml = '';
$totalFilas = 0;

if (isset($_POST['Nombre'])) {
    $criterioBusqueda = strtoupper(trim($_POST['Nombre']));
}

include("../Php/ConexionInb.php");
$errorMessage = '';

// 1. Preparar parámetros para la función
$columnas = "p.*, b.*"; // p=paciente, b=celf58
$sqlWhere = "";
$params = array();
$types = "";
$sqlOrder = " ORDER BY p.apellido_paterno_paciente, p.apellido_materno_paciente, p.nombre_paciente, b.fecha_evaluacion DESC";

if (!empty($criterioBusqueda)) {
    $sqlWhere = " WHERE (UPPER(p.nombre_paciente) LIKE ? 
                    OR UPPER(p.apellido_paterno_paciente) LIKE ? 
                    OR UPPER(p.apellido_materno_paciente) LIKE ?)";
    $searchTerm = "%" . $criterioBusqueda . "%";
    $params = array($searchTerm, $searchTerm, $searchTerm);
    $types = "sss";
}

// 2. Ejecutar la consulta centralizada (JOIN con celf58)
$pacientes = consultarPacientes('celf58', $columnas, $sqlWhere, $params, $types, $sqlOrder, $errorMessage);

// 3. Construir el HTML de la tabla
if ($pacientes === false) {
    $resultadosHtml = "<p class='error-message'>" . htmlspecialchars($errorMessage) . "</p>";
} else {
    $totalFilas = count($pacientes);
    if ($totalFilas > 0) {
        $resultadosHtml .= "<div class='tabla-container'><table id='tablaResultados'><thead>";
        // --- Pegar aquí tus mismos encabezados de tabla (Fila 1 y Fila 2) ---
        $resultadosHtml .= "<tr><th rowspan='2' class='sticky-col'>Acción</th><th colspan='5'>Datos del Paciente</th><th colspan='3'>Info Evaluación</th><th colspan='4'>Sub-test: Seguir Direcciones</th><th colspan='4'>Sub-test: Estructura de Palabras</th><th colspan='4'>Sub-test: Recuerdo de Oraciones</th><th colspan='4'>Sub-test: Formulación de Oraciones</th><th colspan='4'>Sub-test: Clases Palabras (Receptivo)</th><th colspan='4'>Sub-test: Clases Palabras (Expresivo)</th><th colspan='3'>Sub-test: Clases Palabras (Total)</th><th colspan='4'>Sub-test: Estructura de Oraciones</th><th colspan='4'>Sub-test: Vocabulario Expresivo</th><th colspan='4'>Sub-test: Entendiendo Párrafos</th><th colspan='4'>Sub-test: Rep. Números (Directa)</th><th colspan='4'>Sub-test: Rep. Números (Inversa)</th><th colspan='4'>Sub-test: Rep. Números (Total)</th><th colspan='4'>Sub-test: Secuencias Familiares</th><th colspan='18'>Índices Principales y Complementarios</th><th colspan='3'>Datos Clínicos y Observaciones</th></tr>";
        $resultadosHtml .= "<tr><th>Clave Paciente</th><th>Nombre</th><th>A. Paterno</th><th>A. Materno</th><th>F. Nacimiento</th><th>Fecha Eval.</th><th>Edad</th><th>Rango Edad</th>";
        for($i=0; $i<6; $i++) $resultadosHtml .= "<th>Bruto</th><th>Escalar</th><th>Percentil</th><th class='col-text-limited'>Interpretación</th>";
        $resultadosHtml .= "<th>Suma Esc.</th><th>Escalar</th><th>Percentil</th>";
        for($i=0; $i<6; $i++) $resultadosHtml .= "<th>Bruto</th><th>Escalar</th><th>Percentil</th><th class='col-text-limited'>Interpretación</th>";
        for($i=0; $i<6; $i++) $resultadosHtml .= "<th>Escalar</th><th>(%)</th><th>(Int)</th>";
        $resultadosHtml .= "<th>¿Requiere Terapia?</th><th>Obs. Clínicas</th><th>Otras Obs.</th></tr></thead><tbody>";

        // --- BUCLE FOREACH PARA LOS DATOS ---
        foreach ($pacientes as $Fila) {
            $id_celf58 = htmlspecialchars($Fila['id']);
            $resultadosHtml .= "<tr>";
            $resultadosHtml .= "<td class='sticky-col'><a href='UICELF5-8.php?id=" . $id_celf58 . "' class='btn-outline btn-small mod-btn'>Modificar</a></td>";
            
            // Datos básicos
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['clave_paciente']) . "</td><td>" . htmlspecialchars($Fila['nombre_paciente']) . "</td><td>" . htmlspecialchars($Fila['apellido_paterno_paciente']) . "</td><td>" . htmlspecialchars($Fila['apellido_materno_paciente']) . "</td><td>" . htmlspecialchars($Fila['fecha_nacimiento_paciente']) . "</td>";
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['fecha_evaluacion']) . "</td><td>" . htmlspecialchars($Fila['edad']) . "</td><td>" . htmlspecialchars($Fila['rango_edad']) . "</td>";

            // Subtests (Siguiendo tu orden original)
            $resultadosHtml .= "<td>{$Fila['sub_con_sigui_dir_brut']}</td><td>{$Fila['sub_con_sigui_dir_esc']}</td><td>{$Fila['sub_con_sigui_dir_perce']}</td><td class='col-text-limited'>{$Fila['sub_con_sigui_dir_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_recor_pala_brut']}</td><td>{$Fila['sub_recor_pala_esca']}</td><td>{$Fila['sub_recor_pala_percen']}</td><td class='col-text-limited'>{$Fila['sub_recor_pala_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_recor_orac_brut']}</td><td>{$Fila['sub_recor_orac_esca']}</td><td>{$Fila['sub_recor_orac_perce']}</td><td class='col-text-limited'>{$Fila['sub_recor_orac_interpr']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_form_oraci_brut']}</td><td>{$Fila['sub_form_oraci_esca']}</td><td>{$Fila['sub_form_oraci_percen']}</td><td class='col-text-limited'>{$Fila['sub_form_oraci_interpr']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_clas_palab_recep']}</td><td>{$Fila['sub_clas_palab_esca']}</td><td>{$Fila['sub_clas_palab_percent']}</td><td class='col-text-limited'>{$Fila['sub_clas_palab_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_clas_pala_exprex_brut']}</td><td>{$Fila['sub_clas_pala_exprex_esc']}</td><td>{$Fila['sub_clas_pala_exprex_percen']}</td><td class='col-text-limited'>{$Fila['sub_clas_pala_exprex_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_clas_palab_suma_escalares']}</td><td>{$Fila['sub_clas_palab_tot_esc']}</td><td>{$Fila['sub_clas_palab_tot_percen']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_esctr_orac_brut']}</td><td>{$Fila['sub_esctr_orac_esc']}</td><td>{$Fila['sub_esctr_orac_percen']}</td><td class='col-text-limited'>{$Fila['sub_esctr_orac_interpr']}</td>";
            $resultadosHtml .= "<td>{$Fila['vocab_expre_brut']}</td><td>{$Fila['vocab_expre_esc']}</td><td>{$Fila['vocab_expre_percen']}</td><td class='col-text-limited'>{$Fila['vocab_expre_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_enten_parraf_brut']}</td><td>{$Fila['sub_enten_parraf_esca']}</td><td>{$Fila['sub_enten_parraf_perce']}</td><td class='col-text-limited'>{$Fila['sub_enten_parraf_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_rep_num_forw_brut']}</td><td>{$Fila['sub_rep_num_forw_esc']}</td><td>{$Fila['sub_rep_num_forw_perc']}</td><td class='col-text-limited'>{$Fila['sub_rep_num_forw_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_rep_num_back_brut']}</td><td>{$Fila['sub_rep_num_back_esc']}</td><td>{$Fila['sub_rep_num_back_perce']}</td><td class='col-text-limited'>{$Fila['sub_rep_num_back_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_rep_num_tot_brut']}</td><td>{$Fila['sub_rep_num_tot_esc']}</td><td>{$Fila['sub_rep_num_tot_perc']}</td><td class='col-text-limited'>{$Fila['sub_rep_num_tot_int']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_sec_fam1_brut']}</td><td>{$Fila['sub_sec_fam1_esc']}</td><td>{$Fila['sub_sec_fam1_percen']}</td><td class='col-text-limited'>{$Fila['sub_sec_fam1_interp']}</td>";

            // Indices
            $resultadosHtml .= "<td>{$Fila['celf58_stand_lengu_total']}</td><td>{$Fila['celf58_percent_lengua_tota']}</td><td>{$Fila['celf58_leng_tot_interpr']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf58_stand_leng_recep']}</td><td>{$Fila['celf58_percent_leng_recept']}</td><td>{$Fila['celf58_leng_recep_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf58_stand_leng_expres']}</td><td>{$Fila['celf58_percent_leng_expres']}</td><td>{$Fila['celf58_leng_expr_interpre']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf58_stand_contenido']}</td><td>{$Fila['celf58_percent_conteni']}</td><td>{$Fila['celf58_contenido_interpretacion']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf58_stand_estrucct']}</td><td>{$Fila['celf58_percent_estrucc']}</td><td>{$Fila['celf58_estrucct_interpret']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf58_stand_memor_dtraba']}</td><td>{$Fila['celf58_percent_memor_dtrab']}</td><td>{$Fila['celf58_memori_traba_interpre']}</td>";

            // Clínicos
            $terapia = ($Fila['dat_clin_refera_ter'] == 1) ? 'Sí' : 'No';
            $resultadosHtml .= "<td>{$terapia}</td><td>" . nl2br(htmlspecialchars($Fila['dat_clin_obser_clinic'])) . "</td><td>" . nl2br(htmlspecialchars($Fila['dat_clin_otr_obser'])) . "</td>";
            $resultadosHtml .= "</tr>";
        }
        $resultadosHtml .= "</tbody></table></div>";
    } else {
        $resultadosHtml = "<p class='info-message'>" . (!empty($criterioBusqueda) ? "No se encontraron registros." : "No hay registros para modificar.") . "</p>";
    }
}
?>


<!DOCTYPE HTML>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="../Css/EstilosConsultas.css">
    <title>Modificar Evaluación CELF 5-8</title>
    <style>
        .sticky-col { position: -webkit-sticky; position: sticky; left: 0; background-color: #fff; z-index: 1; }
        .tabla-container table thead th.sticky-col { z-index: 2; }
        .input-box .btn, .input-box .btn2 { margin-top: 26px; }
        @media (max-width: 768px) { .input-box .btn, .input-box .btn2 { margin-top: 0; } }
        .info-message, .error-message { text-align: center; padding: 15px; margin-top: 20px; border-radius: 5px; }
        .info-message { background-color: #e9f5fd; color: #3c70a0; border: 1px solid #bce8f1; }
        .error-message { background-color: #fde9e9; color: #a03c3c; border: 1px solid #f1bcbc; }
    </style>
</head>
<body>
    <div class="container">
        <h1 class="tittle">Modificar Registros de Evaluación CELF 5-8</h1>
        <form method="post" action="UCELF5-8.php">
            <div class="dentro">
                <div class="input-box">
                    <label for="Nombre" class="detalles">Buscar Paciente (Nombre o Apellido):</label>
                    <input type="text" placeholder="Escriba aquí para buscar..." name="Nombre" id="Nombre"
                           value="<?php echo htmlspecialchars($criterioBusqueda); ?>">
                </div>
                <div class="input-box">
                    <input type="submit" value="Buscar" class="btn">
                </div>
                 <div class="input-box exit">
                    <a href="<?php echo htmlspecialchars($urlMenuCorrespondiente); ?>" class="btn2">Salir</a>
                </div>
            </div>
        </form>

        <!-- Contenedores para los mensajes flash de SweetAlert -->
        <?php if (isset($_GET['m'])) : ?>
            <div class="flash-data" data-flashdata="<?= htmlspecialchars($_GET['m']); ?>"></div>
        <?php endif; ?>
        <?php if (isset($_GET['n'])) : ?>
            <div class="flash-data-error" data-flashdata-error="<?= htmlspecialchars($_GET['n']); ?>"></div>
        <?php endif; ?>

        <?php echo $resultadosHtml; ?>
    </div>
    
    <script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <script src="../Jquery/jquery-3.6.0.min.js"></script>
    <script>
        $(document).ready(function() {
            // Confirmación antes de redirigir a modificar
            $('.mod-btn').on('click', function(e) {
                e.preventDefault();
                const href = $(this).attr('href');
                Swal.fire({
                    title: '¿Desea modificar este registro?',
                    text: "Será redirigido al formulario de edición.",
                    icon: 'question',
                    showCancelButton: true,
                    confirmButtonColor: '#3085d6',
                    cancelButtonColor: '#d33',
                    confirmButtonText: 'Sí, modificar',
                    cancelButtonText: 'Cancelar'
                }).then((result) => {
                    if (result.isConfirmed) {
                        document.location.href = href;
                    }
                });
            });

            // Mensajes de éxito (m)
            const flashdata = $('.flash-data').data('flashdata');
            if (flashdata) {
                let title = 'Operación Exitosa';
                let text = '';
                if (flashdata === 'celf58_update_success') {
                    text = 'El registro CELF 5-8 se modificó correctamente.';
                } else {
                    text = 'Acción completada.';
                }
                Swal.fire({ title: title, text: text, icon: 'success' });
            }

            // Mensajes de notificación/error (n)
            const flashdataError = $('.flash-data-error').data('flashdata-error');
            if (flashdataError) {
                let title = 'Atención';
                let text = 'Ocurrió un problema.';
                if (flashdataError === 'celf58_invalid_id_update') { text = 'Error: El ID para modificar no es válido.'; }
                else if (flashdataError === 'celf58_missing_data_update') { text = 'Error: Faltan datos para la modificación.'; }
                else if (flashdataError === 'celf58_no_changes_made') { title = 'Información'; text = 'No se realizaron cambios en el registro.'; }
                else if (flashdataError === 'celf58_db_conn_error_update') { text = 'Error: No se pudo conectar a la base de datos para actualizar.'; }
                else if (flashdataError === 'celf58_update_failed_execute') { text = 'Error: Falló la ejecución de la actualización.'; }
                else if (flashdataError === 'celf58_prepare_failed') { text = 'Error: Falló la preparación de la consulta de actualización.'; }
                
                let icon = (flashdataError === 'celf58_no_changes_made') ? 'info' : 'error';
                Swal.fire({ title: title, text: text, icon: icon });
            }
        });
    </script>
</body>
</html>