<?php
// Mostrar errores para desarrollo
error_reporting(E_ALL);
ini_set('display_errors', 1);

require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;

// Incluir el archivo de conexión
include 'conexion.php'; // Asegúrate de que la ruta sea correcta

// Verificar si se subió el archivo correctamente
if ($_FILES["archivo_excel"]["error"] == 0) {
    $file_name = $_FILES["archivo_excel"]["tmp_name"];
    $spreadsheet = IOFactory::load($file_name);
    $sheet = $spreadsheet->getActiveSheet();
    $data = $sheet->toArray();

    // Omitir la primera fila (encabezados)
    $data = array_slice($data, 1);

    // Contadores
    $insertedCount = 0;
    $duplicateCount = 0;

    // Preparar la consulta de verificación de duplicados
    $stmt_check = $conn->prepare("SELECT COUNT(*) FROM series WHERE serie = ?");
    $stmt_insert = $conn->prepare("INSERT INTO series (serie, fecha_registro) VALUES (?, CURDATE())");

    // Recorrer los datos del archivo Excel
    foreach ($data as $row) {
        $serie = trim($row[0]); // Primera columna

        if (!empty($serie)) {
            // Verificar si la serie ya existe en la base de datos
            $stmt_check->bind_param("s", $serie);
            $stmt_check->execute();
            $stmt_check->store_result(); // IMPORTANTE para evitar "Commands out of sync"
            $stmt_check->bind_result($count);
            $stmt_check->fetch();

            if ($count > 0) {
                $duplicateCount++;
            } else {
                $stmt_insert->bind_param("s", $serie);
                if ($stmt_insert->execute()) {
                    $insertedCount++;
                }
            }

            $stmt_check->free_result(); // Libera el resultado para la siguiente iteración
        }
    }

    // Enviar la respuesta con los resultados
    echo json_encode([
        'status' => 'success',
        'message' => 'Proceso completado.',
        'inserted' => $insertedCount,
        'duplicates' => $duplicateCount
    ]);
} else {
    echo json_encode([
        'status' => 'error',
        'message' => 'Error al subir el archivo.'
    ]);
}

// Cerrar conexión
$conn->close();
?>
