74 lines
3.1 KiB
PHP

<?php
include('../include/headscript.php');
include("../class/company.php");
use PhpOffice\PhpSpreadsheet\IOFactory;
require '../../vendor/autoload.php';
// Connessione al database
$conn = new mysqli($servername, $username, $password, $database);
// Controllo connessione
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['file'])) {
$fileTmpPath = $_FILES['file']['tmp_name'];
$fileName = $_FILES['file']['name'];
$fileExtension = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
if ($fileExtension === 'xlsx' || $fileExtension === 'xls') {
try {
$spreadsheet = IOFactory::load($fileTmpPath);
$sheet = $spreadsheet->getActiveSheet();
$rows = $sheet->toArray();
// Trova gli indici delle colonne dall'header
$header = $rows[0]; // Prima riga
$colIndex = array_flip($header); // Map header to column index
$reportNoIndex = isset($colIndex['Report no.']) ? $colIndex['Report no.'] : 'S';
$inDateIndex = isset($colIndex['IN Date']) ? $colIndex['IN Date'] : 'T';
$dueDateIndex = isset($colIndex['DUE Date']) ? $colIndex['DUE Date'] : 'U';
$outDateIndex = isset($colIndex['OUT Date']) ? $colIndex['OUT Date'] : 'V';
foreach ($rows as $index => $row) {
if ($index == 0) continue; // Salta l'intestazione
// Ottieni i dati dalle colonne specificate
$reportNo = $conn->real_escape_string(trim($row[$reportNoIndex]));
$inDate = isset($row[$inDateIndex]) ? date('Y-m-d', strtotime(str_replace('/', '-', $row[$inDateIndex]))) : null;
$dueDate = isset($row[$dueDateIndex]) ? date('Y-m-d', strtotime(str_replace('/', '-', $row[$dueDateIndex]))) : null;
$outDate = isset($row[$outDateIndex]) ? date('Y-m-d', strtotime(str_replace('/', '-', $row[$outDateIndex]))) : null;
// Controlla se il report esiste già
$checkQuery = "SELECT id FROM reportsbydate WHERE report_no = '$reportNo'";
$result = $conn->query($checkQuery);
if ($result->num_rows == 0 && !empty($reportNo)) {
// Inserisci solo se il report non esiste e il Report No è valido
$insertQuery = "
INSERT INTO reportsbydate (report_no, in_date, due_date, out_date)
VALUES ('$reportNo', " .
($inDate ? "'$inDate'" : "NULL") . ", " .
($dueDate ? "'$dueDate'" : "NULL") . ", " .
($outDate ? "'$outDate'" : "NULL") . ")";
$conn->query($insertQuery);
}
}
echo "File imported successfully.";
} catch (Exception $e) {
echo "Error processing file: " . $e->getMessage();
}
} else {
echo "Invalid file format. Please upload an Excel file.";
}
} else {
echo "No file uploaded.";
}
$conn->close();