47 lines
1.3 KiB
PHP
47 lines
1.3 KiB
PHP
<?php
|
|
require_once('include/headscript.php');
|
|
|
|
/**
|
|
* Elimina completamente una classe schedulata (serviceschedule) insieme
|
|
* a tutte le sue prenotazioni (bookingclass), in un'unica transazione.
|
|
*
|
|
* Script di sola logica: nessun output, redirect finale.
|
|
*/
|
|
$pdo = DBHandlerSelect::getInstance()->getConnection();
|
|
|
|
$idserviceschedule = isset($_GET['idserviceschedule']) ? (int) $_GET['idserviceschedule'] : 0;
|
|
|
|
if ($idserviceschedule <= 0) {
|
|
header('Location: adminpanel.php?error=invalid');
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
$pdo->beginTransaction();
|
|
|
|
// 1) Rimuove le prenotazioni collegate a questa schedulazione
|
|
$delBookings = $pdo->prepare(
|
|
"DELETE FROM bookingclass WHERE idserviceschedule = :id"
|
|
);
|
|
$delBookings->execute([':id' => $idserviceschedule]);
|
|
|
|
// 2) Rimuove la schedulazione stessa
|
|
$delSchedule = $pdo->prepare(
|
|
"DELETE FROM serviceschedule WHERE idserviceschedule = :id"
|
|
);
|
|
$delSchedule->execute([':id' => $idserviceschedule]);
|
|
|
|
$pdo->commit();
|
|
|
|
header('Location: adminpanel.php?success=4');
|
|
exit;
|
|
} catch (Throwable $ex) {
|
|
if ($pdo->inTransaction()) {
|
|
$pdo->rollBack();
|
|
}
|
|
// Log server-side, messaggio generico all'utente
|
|
error_log('removeschedule error: ' . $ex->getMessage());
|
|
header('Location: adminpanel.php?error=delete');
|
|
exit;
|
|
}
|