79 lines
2.6 KiB
PHP
79 lines
2.6 KiB
PHP
<?php
|
|
// Abilita visualizzazione errori PHP (solo per debug, disabilita in produzione)
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
error_reporting(E_ALL);
|
|
|
|
// Includi configurazione database
|
|
require_once('include/headscript.php');
|
|
|
|
// Inizializza log
|
|
$logFile = 'update_expired_lessons_log.txt';
|
|
$logMessage = "Esecuzione script aggiornamento lezioni scadute: " . date('Y-m-d H:i:s') . "\n";
|
|
|
|
// Connessione al database
|
|
$conn = new mysqli($servername, $username, $password, $dbname);
|
|
if ($conn->connect_error) {
|
|
$logMessage .= "Connessione al database fallita: " . $conn->connect_error . "\n";
|
|
file_put_contents($logFile, $logMessage, FILE_APPEND);
|
|
die("Connessione al database fallita: " . $conn->connect_error);
|
|
}
|
|
|
|
$logMessage .= "Database connesso: $dbname\n";
|
|
|
|
// Query per trovare ordini scaduti
|
|
$query_orders = "SELECT idorderbook, order_id, expireon
|
|
FROM orderbook
|
|
WHERE expireon < NOW()";
|
|
$result_orders = $conn->query($query_orders);
|
|
|
|
if (!$result_orders) {
|
|
$logMessage .= "Errore nella query degli ordini scaduti: " . $conn->error . "\n";
|
|
file_put_contents($logFile, $logMessage, FILE_APPEND);
|
|
$conn->close();
|
|
exit;
|
|
}
|
|
|
|
$logMessage .= "Ordini scaduti trovati: " . $result_orders->num_rows . "\n";
|
|
|
|
$updated_lessons = 0;
|
|
$processed_orders = array();
|
|
|
|
// Aggiorna le lezioni per ogni ordine scaduto
|
|
while ($order = $result_orders->fetch_assoc()) {
|
|
$idorderbook = $order['idorderbook'];
|
|
$processed_orders[] = $idorderbook;
|
|
$logMessage .= "Elaborazione ordine: idorderbook = $idorderbook, expireon = {$order['expireon']}\n";
|
|
|
|
// Query per aggiornare le lezioni non completate e non perse
|
|
$update_query = "UPDATE bookingclass
|
|
SET expirylesson = 'Y'
|
|
WHERE idorder = ?
|
|
AND status != 'completed'
|
|
AND lostlesson != 'Y'
|
|
AND expirylesson != 'Y'";
|
|
$stmt = $conn->prepare($update_query);
|
|
if (!$stmt) {
|
|
$logMessage .= "Errore preparazione query per idorderbook $idorderbook: " . $conn->error . "\n";
|
|
continue;
|
|
}
|
|
|
|
$stmt->bind_param("i", $idorderbook);
|
|
$stmt->execute();
|
|
|
|
$affected_rows = $stmt->affected_rows;
|
|
$updated_lessons += $affected_rows;
|
|
$logMessage .= "Lezioni aggiornate per idorderbook $idorderbook: $affected_rows\n";
|
|
|
|
$stmt->close();
|
|
}
|
|
|
|
$logMessage .= "Totale lezioni aggiornate: $updated_lessons\n";
|
|
$logMessage .= "Ordini elaborati: " . implode(", ", $processed_orders) . "\n";
|
|
|
|
// Scrivi il log
|
|
file_put_contents($logFile, $logMessage, FILE_APPEND);
|
|
|
|
// Chiudi la connessione
|
|
$conn->close();
|