<?php
session_start();

// 1. Verificación de sesión y rol (Lógica idéntica a USCDI_I)
if (!isset($_SESSION['Inicio']) || $_SESSION['Inicio'] !== "Ok" || !in_array($_SESSION['Rol'], ["Administrativo", "Titular"])) {
    header("Location: ../login.php?m=5");
    exit;
}

// 2. Redirección según el rol (Lógica idéntica a USCDI_I)
$urlMenuCorrespondiente = "";
switch ($_SESSION['Rol']) {
    case "Administrativo":
        $urlMenuCorrespondiente = "../MenuAdministrativo.php";
        break;
    case "Titular":
        $urlMenuCorrespondiente = "../MenuTitular.php";
        break;
    default:
        // Bloquea cualquier otro rol
        header("Location: ../login.php?m=6"); 
        exit;
}

// 3. Obtener el ID del registro a modificar (Adaptado para CDI-II)
$id = null;
if (isset($_POST['id_CDI_II_a_modificar']) && !empty($_POST['id_CDI_II_a_modificar'])) {
    $id = $_POST['id_CDI_II_a_modificar'];
} elseif (isset($_SESSION['id_CDI_II_actual_modificacion']) && !empty($_SESSION['id_CDI_II_actual_modificacion'])) {
    $id = $_SESSION['id_CDI_II_actual_modificacion'];
}

if (empty($id) || !filter_var($id, FILTER_VALIDATE_INT)) {
    unset($_SESSION['id_CDI_II_actual_modificacion']);
    // Redirige a la página de listado de CDI-II
    header("Location: UCDI_II.php?n=CDI_II_invalid_id_update");
    exit;
}

// 4. Obtener los datos del formulario usando $_POST (Adaptado para CDI-II)
$fecha_evaluacion = isset($_POST['fecha_evaluacion']) ? $_POST['fecha_evaluacion'] : null;
$edad = isset($_POST['edad']) ? $_POST['edad'] : null;

$edad_corregida = isset($_POST['edad_corregida']) ? $_POST['edad_corregida'] : null;
$rango_edad = isset($_POST['rango_edad']) ? $_POST['rango_edad'] : null;

// Puntuaciones Brutas
$bruto_uso_palabras = isset($_POST['invent2_bruto_uso_palabras']) ? $_POST['invent2_bruto_uso_palabras'] : null;
$bruto_oraciones_gramatica = isset($_POST['invent2_bruto_oraciones_gramatica']) ? $_POST['invent2_bruto_oraciones_gramatica'] : null;
$bruto_complejidad_frases = isset($_POST['invent2_bruto_complejidad_frases']) ? $_POST['invent2_bruto_complejidad_frases'] : null;

// Percentiles (Estos valores vienen calculados del frontend)
$percentil_uso_palabras = isset($_POST['invent2_percentil_uso_palabras']) ? $_POST['invent2_percentil_uso_palabras'] : null;
$percentil_oraciones_gramatica = isset($_POST['invent2_percentil_oraciones_gramatica']) ? $_POST['invent2_percentil_oraciones_gramatica'] : null;
$percentil_complejidad_frases = isset($_POST['invent2_percentil_complejidad_frases']) ? $_POST['invent2_percentil_complejidad_frases'] : null;

// Datos Clínicos
$referir_terapia = isset($_POST['invent2_datos_clini_referir_terapi']) ? 1 : 0; // Convertir checkbox a 1 o 0
$interpretacion = isset($_POST['invent2_interpretacion']) ? $_POST['invent2_interpretacion'] : null;
$seguimiento = isset($_POST['invent2_seguimiento']) ? $_POST['invent2_seguimiento'] : null;
$prox_eval = isset($_POST['invent2_prox_eval']) ? $_POST['invent2_prox_eval'] : null;
$otras_observ = isset($_POST['invent2_datos_clini_otras_observ']) ? $_POST['invent2_datos_clini_otras_observ'] : null;

// 5. Validación básica de datos (Adaptado para CDI-II)
if (empty($fecha_evaluacion) || empty($edad)) {
    unset($_SESSION['id_CDI_II_actual_modificacion']);
    header("Location: UICDI_II.php?id=" . urlencode($id) . "&n=CDI_II_missing_data_update");
    exit;
}

// 6. Conexión a la base de datos
include("../Php/Conexion.php");
$Con = Conectar();

if (!$Con) {
    unset($_SESSION['id_CDI_II_actual_modificacion']);
    header("Location: UICDI_II.php?id=" . urlencode($id) . "&n=CDI_II_db_conn_error_update");
    exit;
}

// 7. Preparación de la consulta SQL para la tabla `cdi_ii`
// Asegúrate de que los nombres de las columnas coincidan con tu base de datos.
$SQL = "UPDATE cdi_ii SET 
    fecha_evaluacion = ?, 
    edad = ?, 
    edad_corregida = ?,
    rango_edad = ?,
    invent2_bruto_uso_palabras = ?, 
    invent2_bruto_oraciones_gramatica = ?, 
    invent2_bruto_complejidad_frases = ?, 
    invent2_percentil_uso_palabras = ?, 
    invent2_percentil_oraciones_gramatica = ?, 
    invent2_percentil_complejidad_frases = ?, 
    invent2_datos_clini_referir_terapi = ?, 
    invent2_interpretacion = ?, 
    invent2_seguimiento = ?, 
    invent2_prox_eval = ?, 
    invent2_datos_clini_otras_observ = ?
WHERE id = ?";

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

if ($stmt) {
    // 8. Vinculación de parámetros (Adaptado para CDI-II)
    // Tipos: ss (fechas/edad) + iii (brutos) + sss (percentiles) + i (checkbox) + sssss (textos) + i (id)
    mysqli_stmt_bind_param($stmt, "ssssiiiiiisssssi", 
        $fecha_evaluacion,
        $edad,
        $edad_corregida,
        $rango_edad,
        $bruto_uso_palabras,
        $bruto_oraciones_gramatica,
        $bruto_complejidad_frases,
        $percentil_uso_palabras,
        $percentil_oraciones_gramatica,
        $percentil_complejidad_frases,
        $referir_terapia,
        $interpretacion,
        $seguimiento,
        $prox_eval,
        $otras_observ,
        $id 
    );

    // 9. Ejecución y manejo de resultados (Adaptado para CDI-II)
    if (mysqli_stmt_execute($stmt)) {
        $RegistrosAfectados = mysqli_stmt_affected_rows($stmt);
        
        mysqli_stmt_close($stmt);
        Cerrar($Con);
        unset($_SESSION['id_CDI_II_actual_modificacion']); // Limpiar la sesión

        if ($RegistrosAfectados > 0) {
            header("Location: UCDI_II.php?m=CDI_II_update_success");
        } else { // No se hicieron cambios o hubo un error
            header("Location: UCDI_II.php?id=" . urlencode($id) . "&m=CDI_II_no_changes_made");
        }
        exit;
    } else {
        $error_msg_execute = mysqli_stmt_error($stmt);
        error_log("USCDI_II.php - Error al ejecutar UPDATE para ID $id: " . $error_msg_execute);
        mysqli_stmt_close($stmt);
        Cerrar($Con);
        unset($_SESSION['id_CDI_II_actual_modificacion']);
        header("Location: UICDI_II.php?id=" . urlencode($id) . "&n=CDI_II_update_failed_execute");
        exit;
    }
} else {
    $error_msg_prepare = mysqli_error($Con);
    error_log("USCDI_II.php - Error al preparar UPDATE: " . $error_msg_prepare);
    Cerrar($Con);
    unset($_SESSION['id_CDI_II_actual_modificacion']);
    
    // Redirigir de vuelta a la página de edición o al menú si el ID se perdió.
    $redirectUrl = "UICDI_II.php?id=" . urlencode($id) . "&n=CDI_II_prepare_failed";
    header("Location: " . $redirectUrl);
    exit;
}
?>