112 lines
4.7 KiB
JavaScript
112 lines
4.7 KiB
JavaScript
document.addEventListener("DOMContentLoaded", () => {
|
|
const formulario = document.getElementById("formulario");
|
|
const mensajeDiv = document.getElementById("mensaje");
|
|
let capacidadTotal = 0;
|
|
|
|
function siguientePaso(paso) {
|
|
document.querySelectorAll("[id^='paso']").forEach(p => p.classList.add("d-none"));
|
|
document.getElementById(`paso${paso}`).classList.remove("d-none");
|
|
|
|
if (paso === 3) {
|
|
capacidadTotal = parseInt(document.getElementById("capacidad_total").value) || 0;
|
|
const capacidadDisponible = document.getElementById("capacidad_disponible");
|
|
if (capacidadDisponible) {
|
|
capacidadDisponible.textContent = capacidadTotal;
|
|
}
|
|
}
|
|
}
|
|
|
|
function actualizarCapacidad() {
|
|
let asignado = 0;
|
|
["capacidad_general", "capacidad_plata", "capacidad_oro", "capacidad_vip"].forEach(id => {
|
|
const input = document.getElementById(id);
|
|
if (input) {
|
|
asignado += parseInt(input.value) || 0;
|
|
}
|
|
});
|
|
|
|
const restante = capacidadTotal - asignado;
|
|
const capacidadDisponible = document.getElementById("capacidad_disponible");
|
|
if (capacidadDisponible) {
|
|
capacidadDisponible.textContent = restante < 0 ? "Excede la capacidad total" : restante;
|
|
}
|
|
}
|
|
|
|
formulario.addEventListener("submit", async (event) => {
|
|
event.preventDefault();
|
|
|
|
const capacidadDisponible = document.getElementById("capacidad_disponible");
|
|
if (capacidadDisponible && parseInt(capacidadDisponible.textContent) < 0) {
|
|
mensajeDiv.innerHTML = '<div class="alert alert-danger">Error: La suma de capacidades de zonas no puede exceder la capacidad total.</div>';
|
|
return;
|
|
}
|
|
|
|
// 🔹 Construir objeto JSON con todas las zonas
|
|
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) || 0,
|
|
precio: parseFloat(document.getElementById("precio_general").value) || 0
|
|
},
|
|
{
|
|
nombre_zona: "Plata",
|
|
capacidad: parseInt(document.getElementById("capacidad_plata").value) || 0,
|
|
precio: parseFloat(document.getElementById("precio_plata").value) || 0
|
|
},
|
|
{
|
|
nombre_zona: "Oro",
|
|
capacidad: parseInt(document.getElementById("capacidad_oro").value) || 0,
|
|
precio: parseFloat(document.getElementById("precio_oro").value) || 0
|
|
},
|
|
{
|
|
nombre_zona: "VIP",
|
|
capacidad: parseInt(document.getElementById("capacidad_vip").value) || 0,
|
|
precio: parseFloat(document.getElementById("precio_vip").value) || 0
|
|
}
|
|
]
|
|
};
|
|
|
|
console.log("Enviando datos:", JSON.stringify(datosConcierto)); // Depuración
|
|
|
|
try {
|
|
const respuesta = await fetch("controladores/insertar_concierto.php", {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json"
|
|
},
|
|
body: JSON.stringify(datosConcierto)
|
|
});
|
|
|
|
const resultado = await respuesta.json();
|
|
console.log("Respuesta del servidor:", resultado); // Depuración
|
|
|
|
if (!resultado.insercionCorrecta) {
|
|
throw new Error(resultado.error || "Error al guardar el concierto");
|
|
}
|
|
|
|
mensajeDiv.innerHTML = '<div class="alert alert-success">Concierto registrado correctamente.</div>';
|
|
|
|
setTimeout(() => {
|
|
window.location.href = "ventanaConciertos.html";
|
|
}, 2000);
|
|
|
|
} catch (error) {
|
|
console.error("Error:", error);
|
|
mensajeDiv.innerHTML = `<div class="alert alert-danger">Error: ${error.message}</div>`;
|
|
}
|
|
});
|
|
|
|
window.siguientePaso = siguientePaso;
|
|
window.actualizarCapacidad = actualizarCapacidad;
|
|
});
|