52 lines
1.4 KiB
PHP
52 lines
1.4 KiB
PHP
<?php
|
|
session_start();
|
|
include('include/headscript.php');
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
if (!isset($_SESSION['iduserlogin'])) {
|
|
echo json_encode(['success' => false, 'message' => 'Non autorizzato']);
|
|
exit;
|
|
}
|
|
|
|
$dbHandler = DBHandlerSelect::getInstance();
|
|
$pdo = $dbHandler->getConnection();
|
|
|
|
$booking_id = (int)($_POST['booking_id'] ?? 0);
|
|
$user_id = (int)$_SESSION['iduserlogin'];
|
|
|
|
if ($booking_id <= 0) {
|
|
echo json_encode(['success' => false, 'message' => 'ID prenotazione non valido']);
|
|
exit;
|
|
}
|
|
|
|
// Verifica che la prenotazione appartenga all'utente e sia cancellabile
|
|
$stmt = $pdo->prepare("
|
|
SELECT sb.id
|
|
FROM session_bookings sb
|
|
JOIN class_sessions cs ON sb.session_id = cs.id
|
|
WHERE sb.id = ?
|
|
AND sb.user_id = ?
|
|
AND sb.status = 'booked'
|
|
AND cs.session_date > DATE_ADD(NOW(), INTERVAL 24 HOUR)
|
|
");
|
|
$stmt->execute([$booking_id, $user_id]);
|
|
if (!$stmt->fetch()) {
|
|
echo json_encode(['success' => false, 'message' => 'Prenotazione non trovata, non tua, già annullata o non più cancellabile (entro 24 ore)']);
|
|
exit;
|
|
}
|
|
|
|
// Aggiorna status a 'cancelled'
|
|
$stmt = $pdo->prepare("
|
|
UPDATE session_bookings
|
|
SET status = 'cancelled',
|
|
updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = ?
|
|
");
|
|
$success = $stmt->execute([$booking_id]);
|
|
|
|
echo json_encode([
|
|
'success' => $success,
|
|
'message' => $success ? 'Prenotazione annullata con successo' : 'Errore durante l\'aggiornamento'
|
|
]);
|