<?php // api/venta.php - API para procesar ventas session_start(); require_once '../modelo/BaseDatos.php'; require_once '../modelo/Sala.php'; require_once '../modelo/Boleto.php'; require_once '../modelo/Venta.php'; require_once 'VendedorController.php'; header('Content-Type: application/json'); // Verificar método de solicitud if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success' => false, 'mensaje' => 'Método no permitido']); exit; } // Obtener datos JSON del cuerpo de la solicitud $data = json_decode(file_get_contents('php://input'), true); if (!$data || !isset($data['asientos']) || !isset($data['nombre_cliente'])) { echo json_encode(['success' => false, 'mensaje' => 'Datos incompletos']); exit; } // Extraer datos $idsBoletos = $data['asientos']; $nombreCliente = $data['nombre_cliente']; // Validar que haya asientos seleccionados if (empty($idsBoletos)) { echo json_encode(['success' => false, 'mensaje' => 'No se han seleccionado asientos']); exit; } // Conexión a base de datos $db = new BaseDatos('localhost:3306', 'root', 'password', 'boletos_db'); // Inicializar el controlador $vendedorController = new VendedorController($db); // Cargar la sala (agregando esta línea) $vendedorController->cargarSala(1); // O el ID de sala correspondiente // Seleccionar boletos $boletosSeleccionados = $vendedorController->seleccionarBoletos($idsBoletos); if (count($boletosSeleccionados) == 0) { echo json_encode(['success' => false, 'mensaje' => 'No se han seleccionado asientos disponibles']); exit; } // Procesar venta $comprobante = $vendedorController->procesarVenta($boletosSeleccionados, $nombreCliente); if (!$comprobante) { echo json_encode(['success' => false, 'mensaje' => 'Error al procesar la venta. Intente nuevamente']); exit; } // Guardar comprobante en sesión $_SESSION['comprobante'] = $comprobante; // Respuesta exitosa echo json_encode([ 'success' => true, 'mensaje' => 'Venta procesada con éxito', 'redirect' => '../vista/comprobante.html', 'comprobante' => $comprobante ]);