<?php
session_start();

if (!isset($_SESSION['Inicio']) || $_SESSION['Inicio'] !== "Ok" || !isset($_SESSION['Rol'])) {
    header('Location: ../Login.php?m=5'); // Redirige a Login.php, no .html
    exit;
}

// 2. Determinar la URL del menú correspondiente basada en el rol
$urlMenuCorrespondiente = ""; // Inicializar la variable

switch ($_SESSION['Rol']) {
    case "Administrativo":
        $urlMenuCorrespondiente = "../MenuAdministrativo.php";
        break;
    case "Titular":
        $urlMenuCorrespondiente = "../MenuTitular.php";
        break;
    case "Pasante":
        $urlMenuCorrespondiente = "../MenuPasante.php";
        break;
    default:
        // Si el rol no es válido, redirige al login por seguridad.
        header('Location: ../Login.php?m=6');
        exit;
}

$Nombre = "";
$FechaDesde = "";
$FechaHasta = "";

$TotalFilas = 0;
$datosParaTabla = [];
$errorMessage = "";
$infoMessage = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $Nombre = isset($_POST['Nombre']) ? strtoupper(trim($_POST['Nombre'])) : "";
    $FechaDesde = isset($_POST['FechaDesde']) ? trim($_POST['FechaDesde']) : "";
    $FechaHasta = isset($_POST['FechaHasta']) ? trim($_POST['FechaHasta']) : "";
}

if (file_exists("../Php/Conexion.php")) {
    include("../Php/Conexion.php");
} else {
    $errorMessage = "Error: El archivo de conexión no se encontró.";
    goto display_page;
}

$Con = Conectar();
if ($Con) {
    $sqlBase = "SELECT p.*, c.*
                FROM cdi_ii c
                JOIN agenda_citas.paciente p ON c.clave_paciente = p.clave_paciente";

    $whereClauses = [];
    $params_values = [];
    $types = "";

    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, [$searchTerm, $searchTerm, $searchTerm]);
        $types .= "sss";
    }
    if (!empty($FechaDesde)) {
        $whereClauses[] = "c.fecha_evaluacion >= ?";
        $params_values[] = $FechaDesde;
        $types .= "s";
    }
    if (!empty($FechaHasta)) {
        $whereClauses[] = "c.fecha_evaluacion <= ?";
        $params_values[] = $FechaHasta;
        $types .= "s";
    }

    $sqlWhere = !empty($whereClauses) ? " WHERE " . implode(" AND ", $whereClauses) : "";
    $sqlOrder = " ORDER BY p.apellido_paterno_paciente, p.apellido_materno_paciente, p.nombre_paciente";
    $SQL = $sqlBase . $sqlWhere . $sqlOrder;

    $stmt = mysqli_prepare($Con, $SQL);

    if ($stmt) {
        if (!empty($params_values)) {
            $bind_args = [$stmt, $types];
            foreach ($params_values as $key => $value) {
                $bind_args[] = &$params_values[$key];
            }
            call_user_func_array('mysqli_stmt_bind_param', $bind_args);
        }

        if (mysqli_stmt_execute($stmt)) {
            $Resultados = mysqli_stmt_get_result($stmt);
            if ($Resultados) {
                $TotalFilas = mysqli_num_rows($Resultados);
                while ($fila = mysqli_fetch_assoc($Resultados)) {
                    $datosParaTabla[] = $fila;
                }
                
                $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 CDI-II disponibles.";
                } else {
                    $infoMessage = $filtrosAplicados ? "No se encontraron resultados con los filtros aplicados." : "No hay registros CDI-II para mostrar.";
                }
            } else {
                $errorMessage = "Error al obtener resultados: " . htmlspecialchars(mysqli_error($Con));
            }
        } else {
             $errorMessage = "Error al ejecutar consulta: " . htmlspecialchars(mysqli_stmt_error($stmt));
        }
        mysqli_stmt_close($stmt);
    } else {
        $errorMessage = "Error al preparar consulta: " . htmlspecialchars(mysqli_error($Con));
    }
    Cerrar($Con);
} else {
    $errorMessage = "Error al conectar con la base de datos.";
}

display_page:
?>
<!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="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Montserrat:wght@700&display=swap" rel="stylesheet">
    <link rel="icon" type="image/png" href="./img/UNAM amarillo.png"> 


    <link rel="stylesheet" href="../Css/EstilosConsultas.css">
    <title>Consulta CDI-II con Filtros</title>
    <style>
        .form-filters { display: flex; flex-wrap: wrap; gap: 15px; margin-bottom: 20px; padding: 20px; background-color: #f9f9f9; border-radius: 8px; border: 1px solid #ddd; align-items: flex-end; }
        .form-filters .input-box { margin-bottom: 0; flex: 1 1 250px; }
        .form-filters label { display: block; margin-bottom: 5px; font-weight: bold; color: #555; }
        .form-filters input[type="text"], .form-filters input[type="date"] { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; }
        .form-actions { display: flex; justify-content: center; gap: 20px; margin-top: 10px; width: 100%; align-items: center; }
        .form-actions .btn, .form-actions .btn2, .form-actions .btn-outline { width: auto; min-width: 120px; text-align: center; }
        .tabla-container { overflow-x: auto; margin-top: 20px; }
        table { width: 100%; border-collapse: collapse; }
        th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }
        th { background-color: #f2f2f2; position: sticky; top: 0; z-index: 2;}
        .col-text { min-width: 250px; max-width: 400px; word-wrap: break-word; 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">Consultar Registros CDI-II</h1>

        <form method="post" action="RCDI_II.php" class="form-filters">
            <div class="input-box">
                <label for="Nombre">Nombre o Apellido:</label>
                <input type="text" placeholder="Escriba aquí..." name="Nombre" id="Nombre" value="<?php echo htmlspecialchars($Nombre); ?>">
            </div>
            <div class="input-box">
                <label for="FechaDesde">Fecha Evaluación Desde:</label>
                <input type="date" name="FechaDesde" id="FechaDesde" value="<?php echo htmlspecialchars($FechaDesde); ?>">
            </div>
            <div class="input-box">
                <label for="FechaHasta">Fecha Evaluación Hasta:</label>
                <input type="date" name="FechaHasta" id="FechaHasta" value="<?php echo htmlspecialchars($FechaHasta); ?>">
            </div>
            <div class="form-actions">
                <input type="submit" value="Buscar" class="btn">
                <a href="RCDI_II.php" class="btn2">Limpiar Filtros</a>
                <a href="<?php echo htmlspecialchars($urlMenuCorrespondiente); ?>" class="btn2">Salir</a>
                <?php if ($TotalFilas > 0): ?>
                    <button type="button" id="btnExportarExcel" class="btn btn-outline">Exportar a Excel</button>
                <?php endif; ?>
            </div>
        </form>

        <?php if (!empty($errorMessage)): ?>
            <div class="error-message"><?php echo $errorMessage; ?></div>
        <?php endif; ?>

        <?php if (!empty($infoMessage) && empty($errorMessage)): ?>
            <div class="results-info"><p><?php echo $infoMessage; ?></p></div>
        <?php endif; ?>

        <?php if (empty($errorMessage) && $TotalFilas > 0): ?>
    <div class="tabla-container">
        <table id="tablaResultados">
            <thead>
                <tr>
                    <th>Clave Paciente</th>
                    <th>Nombre</th>
                    <th>Ap. Paterno</th>
                    <th>Ap. Materno</th>
                    <th>Fec. Nacimiento</th>
                    <th>Fec. Evaluación</th>
                    <th>Edad</th>
                    <th>Edad Corregida</th>
                    <th>Semanas Gestacion</th>
                    <th>Sexo Paciente</th>
                    <th>Rango Edad</th>
                    <th>Bruto Uso Palabras</th>
                    <th>% Uso Palabras</th>
                    <th>Bruto Oraciones/Gram.</th>
                    <th>% Oraciones/Gram.</th>
                    <th>Bruto Complej. Frases</th>
                    <th>% Complej. Frases</th>
                    <th class="col-text">Interpretación</th>
                    <th class="col-text">Seguimiento</th>
                    <th class="col-text">Próx. Eval.</th>
                    <th>Referir Terapia</th>
                    
                    <th class="col-text">Otras Observaciones</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($datosParaTabla as $Fila): ?>
                <tr>
                    <!-- Estas variables probablemente vienen de una tabla 'pacientes' unida con JOIN -->
                    <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>
                    <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>
       
                    <td><?php echo htmlspecialchars($Fila['invent2_bruto_uso_palabras']); ?></td>
                    <td><?php echo htmlspecialchars($Fila['invent2_percentil_uso_palabras']); ?></td>
                    <td><?php echo htmlspecialchars($Fila['invent2_bruto_oraciones_gramatica']); ?></td>
                    <td><?php echo htmlspecialchars($Fila['invent2_percentil_oraciones_gramatica']); ?></td>
                    <td><?php echo htmlspecialchars($Fila['invent2_bruto_complejidad_frases']); ?></td>
                    <td><?php echo htmlspecialchars($Fila['invent2_percentil_complejidad_frases']); ?></td>
                    <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['invent2_interpretacion'])); ?></td>
                    <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['invent2_seguimiento'])); ?></td>
                    <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['invent2_prox_eval'])); ?></td>
                    <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['invent2_datos_clini_referir_terapi'])); ?></td>
                    
                    <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['invent2_datos_clini_otras_observ'])); ?></td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
<?php endif; ?>
    </div>

    <script>
        // --- Script de exportación (sin cambios) ---
        const btnExportar = document.getElementById('btnExportarExcel');
        if (btnExportar) {
            btnExportar.addEventListener('click', function() {
                const tabla = document.getElementById('tablaResultados');
                if (!tabla) return;
                
                let csvContent = "data:text/csv;charset=utf-8,\uFEFF";
                const rows = tabla.querySelectorAll("tr");
                
                for (const row of rows) {
                    const rowData = [];
                    const cols = row.querySelectorAll("th, td");
                    for (const col of cols) {
                        let cellText = col.innerText.replace(/\r?\n+|\r/g, " ").trim().replace(/"/g, '""');
                        rowData.push(`"${cellText}"`);
                    }
                    csvContent += rowData.join(",") + "\r\n";
                }

                const encodedUri = encodeURI(csvContent);
                const link = document.createElement("a");
                link.setAttribute("href", encodedUri);
                link.setAttribute("download", "resultados_cdi-ii_<?php echo date('Ymd_His'); ?>.csv");
                document.body.appendChild(link);
                link.click();
                document.body.removeChild(link);
            });
        }
    </script>
</body>
</html>