archivos php
This commit is contained in:
parent
9283ab7a41
commit
08b57689ef
|
@ -1,8 +1,6 @@
|
|||
<?php
|
||||
// Incluir el archivo de conexión
|
||||
require 'conexionbd.php';
|
||||
|
||||
// Obtener el artista y el día desde la solicitud (GET o POST)
|
||||
$artista = $_GET['artista'] ?? '';
|
||||
$dia = $_GET['dia'] ?? '';
|
||||
|
||||
|
@ -11,20 +9,12 @@ if (empty($artista) || empty($dia)) {
|
|||
}
|
||||
|
||||
try {
|
||||
// Consultar los asientos para el artista y día especificados
|
||||
$stmt = $conn->prepare("SELECT asiento, estado FROM asientos WHERE artista = :artista AND dia = :dia");
|
||||
$stmt = $conn->prepare("SELECT id, asiento, estado, precio FROM asientos WHERE artista = :artista AND dia = :dia");
|
||||
$stmt->execute([':artista' => $artista, ':dia' => $dia]);
|
||||
$asientos = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// Mensaje de depuración
|
||||
error_log("Consulta realizada: Artista = $artista, Día = $dia");
|
||||
|
||||
// Devolver los asientos en formato JSON
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(['success' => true, 'asientos' => $asientos]);
|
||||
} catch (PDOException $e) {
|
||||
// Mensaje de error
|
||||
error_log("Error al consultar los asientos: " . $e->getMessage());
|
||||
die(json_encode(['error' => 'Error al consultar los asientos.']));
|
||||
die(json_encode(['error' => 'Error al consultar los asientos: ' . $e->getMessage()]));
|
||||
}
|
||||
?>
|
|
@ -1,37 +1,47 @@
|
|||
<?php
|
||||
// Incluir el archivo de conexión a la base de datos
|
||||
require 'conexionbd.php';
|
||||
|
||||
// Obtener los datos de la solicitud (en formato JSON)
|
||||
$data = json_decode(file_get_contents('php://input'), true);
|
||||
|
||||
// Extraer los datos recibidos
|
||||
$artista = $data['artista'] ?? '';
|
||||
$dia = $data['dia'] ?? '';
|
||||
$asientos = $data['asientos'] ?? [];
|
||||
|
||||
// Validar que los datos estén completos
|
||||
if (empty($artista) || empty($dia) || empty($asientos)) {
|
||||
die(json_encode(['error' => 'Faltan parámetros (artista, dia, asientos).']));
|
||||
}
|
||||
|
||||
try {
|
||||
// Preparar la consulta para actualizar el estado de los asientos
|
||||
$stmt = $conn->prepare("UPDATE asientos SET estado = 'vendido' WHERE artista = :artista AND dia = :dia AND asiento = :asiento");
|
||||
// Iniciar una transacción
|
||||
$conn->beginTransaction();
|
||||
|
||||
// Registrar la venta y actualizar el estado del asiento
|
||||
$stmtVenta = $conn->prepare("INSERT INTO ventas (asiento_id, precio) VALUES (:asiento_id, :precio)");
|
||||
$stmtAsiento = $conn->prepare("UPDATE asientos SET estado = 'vendido' WHERE id = :id");
|
||||
|
||||
// Actualizar cada asiento en la lista
|
||||
foreach ($asientos as $asiento) {
|
||||
$stmt->execute([
|
||||
':artista' => $artista,
|
||||
':dia' => $dia,
|
||||
':asiento' => $asiento
|
||||
]);
|
||||
// Obtener el ID y precio del asiento
|
||||
$stmt = $conn->prepare("SELECT id, precio FROM asientos WHERE artista = :artista AND dia = :dia AND asiento = :asiento");
|
||||
$stmt->execute([':artista' => $artista, ':dia' => $dia, ':asiento' => $asiento]);
|
||||
$asientoData = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($asientoData) {
|
||||
// Registrar la venta
|
||||
$stmtVenta->execute([
|
||||
':asiento_id' => $asientoData['id'],
|
||||
':precio' => $asientoData['precio']
|
||||
]);
|
||||
|
||||
// Marcar el asiento como vendido
|
||||
$stmtAsiento->execute([':id' => $asientoData['id']]);
|
||||
}
|
||||
}
|
||||
|
||||
// Devolver una respuesta de éxito
|
||||
echo json_encode(['success' => true, 'message' => 'Asientos vendidos actualizados correctamente.']);
|
||||
// Confirmar la transacción
|
||||
$conn->commit();
|
||||
echo json_encode(['success' => true, 'message' => 'Venta registrada correctamente.']);
|
||||
} catch (PDOException $e) {
|
||||
// Devolver un mensaje de error en caso de fallo
|
||||
die(json_encode(['error' => 'Error al actualizar los asientos: ' . $e->getMessage()]));
|
||||
// Revertir la transacción en caso de error
|
||||
$conn->rollBack();
|
||||
die(json_encode(['error' => 'Error al registrar la venta: ' . $e->getMessage()]));
|
||||
}
|
||||
?>
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
require 'conexionbd.php';
|
||||
|
||||
$data = json_decode(file_get_contents('php://input'), true);
|
||||
$artista = $data['artista'] ?? '';
|
||||
$dias = $data['dias'] ?? [];
|
||||
$filas = $data['filas'] ?? 0;
|
||||
$columnas = $data['columnas'] ?? 0;
|
||||
|
||||
if (empty($artista) || empty($dias) || $filas <= 0 || $columnas <= 0) {
|
||||
die(json_encode(['error' => 'Faltan parámetros (artista, dias, filas, columnas).']));
|
||||
}
|
||||
|
||||
try {
|
||||
// Verificar si ya existen asientos para el artista y los días especificados
|
||||
$stmt = $conn->prepare("SELECT COUNT(*) AS total FROM asientos WHERE artista = :artista AND dia IN (" . implode(',', $dias) . ")");
|
||||
$stmt->execute([':artista' => $artista]);
|
||||
$resultado = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($resultado['total'] > 0) {
|
||||
echo json_encode(['message' => 'Los asientos ya existen en la base de datos.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Insertar los asientos para cada día
|
||||
$stmt = $conn->prepare("INSERT INTO asientos (artista, dia, asiento, estado, precio) VALUES (:artista, :dia, :asiento, 'disponible', :precio)");
|
||||
|
||||
foreach ($dias as $dia) {
|
||||
for ($i = 1; $i <= $filas; $i++) {
|
||||
for ($j = 0; $j < $columnas; $j++) {
|
||||
$asiento = $i . chr(65 + $j); // Ej: 1A, 1B, ..., 10L
|
||||
$precio = obtenerPrecio($i); // Función para calcular el precio según la fila
|
||||
$stmt->execute([
|
||||
':artista' => $artista,
|
||||
':dia' => $dia,
|
||||
':asiento' => $asiento,
|
||||
':precio' => $precio
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode(['message' => 'Asientos insertados correctamente.']);
|
||||
} catch (PDOException $e) {
|
||||
die(json_encode(['error' => 'Error al insertar los asientos: ' . $e->getMessage()]));
|
||||
}
|
||||
|
||||
// Función para calcular el precio según la fila
|
||||
function obtenerPrecio($fila) {
|
||||
if ($fila >= 1 && $fila <= 3) return 4500;
|
||||
if ($fila >= 4 && $fila <= 7) return 2600;
|
||||
if ($fila >= 8 && $fila <= 10) return 1300;
|
||||
return 0;
|
||||
}
|
||||
?>
|
Loading…
Reference in New Issue