42 lines
1.3 KiB
PHP
42 lines
1.3 KiB
PHP
<?php
|
|
include 'conexion.php';
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
$rawData = file_get_contents("php://input");
|
|
$data = json_decode($rawData, true);
|
|
|
|
if (!isset($data['asientos']) || !is_array($data['asientos'])) {
|
|
echo json_encode(["error" => "Datos inválidos"]);
|
|
exit;
|
|
}
|
|
|
|
$conexionBD->begin_transaction();
|
|
|
|
try {
|
|
foreach ($data['asientos'] as $idAsiento) {
|
|
// Verificar si el asiento sigue disponible
|
|
$stmtVerificar = $conexionBD->prepare("SELECT estado FROM asientos WHERE id_asiento = ?");
|
|
$stmtVerificar->bind_param("i", $idAsiento);
|
|
$stmtVerificar->execute();
|
|
$resultado = $stmtVerificar->get_result()->fetch_assoc();
|
|
|
|
if (!$resultado || $resultado['estado'] !== 'disponible') {
|
|
throw new Exception("El asiento ID $idAsiento ya está ocupado o no existe.");
|
|
}
|
|
|
|
// Marcar el asiento como ocupado
|
|
$stmtActualizar = $conexionBD->prepare("UPDATE asientos SET estado = 'ocupado' WHERE id_asiento = ?");
|
|
$stmtActualizar->bind_param("i", $idAsiento);
|
|
$stmtActualizar->execute();
|
|
}
|
|
|
|
$conexionBD->commit();
|
|
echo json_encode(["success" => true]);
|
|
} catch (Exception $e) {
|
|
$conexionBD->rollback();
|
|
echo json_encode(["error" => $e->getMessage()]);
|
|
}
|
|
exit;
|
|
?>
|