<?php
session_start();
date_default_timezone_set('America/Mexico_City');

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": $urlMenuCorrespondiente = "../MenuPasante.php"; break;
    default: header("Location: ../login.php?m=6"); exit;
}

include("../Php/Conexion.php");
$Con = Conectar();

if (!$Con) {
    header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=pls5_db_conn_error_insert");
    exit;
}

$usuario_registro = $_SESSION['Usuario'];
$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;
$edad_corregida =  isset($_POST['edad_corregida']) ? $_POST['edad_corregida'] : null;
$rango_edad =  isset($_POST['rango_edad']) ? $_POST['rango_edad'] : null;

$comp_audi_punt_bruta = isset($_POST['comp_audi_punt_bruta']) ? $_POST['comp_audi_punt_bruta'] : null;
$compren_audit_punt_stand = isset($_POST['compren_audit_punt_stand']) ? $_POST['compren_audit_punt_stand'] : null;
$compre_audit_rango_percent = isset($_POST['compre_audit_rango_percent']) ? $_POST['compre_audit_rango_percent'] : null;
$comp_audit_interpre = isset($_POST['comp_audit_interpre']) ? $_POST['comp_audit_interpre'] : null;
$expre_comuni_puntua_bruta = isset($_POST['expre_comuni_puntua_bruta']) ? $_POST['expre_comuni_puntua_bruta'] : null;
$expr_comun_punt_estandar = isset($_POST['expr_comun_punt_estandar']) ? $_POST['expr_comun_punt_estandar'] : null;
$expr_comunic_rango_percent = isset($_POST['expr_comunic_rango_percent']) ? $_POST['expr_comunic_rango_percent'] : null;
$expr_comunic_interpret = isset($_POST['expr_comunic_interpret']) ? $_POST['expr_comunic_interpret'] : null;
$leng_tota_punt_bruta = isset($_POST['leng_tota_punt_bruta']) ? $_POST['leng_tota_punt_bruta'] : null;
$leng_tota_punt_standa_sum = isset($_POST['leng_tota_punt_standa_sum']) ? $_POST['leng_tota_punt_standa_sum'] : null;
$leng_tota_punt_standa = isset($_POST['leng_tota_punt_standa']) ? $_POST['leng_tota_punt_standa'] : null;
$leng_tota_rang_percent = isset($_POST['leng_tota_rang_percent']) ? $_POST['leng_tota_rang_percent'] : null;
$lengua_tot_interpret = isset($_POST['lengua_tot_interpret']) ? $_POST['lengua_tot_interpret'] : null;
$dato_clini_refer_tera = isset($_POST['dato_clini_referir_terapia']) ? $_POST['dato_clini_referir_terapia'] : null; // Corregido el name
$datos_clini_observ_clini = isset($_POST['datos_clini_observ_clini']) ? $_POST['datos_clini_observ_clini'] : '';
$dat_clini_otra_observa = isset($_POST['dat_clini_otra_observa']) ? $_POST['dat_clini_otra_observa'] : '';
$fecha_registro = date('Y-m-d H:i:s');


if (empty($clave_paciente) || empty($fecha_evaluacion) || empty($edad)) {
    header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=pls5_missing_data");
    exit;
}

$SQL = "INSERT INTO pls5 (
    clave_paciente, fecha_evaluacion, edad, edad_corregida, rango_edad,
    comp_audi_punt_bruta, compren_audit_punt_stand, compre_audit_rango_percent, comp_audit_interpre,
    expre_comuni_puntua_bruta, expr_comun_punt_estandar, expr_comunic_rango_percent, expr_comunic_interpret,
    leng_tota_punt_bruta, leng_tota_punt_standa_sum, leng_tota_punt_standa, leng_tota_rang_percent, lengua_tot_interpret,
    dato_clini_refer_tera, datos_clini_observ_clini, dat_clini_otra_observa, usuario_registro, fecha_registro
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

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

if ($stmt) {
    // ===== INICIO DE LA CORRECCIÓN CLAVE EN IPLS.php =====
    // La cadena de tipos debe tener 21 caracteres: 1 'i' y 20 's'.
    $tipos = "issssssssssssssssssssss"; 
    // ===== FIN DE LA CORRECCIÓN CLAVE EN IPLS.php =====

    mysqli_stmt_bind_param($stmt, $tipos,
        $clave_paciente, $fecha_evaluacion, $edad, $edad_corregida, $rango_edad, 
        $comp_audi_punt_bruta, $compren_audit_punt_stand, $compre_audit_rango_percent, $comp_audit_interpre,
        $expre_comuni_puntua_bruta, $expr_comun_punt_estandar, $expr_comunic_rango_percent, $expr_comunic_interpret,
        $leng_tota_punt_bruta, $leng_tota_punt_standa_sum, $leng_tota_punt_standa, $leng_tota_rang_percent, $lengua_tot_interpret,
        $dato_clini_refer_tera, $datos_clini_observ_clini, $dat_clini_otra_observa, $usuario_registro, $fecha_registro
    );

    if (mysqli_stmt_execute($stmt)) {
        if (mysqli_stmt_affected_rows($stmt) == 1) {
            header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?m=pls5_insert_success");
        } else {
            error_log("IPLS.php - No se afectaron filas. Clave Paciente: $clave_paciente. Error stmt: " . mysqli_stmt_error($stmt));
            header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=pls5_insert_failed_no_rows");
        }
    } else {
        error_log("Error al ejecutar statement en IPLS.php: " . mysqli_stmt_error($stmt));
        header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=pls5_execute_error");
    }
    mysqli_stmt_close($stmt);
} else {
    error_log("Error al preparar statement en IPLS.php: " . mysqli_error($Con));
    header("Location: " . htmlspecialchars($urlMenuCorrespondiente) . "?n=pls5_prepare_error");
}

Cerrar($Con);
exit;
?>