<?php require_once '../modelo/BaseDatos.php'; require_once '../modelo/Venta.php'; require_once '../modelo/Boleto.php'; require_once '../modelo/Sala.php'; error_reporting(E_ALL); ini_set('display_errors', 1); // Configuración de la base de datos $host = 'localhost'; $usuario = 'root'; $password = 'password'; $nombreBD = 'boletos_db'; $bd = new BaseDatos($host, $usuario, $password, $nombreBD); // Verificar que los datos fueron recibidos correctamente if ($_SERVER['REQUEST_METHOD'] === 'POST') { $nombreCliente = $_POST['nombre_cliente'] ?? ''; $asientosSeleccionados = $_POST['asientos'] ?? []; $idSala = 1; // Asegúrate de que el ID de la sala está definido if (empty($nombreCliente) || empty($asientosSeleccionados) || !$idSala) { echo json_encode(['success' => false, 'message' => 'Datos incompletos']); exit; } // Cargar la sala desde la base de datos $sala = $bd->cargarSala($idSala); if (!$sala) { echo json_encode(['success' => false, 'message' => 'Sala no encontrada']); exit; } // Obtener los boletos seleccionados $boletosDisponibles = $sala->obtenerBoletosPorId($asientosSeleccionados); if (count($boletosDisponibles) !== count($asientosSeleccionados)) { echo json_encode(['success' => false, 'message' => 'Uno o más boletos no están disponibles']); exit; } // Calcular el total de la venta $total = array_reduce($boletosDisponibles, function($sum, $boleto) { return $sum + $boleto->getPrecio(); }, 0); // Crear una nueva venta $venta = new Venta($nombreCliente); $venta->agregarBoletos($boletosDisponibles); // Guardar la venta en la base de datos if ($bd->guardarVenta($venta)) { // Guardar comprobante en sesión $_SESSION['comprobante'] = $venta->generarComprobante(); echo json_encode(['success' => true, 'message' => 'Venta realizada con éxito', 'redirect' => '../vista/comprobante.html']); } else { echo json_encode(['success' => false, 'message' => 'Error al registrar la venta']); } } else { echo json_encode(['success' => false, 'message' => 'Método no permitido']); } $bd->cerrarConexion(); ?>