<?php
session_start();

// 1. Verificación de sesión y rol
if (!isset($_SESSION['Inicio']) || $_SESSION['Inicio'] !== "Ok" || !in_array($_SESSION['Rol'], array("Administrativo", "Titular"))) {
    print('<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=../login.php?m=5">');
    exit;
}

// 2. Determinar la URL del menú
$urlMenuCorrespondiente = ($_SESSION['Rol'] === "Administrativo") ? "../MenuAdministrativo.php" : "../MenuTitular.php";

// --- Variables para filtros y resultados ---
$Nombre = "";
$datosParaTabla = array(); // Compatible con PHP 5.3
$TotalFilas = 0;
$errorMessage = "";
$infoMessage = "";

// --- Lógica de captura de filtros ---
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['Nombre'])) {
    $Nombre = strtoupper(trim($_POST['Nombre']));
}

// --- Lógica de conexión y consulta ---
include("../Php/ConexionInb.php");
$errorMessage = '';

    // Consulta adaptada para la tabla pls5
    // --- LÓGICA REFACTORIZADA ---
// 1. Preparar parámetros base
$columnas = "p.*, b.*"; // b.* traerá todos los datos de pls5
$whereClauses = array();
$params_values = array();
$types = "";
$sqlOrder = " ORDER BY p.apellido_paterno_paciente, p.apellido_materno_paciente, p.nombre_paciente, b.fecha_evaluacion DESC";

// 2. Construir filtros dinámicos (OJO: usamos alias 'b' para pls5)
if (!empty($Nombre)) {
    $whereClauses[] = "(UPPER(p.nombre_paciente) LIKE ? OR UPPER(p.apellido_paterno_paciente) LIKE ? OR UPPER(p.apellido_materno_paciente) LIKE ?)";
    $searchTerm = "%" . $Nombre . "%";
    $params_values = array_merge($params_values, array($searchTerm, $searchTerm, $searchTerm));
    $types .= "sss";
}

// Cambiamos 'pls.fecha_evaluacion' por 'b.fecha_evaluacion'
if (!empty($FechaDesde)) {
    $whereClauses[] = "b.fecha_evaluacion >= ?";
    $params_values[] = $FechaDesde;
    $types .= "s";
}
if (!empty($FechaHasta)) {
    $whereClauses[] = "b.fecha_evaluacion <= ?";
    $params_values[] = $FechaHasta;
    $types .= "s";
}

$sqlWhere = !empty($whereClauses) ? " WHERE " . implode(" AND ", $whereClauses) : "";

// 3. Llamar a la función centralizada
$datosParaTabla = consultarPacientes('pls5', $columnas, $sqlWhere, $params_values, $types, $sqlOrder, $errorMessage);

// 4. Procesar información de resultados para el HTML
if ($datosParaTabla !== false) {
    $TotalFilas = count($datosParaTabla);
    $filtrosAplicados = !empty($Nombre) || !empty($FechaDesde) || !empty($FechaHasta);
    
    if ($TotalFilas > 0) {
         $infoMessage = $filtrosAplicados ? "Se encontraron " . $TotalFilas . " resultado(s) aplicando los filtros." : "Mostrando todos los " . $TotalFilas . " registros PLS-5 disponibles.";
    } else {
        $infoMessage = $filtrosAplicados ? "No se encontraron resultados con los filtros aplicados." : "No hay registros PLS-5 para mostrar.";
    }
}
?>
<!DOCTYPE HTML>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Modificar Evaluación PLS-5</title>
    <link rel="stylesheet" href="../Css/EstilosConsultas.css">
    <style>
        .sticky-col { 
            position: sticky; 
            left: 0; 
            background-color: white; 
            z-index: 1; 
            border-right: 2px solid #ddd;
        }
        .tabla-container table thead th.sticky-col { 
            background-color: #f2f2f2; /* Color de fondo del header */
            z-index: 3; /* Mayor z-index para el header sticky */
        }
        .col-text { min-width: 250px; max-width: 400px; white-space: pre-wrap; }
        .results-info, .error-message { text-align: center; margin: 15px auto; padding: 10px; border-radius: 4px; max-width: 800px; }
        .results-info { color: #555; background-color: #f0f0f0; border: 1px solid #ddd;}
        .error-message { color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; }
    </style>
</head>
<body>
    <div class="container">
        <h1 class="tittle">Modificar Registros de Evaluación PLS-5</h1>
        
        <form method="post" action="UPLS.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($Nombre); ?>">
                </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 (!empty($errorMessage)): ?>
            <div class="error-message"><?php echo $errorMessage; ?></div>
        <?php elseif (!empty($infoMessage)): ?>
            <div class="results-info"><p><?php echo $infoMessage; ?></p></div>
        <?php endif; ?>

        <?php if (empty($errorMessage) && $TotalFilas > 0): ?>
            <div class="tabla-container">
                <table>
                    <thead>
                        <tr>
                            <th rowspan="2" class="sticky-col">Modificar</th>
                            <th colspan="5">DATOS DEL PACIENTE</th>
                            <th colspan="5">DATOS DE EVALUACIÓN</th>
                            <th colspan="4">COMPRENSIÓN AUDITIVA (CA)</th>
                            <th colspan="4">EXPRESIÓN COMUNICATIVA (EC)</th>
                            <th colspan="5">LENGUAJE TOTAL (LT)</th>
                            <th colspan="3">DATOS CLÍNICOS Y OBSERVACIONES</th>
                        </tr>
                        <tr>
                            <!-- Paciente -->
                            <th>Clave Paciente</th> <th>Nombre</th> <th>A. Paterno</th> <th>A. Materno</th> <th>F. Nacimiento</th>
                            <!-- Evaluación -->
                            <th>F. Evaluación</th> <th>Edad</th> <th>Edad Corregida</th> <th>Semanas Gest.</th> <th>Sexo Paciente</th><th>Rango Edad</th>
                            <!-- CA -->
                            <th>P. Bruta</th> <th>P. Estándar</th> <th>R. Percentil</th> <th class="col-text">Interpretación</th>
                            <!-- CE -->
                            <th>P. Bruta</th> <th>P. Estándar</th> <th>R. Percentil</th> <th class="col-text">Interpretación</th>
                            <!-- LT -->
                            <th>Suma P. Bruta</th> <th>Suma P. Estándar</th> <th>P. Estándar Total</th> <th>R. Percentil</th> <th class="col-text">Interpretación</th>
                            <!-- Clínicos -->
                            <th>Ref. Terapia</th> <th class="col-text">Obs. Clínicas</th> <th class="col-text">Otras Obs.</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($datosParaTabla as $Fila): ?>
                        <tr>
                            <td class="sticky-col">
                                <a href="UIPLS.php?<?php echo http_build_query($Fila); ?>" class="btn-outline btn-small modify-btn">Modificar</a>
                            </td>
                            <!-- Datos del Paciente -->
                            <td><?php echo htmlspecialchars($Fila['clave_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['nombre_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['apellido_paterno_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['apellido_materno_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['fecha_nacimiento_paciente']); ?></td>
                            <!-- Datos de Evaluación -->
                            <td><?php echo htmlspecialchars($Fila['fecha_evaluacion']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['edad']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['edad_corregida']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['semanas_gestacion']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['sexo_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['rango_edad']); ?></td>
                            <!-- Comprensión Auditiva -->
                            <td><?php echo htmlspecialchars($Fila['comp_audi_punt_bruta']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['compren_audit_punt_stand']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['compre_audit_rango_percent']); ?></td>
                            <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['comp_audit_interpre'])); ?></td>
                            <!-- Expresión Comunicativa -->
                            <td><?php echo htmlspecialchars($Fila['expre_comuni_puntua_bruta']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['expr_comun_punt_estandar']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['expr_comunic_rango_percent']); ?></td>
                            <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['expr_comunic_interpret'])); ?></td>
                            <!-- Lenguaje Total -->
                            <td><?php echo htmlspecialchars($Fila['leng_tota_punt_bruta']); ?></td>
                            <td><?php echo htmlspecialchars(isset($Fila['leng_tota_punt_standa_sum']) ? $Fila['leng_tota_punt_standa_sum'] : ''); ?></td>
                            <td><?php echo htmlspecialchars($Fila['leng_tota_punt_standa']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['leng_tota_rang_percent']); ?></td>
                            <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['lengua_tot_interpret'])); ?></td>
                            <!-- Datos Clínicos -->
                            <td><?php echo htmlspecialchars($Fila['dato_clini_refer_tera']); ?></td>
                            <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['datos_clini_observ_clini'])); ?></td>
                            <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['dat_clini_otra_observa'])); ?></td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        <?php endif; ?>

        <!-- Alertas de SweetAlert -->
        <?php if (isset($_GET['m'])): ?><div class="flash-data" data-flashdata="<?php echo htmlspecialchars($_GET['m']); ?>"></div><?php endif; ?>
        <?php if (isset($_GET['n'])): ?><div class="flash-data-error" data-flashdata="<?php echo htmlspecialchars($_GET['n']); ?>"></div><?php endif; ?>
    </div>
    
    <script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            var modifyButtons = document.querySelectorAll('.modify-btn');
            for (var i = 0; i < modifyButtons.length; i++) {
                modifyButtons[i].addEventListener('click', function(e) {
                    e.preventDefault();
                    var href = this.getAttribute('href');
                    Swal.fire({
                        title: '¿Desea modificar este registro?',
                        text: "Será redirigido al formulario para editar los datos.",
                        icon: 'question',
                        showCancelButton: true,
                        confirmButtonColor: '#3085d6',
                        cancelButtonColor: '#d33',
                        confirmButtonText: 'Sí, modificar',
                        cancelButtonText: 'Cancelar'
                    }).then(function(result) {
                        if (result.isConfirmed) {
                            window.location.href = href;
                        }
                    });
                });
            }

            var flashdata = document.querySelector('.flash-data');
            if (flashdata) {
                var msg = (flashdata.getAttribute('data-flashdata') === 'pls5_no_changes_made') 
                    ? 'Operación completada, pero no se realizaron cambios.' 
                    : 'El registro PLS-5 se modificó exitosamente.';
                Swal.fire({ title: '¡Éxito!', text: msg, icon: 'success' });
            }

            var flashdataError = document.querySelector('.flash-data-error');
            if (flashdataError) {
                var errorMsg = 'No se pudo completar la operación.';
                 // Puedes añadir códigos de error específicos si lo necesitas en el futuro
                if (flashdataError.getAttribute('data-flashdata') === 'pls5_update_failed') {
                    errorMsg = 'Error: No se pudo actualizar el registro PLS-5.';
                }
                Swal.fire({ title: 'Error', text: errorMsg, icon: 'error' });
            }
        });
    </script>
</body>
</html>