yogibook_aury_new/public/update_expired_lessons.php
2025-10-15 20:59:49 +02:00

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();