<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

session_start();
require_once("conexion.php");

if (!isset($_SESSION['ingresado']) || $_SESSION['ingresado'] != true) {
    header("Location: login.php");
    exit();
}

// Establecer UTF-8
mysqli_set_charset($conexion, "utf8mb4");

if (!isset($_FILES['archivo']) || $_FILES['archivo']['error'] != 0) {
    die("Error al subir archivo");
}

$archivo = fopen($_FILES['archivo']['tmp_name'], "r");

if (!$archivo) {
    die("No se pudo abrir el archivo");
}

// Detectar separador automáticamente
$primera_linea = fgets($archivo);
if (strpos($primera_linea, "\t") !== false) {
    $separador = "\t";
} elseif (strpos($primera_linea, ";") !== false) {
    $separador = ";";
} else {
    $separador = ",";
}

// Volver al inicio
fseek($archivo, 0);

/* Saltar encabezado */
fgetcsv($archivo, 10000, $separador);

$importados = 0;
$errores = 0;
$cursos_creados = 0;

while (($data = fgetcsv($archivo, 10000, $separador)) !== FALSE) {

    if (count($data) < 3) {
        $errores++;
        continue;
    }

    // CORREGIR CODIFICACIÓN - Detectar si está en ANSI y convertir a UTF-8
    $curso = trim($data[0]);
    $paralelo = trim($data[1]);
    $nombreCompleto = trim($data[2]);
    
    // Si contiene caracteres raros, convertirlos
    if (preg_match('/[\x80-\xFF]/', $curso)) {
        $curso = mb_convert_encoding($curso, 'UTF-8', 'ISO-8859-1');
    }
    if (preg_match('/[\x80-\xFF]/', $paralelo)) {
        $paralelo = mb_convert_encoding($paralelo, 'UTF-8', 'ISO-8859-1');
    }
    if (preg_match('/[\x80-\xFF]/', $nombreCompleto)) {
        $nombreCompleto = mb_convert_encoding($nombreCompleto, 'UTF-8', 'ISO-8859-1');
    }

    if ($curso == "" || $paralelo == "" || $nombreCompleto == "") {
        $errores++;
        continue;
    }

    /* Buscar curso */
    $buscarCurso = mysqli_query(
        $conexion,
        "SELECT id_curso
         FROM curso
         WHERE nombre_curso='$curso'
         AND paralelo='$paralelo'"
    );

    /* Crear curso automáticamente si no existe */
    if (mysqli_num_rows($buscarCurso) == 0) {

        mysqli_query(
            $conexion,
            "INSERT INTO curso(nombre_curso, paralelo)
             VALUES('$curso', '$paralelo')"
        );

        $id_curso = mysqli_insert_id($conexion);
        $cursos_creados++;

    } else {

        $filaCurso = mysqli_fetch_assoc($buscarCurso);
        $id_curso = $filaCurso['id_curso'];
    }

    /* Separar nombre y apellido */
    $partes = preg_split('/\s+/', $nombreCompleto);

    if (count($partes) >= 2) {
        $apellido = array_shift($partes);
        $nombre = implode(" ", $partes);
    } else {
        $apellido = "";
        $nombre = $nombreCompleto;
    }

    /* Verificar duplicado */
    $verificar = mysqli_query(
        $conexion,
        "SELECT id_estudiante
         FROM estudiante
         WHERE nombre='$nombre'
         AND apellido='$apellido'
         AND id_curso='$id_curso'"
    );

    if (mysqli_num_rows($verificar) > 0) {
        continue;
    }

    /* Guardar estudiante */
    $guardar = mysqli_query(
        $conexion,
        "INSERT INTO estudiante(nombre, apellido, id_curso)
         VALUES('$nombre', '$apellido', '$id_curso')"
    );

    if ($guardar) {
        $importados++;
    } else {
        $errores++;
    }
}

fclose($archivo);

echo "<script>
alert(
'Importación completada\\n\\n' +
'Cursos creados: $cursos_creados\\n' +
'Estudiantes importados: $importados\\n' +
'Errores: $errores'
);
window.location='importar.php';
</script>";
?>