<?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()])); } ?>