<?php include('include/headscript.php'); ?>
<?php

// Assicurati di avere PhpSpreadsheet installato e includi l'autoloader di Composer
require '../../vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Controlla se il file è stato caricato
    if (isset($_FILES['file']) && $_FILES['file']['error'] == 0) {
        // Dettagli del file
        $originalFileName = $_FILES['file']['name'];
        $fileTmpName = $_FILES['file']['tmp_name'];

        // Genera un timestamp per creare un nome univoco
        $timestamp = time();
        $fileExtension = pathinfo($originalFileName, PATHINFO_EXTENSION); // Ottieni l'estensione del file
        $newFileName = $timestamp . '_' . pathinfo($originalFileName, PATHINFO_FILENAME) . '.' . $fileExtension; // Nome file rinominato

        $fileDestination = 'xlsupload/' . $newFileName;

        // Muovi il file caricato nella cartella di destinazione con il nuovo nome
        if (move_uploaded_file($fileTmpName, $fileDestination)) {
            // Leggi il file XLS utilizzando PhpSpreadsheet
            try {
                $spreadsheet = IOFactory::load($fileDestination);
                $worksheet = $spreadsheet->getActiveSheet();
                $rows = $worksheet->toArray();

                // Variabili di sistema
                $uniquecode = $timestamp; // Usa il timestamp come codice unico
                $dateimport = date('Y-m-d H:i:s'); // Data e ora correnti
                $iduserlogin = $_SESSION['iduserlogin']; // Ottieni l'ID dell'utente loggato
                $conn = new mysqli($servername, $username, $password, $database);

                // Inserisci i dati nel database hist_rslxls per tracciare l'importazione
                $stmtHist = $conn->prepare("INSERT INTO hist_rslxls (importfilename, uniquecode, dateimport, iduser) VALUES (?, ?, ?, ?)");
                $stmtHist->bind_param('sssi', $newFileName, $uniquecode, $dateimport, $iduserlogin);

                if (!$stmtHist->execute()) {
                    die('Errore nell\'inserimento della cronologia: ' . $stmtHist->error);
                }

                // Itera su ciascuna riga e inseriscila nel database rslxls
                foreach ($rows as $key => $row) {
                    // Salta la prima riga se è un'intestazione
                    if ($key == 0) continue;

                    // Prepara la query SQL per la tabella rslxls
                    $stmt = $conn->prepare("INSERT INTO rslxls (importfilename, uniquecode, dateimport, scope, material_category, material_subcategory, finished_product, age, parameter_family, parameter, cas, unit_of_measure, minimum_limit, test_method, country, additional_requirement_note) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");

                    // Bind dei valori (aggiungendo il nome del file, l'uniquecode e la data di importazione)
                    $stmt->bind_param(
                        'ssssssssssssssss',
                        $newFileName, // Usa il nuovo nome del file
                        $uniquecode,
                        $dateimport,
                        $row[0],
                        $row[1],
                        $row[2],
                        $row[3],
                        $row[4],
                        $row[5],
                        $row[6],
                        $row[7],
                        $row[8],
                        $row[9],
                        $row[10],
                        $row[11],
                        $row[12]
                    );

                    // Esegui la query
                    if (!$stmt->execute()) {
                        die('Errore nell\'inserimento dei dati: ' . $stmt->error);
                    }
                }

                // Reindirizza l'utente alla pagina xlstorsl.php dopo l'importazione
                header("Location: xlstorsl.php");
                exit();
            } catch (Exception $e) {
                die('Errore nell\'elaborazione del file: ' . $e->getMessage());
            }
        } else {
            echo 'Errore nel caricamento del file.';
        }
    } else {
        echo 'Nessun file selezionato o errore nel caricamento.';
    }
}
?>
