86 lines
4.0 KiB
JavaScript
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";
|
|
}); |