80 lines
2.6 KiB
PHP
80 lines
2.6 KiB
PHP
<?php
|
|
include 'conexion.php';
|
|
|
|
header('Content-Type: application/json');
|
|
error_reporting(E_ALL);
|
|
ini_set('display_errors', 1);
|
|
|
|
// Leer el JSON enviado
|
|
$datos = json_decode(file_get_contents("php://input"), true);
|
|
|
|
if ($datos === null) {
|
|
echo json_encode(['insercionCorrecta' => false, 'error' => 'Error al decodificar JSON']);
|
|
exit;
|
|
}
|
|
|
|
// Verificar que los datos requeridos estén presentes
|
|
if (!isset($datos['nombre_concierto'], $datos['zonas'])) {
|
|
echo json_encode(['insercionCorrecta' => false, 'error' => 'Faltan datos requeridos']);
|
|
exit;
|
|
}
|
|
|
|
// Extraer valores
|
|
$nombre_concierto = $datos['nombre_concierto'];
|
|
$artista = $datos['artista'];
|
|
$fecha = $datos['fecha'];
|
|
$calle = $datos['calle'];
|
|
$colonia = $datos['colonia'];
|
|
$numero_direccion = $datos['numero_direccion'];
|
|
$codigo_postal = $datos['codigo_postal'];
|
|
$estado = $datos['estado'];
|
|
$capacidad_total = $datos['capacidad_total'];
|
|
$zonas = $datos['zonas'];
|
|
|
|
$conexionBD->begin_transaction();
|
|
|
|
try {
|
|
// Insertar el concierto
|
|
$consulta = "INSERT INTO conciertos (nombre_concierto, artista, fecha, calle, colonia, numero_direccion, codigo_postal, estado, capacidad_total)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
|
$stmt = $conexionBD->prepare($consulta);
|
|
$stmt->bind_param("ssssssssi", $nombre_concierto, $artista, $fecha, $calle, $colonia, $numero_direccion, $codigo_postal, $estado, $capacidad_total);
|
|
$stmt->execute();
|
|
|
|
$id_concierto = $conexionBD->insert_id;
|
|
$stmt->close();
|
|
|
|
// Insertar zonas y sus asientos
|
|
$consulta_zonas = "INSERT INTO zonas (id_concierto, nombre_zona, capacidad, precio) VALUES (?, ?, ?, ?)";
|
|
$stmt_zonas = $conexionBD->prepare($consulta_zonas);
|
|
|
|
$consulta_asientos = "INSERT INTO asientos (id_zona, numero_asiento, estado) VALUES (?, ?, 'disponible')";
|
|
$stmt_asientos = $conexionBD->prepare($consulta_asientos);
|
|
|
|
foreach ($zonas as $zona) {
|
|
$stmt_zonas->bind_param("isid", $id_concierto, $zona['nombre_zona'], $zona['capacidad'], $zona['precio']);
|
|
$stmt_zonas->execute();
|
|
|
|
$id_zona = $conexionBD->insert_id;
|
|
|
|
// Insertar asientos
|
|
for ($i = 1; $i <= $zona['capacidad']; $i++) {
|
|
$stmt_asientos->bind_param("ii", $id_zona, $i);
|
|
$stmt_asientos->execute();
|
|
}
|
|
}
|
|
|
|
$stmt_zonas->close();
|
|
$stmt_asientos->close();
|
|
$conexionBD->commit();
|
|
|
|
echo json_encode(['insercionCorrecta' => true, 'id_concierto' => $id_concierto]);
|
|
|
|
} catch (Exception $e) {
|
|
$conexionBD->rollback();
|
|
echo json_encode(['insercionCorrecta' => false, 'error' => $e->getMessage()]);
|
|
}
|
|
|
|
$conexionBD->close();
|
|
?>
|