<?php
// --- VERSIÓN FINAL CREADA DESDE CERO CON LA ESTRUCTURA CORRECTA DE LA BD ---
session_start();
date_default_timezone_set('America/Mexico_City');

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

// 2. Determinar la URL del menú para la redirección
$urlMenuCorrespondiente = "";
switch ($_SESSION['Rol']) {
    case "Administrativo":
        $urlMenuCorrespondiente = "../MenuAdministrativo.php";
        break;
    case "Titular":
        $urlMenuCorrespondiente = "../MenuTitular.php";
        break;
    case "Pasante":
        $urlMenuCorrespondiente = "../MenuPasante.php";
        break;
    default:
        header("Location: ../login.php?m=6");
        exit;
}

// Incluir y verificar la conexión a la base de datos
include("../Php/Conexion.php");
$Con = Conectar();
if (!$Con) {
    header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=db_conn_error");
    exit;
}



// Datos principales
$clave_paciente = isset($_POST['clave_paciente']) ? $_POST['clave_paciente'] : null;
$fecha_evaluacion = isset($_POST['fecha_evaluacion']) ? $_POST['fecha_evaluacion'] : null;
$edad = isset($_POST['edad']) ? $_POST['edad'] : null;
$rango_edad = isset($_POST['rango_edad']) ? $_POST['rango_edad'] : null;
$usuario_registro = $_SESSION['Usuario'];
$fecha_registro = date('Y-m-d H:i:s');



$celf921_leng_tot_stand = isset($_POST['celf921_leng_tot_stand']) ? $_POST['celf921_leng_tot_stand'] : null;
$celf921_leng_tot_percen = isset($_POST['celf921_leng_tot_percen']) ? $_POST['celf921_leng_tot_percen'] : null;
$celf921_leng_tot_interp = isset($_POST['celf921_leng_tot_interp']) ? $_POST['celf921_leng_tot_interp'] : null;
$celf921_leng_recep_stand = isset($_POST['celf921_leng_recep_stand']) ? $_POST['celf921_leng_recep_stand'] : null;
$celf921_leng_recep_perce = isset($_POST['celf921_leng_recep_perce']) ? $_POST['celf921_leng_recep_perce'] : null;
$celf921_leng_recep_inter = isset($_POST['celf921_leng_recep_inter']) ? $_POST['celf921_leng_recep_inter'] : null;
$celf921_leng_expre_stand = isset($_POST['celf921_leng_expre_stand']) ? $_POST['celf921_leng_expre_stand'] : null;
$celf921_leng_expre_perc = isset($_POST['celf921_leng_expre_perc']) ? $_POST['celf921_leng_expre_perc'] : null;
$celf921_leng_expre_interpre = isset($_POST['celf921_leng_expre_interpre']) ? $_POST['celf921_leng_expre_interpre'] : null;
$celf921_conte_stand = isset($_POST['celf921_conte_stand']) ? $_POST['celf921_conte_stand'] : null;
$celf921_conte_perc = isset($_POST['celf921_conte_perc']) ? $_POST['celf921_conte_perc'] : null;
$celf921_conte_interp = isset($_POST['celf921_conte_interp']) ? $_POST['celf921_conte_interp'] : null;
$celf921_mem_leng_stand = isset($_POST['celf921_mem_leng_stand']) ? $_POST['celf921_mem_leng_stand'] : null;
$celf921_mem_leng_percent = isset($_POST['celf921_mem_leng_percent']) ? $_POST['celf921_mem_leng_percent'] : null;
$celf921_mem_leng_inter = isset($_POST['celf921_mem_leng_inter']) ? $_POST['celf921_mem_leng_inter'] : null;
$celf921_mem_trab_stand = isset($_POST['celf921_mem_trab_stand']) ? $_POST['celf921_mem_trab_stand'] : null;
$celf921_mem_trab_percen = isset($_POST['celf921_mem_trab_percen']) ? $_POST['celf921_mem_trab_percen'] : null;
$celf921_mem_trab_interp = isset($_POST['celf921_mem_trab_interp']) ? $_POST['celf921_mem_trab_interp'] : null;

$dat_clin_ref_ater = isset($_POST['dat_clin_ref_ater']) ? $_POST['dat_clin_ref_ater'] : null;
$dat_clin_observ_clin = isset($_POST['dat_clin_observ_clin']) ? $_POST['dat_clin_observ_clin'] : null;
$dat_clin_otra_observ = isset($_POST['dat_clin_otra_observ']) ? $_POST['dat_clin_otra_observ'] : null;

$sub_concep_sig_dir_bruto = isset($_POST['sub_concep_sig_dir_bruto']) ? $_POST['sub_concep_sig_dir_bruto'] : null;
$sub_concep_sig_dir_escal = isset($_POST['sub_concep_sig_dir_escal']) ? $_POST['sub_concep_sig_dir_escal'] : null;
$sub_concep_sig_dir_perce = isset($_POST['sub_concep_sig_dir_perce']) ? $_POST['sub_concep_sig_dir_perce'] : null;
$sub_concep_sig_dir_interpre = isset($_POST['sub_concep_sig_dir_interpre']) ? $_POST['sub_concep_sig_dir_interpre'] : null;
$sub_record_oraci_brut = isset($_POST['sub_record_oraci_brut']) ? $_POST['sub_record_oraci_brut'] : null;
$sub_record_oraci_escal = isset($_POST['sub_record_oraci_escal']) ? $_POST['sub_record_oraci_escal'] : null;
$sub_record_oraci_percen = isset($_POST['sub_record_oraci_percen']) ? $_POST['sub_record_oraci_percen'] : null;
$sub_record_oraci_interpr = isset($_POST['sub_record_oraci_interpr']) ? $_POST['sub_record_oraci_interpr'] : null;
$sub_formul_oraci_brut = isset($_POST['sub_formul_oraci_brut']) ? $_POST['sub_formul_oraci_brut'] : null;
$sub_formul_oraci_esc = isset($_POST['sub_formul_oraci_esc']) ? $_POST['sub_formul_oraci_esc'] : null;
$sub_formul_oraci_perc = isset($_POST['sub_formul_oraci_perc']) ? $_POST['sub_formul_oraci_perc'] : null;
$sub_formul_oraci_interpr = isset($_POST['sub_formul_oraci_interpr']) ? $_POST['sub_formul_oraci_interpr'] : null;
$sub_clases_palab_recep_bru = isset($_POST['sub_clases_palab_recep_bru']) ? $_POST['sub_clases_palab_recep_bru'] : null;
$sub_clases_palab_recep_esc = isset($_POST['sub_clases_palab_recep_esc']) ? $_POST['sub_clases_palab_recep_esc'] : null;
$sub_clases_palab_recep_percen = isset($_POST['sub_clases_palab_recep_percen']) ? $_POST['sub_clases_palab_recep_percen'] : null;
$sub_clases_palab_recep_interp = isset($_POST['sub_clases_palab_recep_interp']) ? $_POST['sub_clases_palab_recep_interp'] : null;

$sub_clas_pala_expre_brut = isset($_POST['sub_clas_pala_expre_brut']) ? $_POST['sub_clas_pala_expre_brut'] : null;
$sub_clas_pala_expre_esc = isset($_POST['sub_clas_pala_expre_esc']) ? $_POST['sub_clas_pala_expre_esc'] : null;
$sub_clas_pala_expre_percen = isset($_POST['sub_clas_pala_expre_percen']) ? $_POST['sub_clas_pala_expre_percen'] : null;
$sub_clas_pala_expre_interpr = isset($_POST['sub_clas_pala_expre_interpr']) ? $_POST['sub_clas_pala_expre_interpr'] : null;

$sub_clas_palab_suma_escalares = isset($_POST['sub_clas_palab_suma_escalares']) ? $_POST['sub_clas_palab_suma_escalares'] : null;
$sub_clas_pala_tot_esc = isset($_POST['sub_clas_pala_tot_esc']) ? $_POST['sub_clas_pala_tot_esc'] : null;
$sub_clas_pala_tot_perce = isset($_POST['sub_clas_pala_tot_perce']) ? $_POST['sub_clas_pala_tot_perce'] : null;
$sub_clas_pala_tot_inter = isset($_POST['sub_clas_pala_tot_inter']) ? $_POST['sub_clas_pala_tot_inter'] : null;
$sub_defin_pala_brut = isset($_POST['sub_defin_pala_brut']) ? $_POST['sub_defin_pala_brut'] : null;
$sub_defin_pala_esc = isset($_POST['sub_defin_pala_esc']) ? $_POST['sub_defin_pala_esc'] : null;
$sub_defin_pala_perc = isset($_POST['sub_defin_pala_perc']) ? $_POST['sub_defin_pala_perc'] : null;
$sub_defin_pala_inter = isset($_POST['sub_defin_pala_inter']) ? $_POST['sub_defin_pala_inter'] : null;
$sub_vocab_expr_bruto = isset($_POST['sub_vocab_expr_bruto']) ? $_POST['sub_vocab_expr_bruto'] : null;
$sub_voc_expr_esc = isset($_POST['sub_voc_expr_esc']) ? $_POST['sub_voc_expr_esc'] : null;
$sub_voc_expr_perc = isset($_POST['sub_voc_expr_perc']) ? $_POST['sub_voc_expr_perc'] : null;
$sub_voc_expr_inter = isset($_POST['sub_voc_expr_inter']) ? $_POST['sub_voc_expr_inter'] : null;
$sub_enten_parra_bru = isset($_POST['sub_enten_parra_bru']) ? $_POST['sub_enten_parra_bru'] : null;
$sub_enten_parra_esc = isset($_POST['sub_enten_parra_esc']) ? $_POST['sub_enten_parra_esc'] : null;
$sub_enten_parra_perc = isset($_POST['sub_enten_parra_perc']) ? $_POST['sub_enten_parra_perc'] : null;
$sub_enten_parra_inter = isset($_POST['sub_enten_parra_inter']) ? $_POST['sub_enten_parra_inter'] : null;
$sub_rep_num_forw1o2_bru = isset($_POST['sub_rep_num_forw1o2_bru']) ? $_POST['sub_rep_num_forw1o2_bru'] : null;
$sub_rep_num_forw1o2_esc = isset($_POST['sub_rep_num_forw1o2_esc']) ? $_POST['sub_rep_num_forw1o2_esc'] : null;
$sub_rep_num_forw1o2_perce = isset($_POST['sub_rep_num_forw1o2_perce']) ? $_POST['sub_rep_num_forw1o2_perce'] : null;
$sub_rep_num_forw1o2_inter = isset($_POST['sub_rep_num_forw1o2_inter']) ? $_POST['sub_rep_num_forw1o2_inter'] : null;
$sub_rep_num_backw1o2_bru = isset($_POST['sub_rep_num_backw1o2_bru']) ? $_POST['sub_rep_num_backw1o2_bru'] : null;
$sub_rep_num_backw1o2_esc = isset($_POST['sub_rep_num_backw1o2_esc']) ? $_POST['sub_rep_num_backw1o2_esc'] : null;
$sub_rep_num_backw1o2_perc = isset($_POST['sub_rep_num_backw1o2_perc']) ? $_POST['sub_rep_num_backw1o2_perc'] : null;
$sub_rep_num_backw1o2_inter = isset($_POST['sub_rep_num_backw1o2_inter']) ? $_POST['sub_rep_num_backw1o2_inter'] : null;
$sub_rep_num1o2_tot_bru = isset($_POST['sub_rep_num1o2_tot_bru']) ? $_POST['sub_rep_num1o2_tot_bru'] : null;
$sub_rep_num1o2_tot_esc = isset($_POST['sub_rep_num1o2_tot_esc']) ? $_POST['sub_rep_num1o2_tot_esc'] : null;
$sub_rep_num1o2_tot_perce = isset($_POST['sub_rep_num1o2_tot_perce']) ? $_POST['sub_rep_num1o2_tot_perce'] : null;
$sub_rep_num1o2_tot_inter = isset($_POST['sub_rep_num1o2_tot_inter']) ? $_POST['sub_rep_num1o2_tot_inter'] : null;
$sub_sec_famil1o2_bru = isset($_POST['sub_sec_famil1o2_bru']) ? $_POST['sub_sec_famil1o2_bru'] : null;
$sub_sec_famil1o2_esc = isset($_POST['sub_sec_famil1o2_esc']) ? $_POST['sub_sec_famil1o2_esc'] : null;
$sub_sec_famil1o2_perc = isset($_POST['sub_sec_famil1o2_perc']) ? $_POST['sub_sec_famil1o2_perc'] : null;
$sub_sec_famil1o2_inter = isset($_POST['sub_sec_famil1o2_inter']) ? $_POST['sub_sec_famil1o2_inter'] : null;

// Validación básica (debes expandirla para todos los campos 'required' de tu formulario CICELF5-8.php)
if (empty($clave_paciente) || empty($fecha_evaluacion) || empty($edad) ||
    is_null($celf921_leng_tot_stand) /* ... añade otros campos cruciales ... */) {
    header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=celf58_missing_data");
    exit;

    }
// --- 4. Construcción de la Consulta SQL Final ---
// Total de columnas a insertar: 81 (todas excepto `id`)
$SQL = "INSERT INTO celf9_21 (
    clave_paciente, fecha_evaluacion, edad, rango_edad, celf921_leng_tot_stand, celf921_leng_tot_percen, 
    celf921_leng_tot_interp, celf921_leng_recep_stand, celf921_leng_recep_perce, celf921_leng_recep_inter, celf921_leng_expre_stand, 
    celf921_leng_expre_perc, celf921_leng_expre_interpre, celf921_conte_stand, celf921_conte_perc, celf921_conte_interp, 
    celf921_mem_leng_stand, celf921_mem_leng_percent, celf921_mem_leng_inter, celf921_mem_trab_stand, celf921_mem_trab_percen, 
    celf921_mem_trab_interp, dat_clin_ref_ater, dat_clin_observ_clin, dat_clin_otra_observ, 
    sub_concep_sig_dir_bruto, 
    sub_concep_sig_dir_escal, sub_concep_sig_dir_perce, sub_concep_sig_dir_interpre, sub_record_oraci_brut, sub_record_oraci_escal, 
    sub_record_oraci_percen, sub_record_oraci_interpr, sub_formul_oraci_brut, sub_formul_oraci_esc, sub_formul_oraci_perc, 
    sub_formul_oraci_interpr, sub_clases_palab_recep_bru, sub_clases_palab_recep_esc, sub_clases_palab_recep_percen, sub_clases_palab_recep_interp, 
    sub_clas_pala_expre_brut, sub_clas_pala_expre_esc, sub_clas_pala_expre_percen, sub_clas_pala_expre_interpr,
    sub_clas_palab_suma_escalares, sub_clas_pala_tot_esc, 
    sub_clas_pala_tot_perce, sub_clas_pala_tot_inter, sub_defin_pala_brut, sub_defin_pala_esc, sub_defin_pala_perc, 
    sub_defin_pala_inter, sub_vocab_expr_bruto, sub_voc_expr_esc, sub_voc_expr_perc, sub_voc_expr_inter, 
    sub_enten_parra_bru, sub_enten_parra_esc, sub_enten_parra_perc, sub_enten_parra_inter, sub_rep_num_forw1o2_bru, 
    sub_rep_num_forw1o2_esc, sub_rep_num_forw1o2_perce, sub_rep_num_forw1o2_inter, sub_rep_num_backw1o2_bru, sub_rep_num_backw1o2_esc, 
    sub_rep_num_backw1o2_perc, sub_rep_num_backw1o2_inter, sub_rep_num1o2_tot_bru, sub_rep_num1o2_tot_esc, sub_rep_num1o2_tot_perce, 
    sub_rep_num1o2_tot_inter, sub_sec_famil1o2_bru, sub_sec_famil1o2_esc, sub_sec_famil1o2_perc, sub_sec_famil1o2_inter, 
    usuario_registro, fecha_registro
    
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
          ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
          ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
          ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
          ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
          ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
          ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
          ?, ?, ?, ?, ?, ?, ?, ?)"; //  77   

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

if ($stmt) {
    // --- 5. Enlace de Parámetros (bind_param) Final ---
    
    $tipos = "is" . str_repeat("s", 77); // 'i' para clave_paciente, 's' para el resto

    mysqli_stmt_bind_param($stmt, $tipos,
        $clave_paciente, $fecha_evaluacion, $edad, $rango_edad, $celf921_leng_tot_stand, $celf921_leng_tot_percen, $celf921_leng_tot_interp, 
        $celf921_leng_recep_stand, $celf921_leng_recep_perce, $celf921_leng_recep_inter, $celf921_leng_expre_stand, 
        $celf921_leng_expre_perc, $celf921_leng_expre_interpre, $celf921_conte_stand, $celf921_conte_perc, $celf921_conte_interp, 
        $celf921_mem_leng_stand, $celf921_mem_leng_percent, $celf921_mem_leng_inter, $celf921_mem_trab_stand, $celf921_mem_trab_percen, 
        $celf921_mem_trab_interp, $dat_clin_ref_ater, $dat_clin_observ_clin, $dat_clin_otra_observ, $sub_concep_sig_dir_bruto, 
        $sub_concep_sig_dir_escal, $sub_concep_sig_dir_perce, $sub_concep_sig_dir_interpre, $sub_record_oraci_brut, $sub_record_oraci_escal, 
        $sub_record_oraci_percen, $sub_record_oraci_interpr, $sub_formul_oraci_brut, $sub_formul_oraci_esc, $sub_formul_oraci_perc, 
        $sub_formul_oraci_interpr, $sub_clases_palab_recep_bru, $sub_clases_palab_recep_esc, $sub_clases_palab_recep_percen, 
        $sub_clases_palab_recep_interp, $sub_clas_pala_expre_brut, $sub_clas_pala_expre_esc, $sub_clas_pala_expre_percen, 
        $sub_clas_pala_expre_interpr, $sub_clas_palab_suma_escalares, $sub_clas_pala_tot_esc, $sub_clas_pala_tot_perce, $sub_clas_pala_tot_inter, 
        $sub_defin_pala_brut, $sub_defin_pala_esc, $sub_defin_pala_perc, $sub_defin_pala_inter, $sub_vocab_expr_bruto, 
        $sub_voc_expr_esc, $sub_voc_expr_perc, $sub_voc_expr_inter, $sub_enten_parra_bru, $sub_enten_parra_esc, $sub_enten_parra_perc, 
        $sub_enten_parra_inter, $sub_rep_num_forw1o2_bru, $sub_rep_num_forw1o2_esc, $sub_rep_num_forw1o2_perce, 
        $sub_rep_num_forw1o2_inter, $sub_rep_num_backw1o2_bru, $sub_rep_num_backw1o2_esc, $sub_rep_num_backw1o2_perc, 
        $sub_rep_num_backw1o2_inter, $sub_rep_num1o2_tot_bru, $sub_rep_num1o2_tot_esc, $sub_rep_num1o2_tot_perce, 
        $sub_rep_num1o2_tot_inter, $sub_sec_famil1o2_bru, $sub_sec_famil1o2_esc, $sub_sec_famil1o2_perc, $sub_sec_famil1o2_inter, 
        $usuario_registro, $fecha_registro
    );

    // --- 6. Ejecución y Redirección ---
    if (mysqli_stmt_execute($stmt)) {
        if (mysqli_stmt_affected_rows($stmt) == 1) {
            header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?m=celf921_insert_success");
        } else {
            error_log("ICELF9-21.php - No se afectaron filas. Clave Paciente: $clave_paciente. Error: " . mysqli_stmt_error($stmt));
            header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=celf921_insert_failed_no_rows");
        }
    } else {
        error_log("Error al ejecutar statement en ICELF9-21.php: " . mysqli_stmt_error($stmt));
        header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=celf921_execute_error");
    }
    mysqli_stmt_close($stmt);
} else {
    error_log("Error al preparar statement en ICELF9-21.php: " . mysqli_error($Con));
    header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=celf921_prepare_error");
}

Cerrar($Con);
exit;
?>