Actualizar Interfaz/control/vender_asientos.php

This commit is contained in:
maria.ruiz 2025-03-13 06:32:39 +00:00
parent a47c35ffc7
commit 2da4802310
1 changed files with 41 additions and 47 deletions
Interfaz/control

View File

@ -1,47 +1,41 @@
<?php
require 'conexionbd.php';
$data = json_decode(file_get_contents('php://input'), true);
$artista = $data['artista'] ?? '';
$dia = $data['dia'] ?? '';
$asientos = $data['asientos'] ?? [];
if (empty($artista) || empty($dia) || empty($asientos)) {
die(json_encode(['error' => 'Faltan parámetros (artista, dia, asientos).']));
}
try {
// 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");
foreach ($asientos as $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']]);
}
}
// Confirmar la transacción
$conn->commit();
echo json_encode(['success' => true, 'message' => 'Venta registrada correctamente.']);
} catch (PDOException $e) {
// Revertir la transacción en caso de error
$conn->rollBack();
die(json_encode(['error' => 'Error al registrar la venta: ' . $e->getMessage()]));
}
?>
<?php
require 'conexionbd.php';
$data = json_decode(file_get_contents('php://input'), true);
$artista = $data['artista'] ?? '';
$dia = $data['dia'] ?? '';
$asientos = $data['asientos'] ?? [];
if (empty($artista) || empty($dia) || empty($asientos)) {
die(json_encode(['error' => 'Faltan parámetros (artista, dia, asientos).']));
}
try {
$conn->beginTransaction();
$stmtVenta = $conn->prepare("INSERT INTO ventas (asiento_id, precio) VALUES (:asiento_id, :precio)");
$stmtAsiento = $conn->prepare("UPDATE asientos SET estado = 'vendido' WHERE id = :id");
foreach ($asientos as $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) {
$stmtVenta->execute([
':asiento_id' => $asientoData['id'],
':precio' => $asientoData['precio']
]);
$stmtAsiento->execute([':id' => $asientoData['id']]);
}
}
// Confirmar la transacción
$conn->commit();
echo json_encode(['success' => true, 'message' => 'Venta registrada correctamente.']);
} catch (PDOException $e) {
$conn->rollBack();
die(json_encode(['error' => 'Error al registrar la venta: ' . $e->getMessage()]));
}
?>