ProyectoTicketFei/js/crearConciertos.js

86 lines
4.0 KiB
JavaScript

const formulario = document.getElementById("formulario");
const mensajeDiv = document.getElementById("mensaje");
const buscadorBoton = document.getElementById("buscadorBoton");
const buscadorInput = document.getElementById("buscadorColaborador");
const cerrarSesion = document.getElementById("cerrarSesion");
// Función para cambiar de paso en el formulario
function siguientePaso (paso) {
paso = Number(paso); // Asegurar que sea número
const pasos = document.querySelectorAll("[id^='paso']");
// Ocultar todos los pasos
pasos.forEach(p => p.classList.add("d-none"));
document.getElementById(`paso${paso}`).classList.remove("d-none");
}
formulario.addEventListener("submit", async (event) => {
event.preventDefault();
const capacidadTotal = parseInt(document.getElementById("capacidad_total").value, 10);
if (isNaN(capacidadTotal) || capacidadTotal <= 0) {
mensajeDiv.innerHTML = '<div class="alert alert-danger">Error: La capacidad total debe ser un número mayor a 0.</div>';
return;
}
const datosConcierto = {
nombre_concierto: document.getElementById("nombre_concierto").value.trim(),
artista: document.getElementById("artista").value.trim(),
fecha: document.getElementById("fecha").value,
calle: document.getElementById("calle").value.trim(),
colonia: document.getElementById("colonia").value.trim(),
numero_direccion: document.getElementById("numero_direccion").value.trim(),
codigo_postal: document.getElementById("codigo_postal").value.trim(),
estado: document.getElementById("estado").value.trim(),
capacidad_total: capacidadTotal,
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 = datosConcierto.zonas.reduce((total, zona) => total + zona.capacidad, 0);
if (sumaCapacidades > capacidadTotal) {
mensajeDiv.innerHTML = '<div class="alert alert-danger">La suma de las capacidades de las zonas no puede superar la capacidad total.</div>';
return;
} else if (sumaCapacidades < capacidadTotal){
mensajeDiv.innerHTML = '<div class="alert alert-danger">La suma de las capacidades de las zonas no puede ser menor a la capacidad total.</div>';
return;
}
try {
const respuesta = await fetch("controladores/insertar_concierto.php", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(datosConcierto)
});
if (!respuesta.ok) {
throw new Error(`HTTP Error: ${respuesta.status}`);
}
const data = await respuesta.json();
if (data.insercionCorrecta) {
formulario.reset();
siguientePaso(1);
mensajeDiv.innerHTML = '<div class="alert alert-success">Concierto registrado correctamente.</div>';
} else {
mensajeDiv.innerHTML = `<div class="alert alert-danger">Error: ${data.error || "No se pudo registrar el concierto."}</div>`;
}
} catch (error) {
mensajeDiv.innerHTML = `<div class="alert alert-danger">Error en la solicitud: ${error.message}</div>`;
console.error("Error:", error);
}
});
// Cerrar sesión
cerrarSesion.addEventListener("click", () => {
window.location.href = "logout.php";
});