const listaConciertos = document.querySelector('.listaConciertos'); const formulario = document.getElementById('formulario'); const mensajeDiv = document.getElementById('mensaje'); const cerrarsesion = document.getElementById('cerrarSesion'); // Función para cargar conciertos async function cargarConciertos() { try { const respuesta = await fetch('controladores/conciertos.php'); if (!respuesta.ok) { throw new Error('Error al cargar conciertos'); } const datos = await respuesta.text(); listaConciertos.innerHTML = datos; //obtenerInfo(); } catch (error) { console.error('Error:', error); mensajeDiv.textContent = 'No se pudieron cargar los conciertos'; mensajeDiv.style.color = 'red'; } } // Cargar conciertos al iniciar cargarConciertos(); // Evento de búsqueda buscadorBoton.addEventListener('click', (event) => { event.preventDefault(); const termino = buscadorInput.value.trim(); if (termino) { buscarConciertos(termino); } else { cargarConciertos(); } }); // Insertar formulario.addEventListener('submit', async (event) => { event.preventDefault(); const nombre = document.getElementById("nombre_concierto").value; const artista = document.getElementById("artista").value; const fecha = document.getElementById("fecha").value; const calle = document.getElementById("calle").value; const colonia = document.getElementById("colonia").value; const numero_direccion = document.getElementById("numero_direccion").value; const codigo_postal = document.getElementById("codigo_postal").value; const estado = document.getElementById("estado").value; const capacidad_total = parseInt(document.getElementById("capacidad_total").value, 10); // Obtener y validar capacidades de zonas const zonas = [ { nombre_zona: "General", capacidad: parseInt(document.getElementById("capacidad_general").value, 10) || 0, precio: parseFloat(document.getElementById("precio_general").value) || 0 }, { nombre_zona: "Plata", capacidad: parseInt(document.getElementById("capacidad_plata").value, 10) || 0, precio: parseFloat(document.getElementById("precio_plata").value) || 0 }, { nombre_zona: "Oro", capacidad: parseInt(document.getElementById("capacidad_oro").value, 10) || 0, precio: parseFloat(document.getElementById("precio_oro").value) || 0 }, { nombre_zona: "VIP", capacidad: parseInt(document.getElementById("capacidad_vip").value, 10) || 0, precio: parseFloat(document.getElementById("precio_vip").value) || 0 } ]; const sumaCapacidades = zonas.reduce((total, zona) => total + zona.capacidad, 0); // Validar que la suma de las capacidades de zonas no supere la capacidad total if (sumaCapacidades > capacidad_total) { mensajeDiv.innerHTML = `<div class="alert alert-danger">Error: La suma de las capacidades de las zonas (${sumaCapacidades}) no puede superar la capacidad total (${capacidad_total}).</div>`; return; } const datosConcierto = { nombre_concierto: nombre, artista: artista, fecha: fecha, calle: calle, colonia: colonia, numero_direccion: numero_direccion, codigo_postal: codigo_postal, estado: estado, capacidad_total: capacidad_total, zonas: zonas }; fetch("controladores/insertar_concierto.php", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(datosConcierto) }) .then(response => response.json()) .then(data => { if (data.insercionCorrecta) { mensajeDiv.innerHTML = `<div class="alert alert-success">Concierto registrado correctamente.</div>`; formulario.reset(); cargarConciertos(); } else { mensajeDiv.innerHTML = `<div class="alert alert-danger">Error: ${data.error}</div>`; } }) .catch(error => { mensajeDiv.innerHTML = `<div class="alert alert-danger">Error en la solicitud.</div>`; console.error("Error:", error); }); });