<?php
session_start();

// --- 1. Seguridad y Menús ---
if (!isset($_SESSION['Inicio']) || $_SESSION['Inicio'] !== "Ok" || !isset($_SESSION['Rol'])) {
    header("Location: ../login.php?m=5");
    exit;
}

$urlMenuCorrespondiente = "";
switch ($_SESSION['Rol']) {
    case "Administrativo":
        $urlMenuCorrespondiente = "../MenuAdministrativo.php";
        break;
    case "Titular":
        $urlMenuCorrespondiente = "../MenuTitular.php";
        break;
    case "Pasante":
        // Si el pasante no debe modificar, redirigir. Si puede, dejar el menú.
        header("Location: ../login.php?m=4"); // Asumimos que pasante no modifica
        exit;
    default:
        header("Location: ../login.php?m=6");
        exit;
}

// --- 2. Variables y Búsqueda ---
$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
$sqlWhere = ""; $params = array(); $types = "";
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";
}
$sqlOrder = " ORDER BY p.apellido_paterno_paciente, p.apellido_materno_paciente, p.nombre_paciente, b.fecha_evaluacion DESC";

// 2. Ejecutar consulta centralizada (JOIN con celf9_21)
$pacientes = consultarPacientes('celf9_21', "p.*, b.*", $sqlWhere, $params, $types, $sqlOrder, $errorMessage);

// 3. Construir HTML
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>";
        // Fila 1 Encabezados
        $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: Conceptos y Sig. Direcciones</th><th colspan='4'>Sub-test: Recordar 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='4'>Sub-test: Clases Palabras (Total)</th><th colspan='4'>Sub-test: Definición de Palabras</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</th></tr>";
        // Fila 2 Encabezados
        $resultadosHtml .= "<tr><th>Clave Paciente</th><th>Nombre</th><th>A. Paterno</th><th>A. Materno</th><th>F. Nacim.</th><th>Fecha</th><th>Edad</th><th>Rango</th>";
        for($i=0;$i<13;$i++) $resultadosHtml .= "<th>Bruto</th><th>Escalar</th><th>Percentil</th><th class='col-text-limited'>Interp.</th>";
        for($i=0;$i<6;$i++) $resultadosHtml .= "<th>Estándar</th><th>(%)</th><th class='col-text-limited'>(Int)</th>";
        $resultadosHtml .= "<th>¿Terapia?</th><th>Obs. Clínica</th><th>Otra Obs.</th></tr></thead><tbody>";

        foreach ($pacientes as $Fila) {
            $id = htmlspecialchars($Fila['id']);
            $resultadosHtml .= "<tr><td class='sticky-col'><a href='UICELF9-21.php?id=$id' class='btn-outline btn-small mod-btn'>Modificar</a></td>";
            $resultadosHtml .= "<td>{$Fila['clave_paciente']}</td><td>{$Fila['nombre_paciente']}</td><td>{$Fila['apellido_paterno_paciente']}</td><td>{$Fila['apellido_materno_paciente']}</td><td>{$Fila['fecha_nacimiento_paciente']}</td>";
            $resultadosHtml .= "<td>{$Fila['fecha_evaluacion']}</td><td>{$Fila['edad']}</td><td>{$Fila['rango_edad']}</td>";
            
            // Subtests (Usando los nombres de columna de tu tabla celf9_21)
            $resultadosHtml .= "<td>{$Fila['sub_concep_sig_dir_bruto']}</td><td>{$Fila['sub_concep_sig_dir_escal']}</td><td>{$Fila['sub_concep_sig_dir_perce']}</td><td>{$Fila['sub_concep_sig_dir_interpre']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_record_oraci_brut']}</td><td>{$Fila['sub_record_oraci_escal']}</td><td>{$Fila['sub_record_oraci_percen']}</td><td>{$Fila['sub_record_oraci_interpr']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_formul_oraci_brut']}</td><td>{$Fila['sub_formul_oraci_esc']}</td><td>{$Fila['sub_formul_oraci_perc']}</td><td>{$Fila['sub_formul_oraci_interpr']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_clases_palab_recep_bru']}</td><td>{$Fila['sub_clases_palab_recep_esc']}</td><td>{$Fila['sub_clases_palab_recep_percen']}</td><td>{$Fila['sub_clases_palab_recep_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_clas_pala_expre_brut']}</td><td>{$Fila['sub_clas_pala_expre_esc']}</td><td>{$Fila['sub_clas_pala_expre_percen']}</td><td>{$Fila['sub_clas_pala_expre_interpr']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_clas_palab_suma_escalares']}</td><td>{$Fila['sub_clas_pala_tot_esc']}</td><td>{$Fila['sub_clas_pala_tot_perce']}</td><td>{$Fila['sub_clas_pala_tot_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_defin_pala_brut']}</td><td>{$Fila['sub_defin_pala_esc']}</td><td>{$Fila['sub_defin_pala_perc']}</td><td>{$Fila['sub_defin_pala_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_vocab_expr_bruto']}</td><td>{$Fila['sub_voc_expr_esc']}</td><td>{$Fila['sub_voc_expr_perc']}</td><td>{$Fila['sub_voc_expr_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_enten_parra_bru']}</td><td>{$Fila['sub_enten_parra_esc']}</td><td>{$Fila['sub_enten_parra_perc']}</td><td>{$Fila['sub_enten_parra_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_rep_num_forw1o2_bru']}</td><td>{$Fila['sub_rep_num_forw1o2_esc']}</td><td>{$Fila['sub_rep_num_forw1o2_perce']}</td><td>{$Fila['sub_rep_num_forw1o2_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_rep_num_backw1o2_bru']}</td><td>{$Fila['sub_rep_num_backw1o2_esc']}</td><td>{$Fila['sub_rep_num_backw1o2_perc']}</td><td>{$Fila['sub_rep_num_backw1o2_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_rep_num1o2_tot_bru']}</td><td>{$Fila['sub_rep_num1o2_tot_esc']}</td><td>{$Fila['sub_rep_num1o2_tot_perce']}</td><td>{$Fila['sub_rep_num1o2_tot_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['sub_sec_famil1o2_bru']}</td><td>{$Fila['sub_sec_famil1o2_esc']}</td><td>{$Fila['sub_sec_famil1o2_perc']}</td><td>{$Fila['sub_sec_famil1o2_inter']}</td>";

            // Índices
            $resultadosHtml .= "<td>{$Fila['celf921_leng_tot_stand']}</td><td>{$Fila['celf921_leng_tot_percen']}</td><td>{$Fila['celf921_leng_tot_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf921_leng_recep_stand']}</td><td>{$Fila['celf921_leng_recep_perce']}</td><td>{$Fila['celf921_leng_recep_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf921_leng_expre_stand']}</td><td>{$Fila['celf921_leng_expre_perc']}</td><td>{$Fila['celf921_leng_expre_interpre']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf921_conte_stand']}</td><td>{$Fila['celf921_conte_perc']}</td><td>{$Fila['celf921_conte_interp']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf921_mem_leng_stand']}</td><td>{$Fila['celf921_mem_leng_percent']}</td><td>{$Fila['celf921_mem_leng_inter']}</td>";
            $resultadosHtml .= "<td>{$Fila['celf921_mem_trab_stand']}</td><td>{$Fila['celf921_mem_trab_percen']}</td><td>{$Fila['celf921_mem_trab_interp']}</td>";
            
            // Clínicos
            $terapia = ($Fila['dat_clin_ref_ater'] == 1) ? 'Sí' : 'No';
            $resultadosHtml .= "<td>$terapia</td><td>" . nl2br(htmlspecialchars($Fila['dat_clin_observ_clin'])) . "</td><td>" . nl2br(htmlspecialchars($Fila['dat_clin_otra_observ'])) . "</td></tr>";
        }
        $resultadosHtml .= "</tbody></table></div>";
    } else {
        $msg = !empty($criterioBusqueda) ? "No se encontraron registros para '" . htmlspecialchars($criterioBusqueda) . "'." : "No hay registros de evaluación CELF 9-21 en la base de datos.";
        $resultadosHtml = "<p class='info-message'>$msg</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 9-21</title>
    <style>
        .sticky-col { position: -webkit-sticky; position: sticky; left: 0; background-color: #fff; z-index: 1; border-right: 2px solid #e1e1e1; }
        .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; }
        
        /* Limitar ancho de texto largo */
        .col-text-limited { max-width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .col-text-limited:hover { white-space: normal; overflow: visible; position: relative; z-index: 10; background: #fff; box-shadow: 0 0 5px #ccc; }
    </style>
</head>
<body>
    <div class="container">
        <h1 class="tittle">Modificar Registros de Evaluación CELF 9-21</h1>
        
        <form method="post" action="UCELF9-21.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>

        <?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 ir a modificar
            $('.mod-btn').on('click', function(e) {
                e.preventDefault();
                const href = $(this).attr('href');
                Swal.fire({
                    title: '¿Desea modificar este registro?',
                    text: "Accederá al formulario de edición CELF 9-21.",
                    icon: 'question',
                    showCancelButton: true,
                    confirmButtonColor: '#3085d6',
                    cancelButtonColor: '#d33',
                    confirmButtonText: 'Sí, modificar',
                    cancelButtonText: 'Cancelar'
                }).then((result) => {
                    if (result.isConfirmed) {
                        document.location.href = href;
                    }
                });
            });

            // Mensajes Flash
            const flashdata = $('.flash-data').data('flashdata');
            if (flashdata) {
                let text = (flashdata === 'celf921_update_success') ? 'El registro se modificó correctamente.' : 'Operación realizada.';
                Swal.fire({ title: 'Éxito', text: text, icon: 'success' });
            }

            const flashdataError = $('.flash-data-error').data('flashdata-error');
            if (flashdataError) {
                let text = 'Ocurrió un problema.';
                if (flashdataError === 'celf921_no_changes') text = 'No se realizaron cambios en el registro.';
                else if (flashdataError === 'celf921_error_update') text = 'Error al intentar actualizar la base de datos.';
                
                let icon = (flashdataError === 'celf921_no_changes') ? 'info' : 'error';
                Swal.fire({ title: 'Atención', text: text, icon: icon });
            }
        });
    </script>
</body>
</html>