71 lines
2.0 KiB
PHP
71 lines
2.0 KiB
PHP
<?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
|
|
]); |