From b8513f370b06768537636b519b7a5b7a188a47d8 Mon Sep 17 00:00:00 2001 From: Fernando Escobar Robles Date: Tue, 10 Jun 2025 18:02:46 -0600 Subject: [PATCH] validacion atleta --- public/js/piscina.js | 65 +++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/public/js/piscina.js b/public/js/piscina.js index 5525fcc..a82076f 100644 --- a/public/js/piscina.js +++ b/public/js/piscina.js @@ -263,34 +263,49 @@ tipoPiscinaSelect.addEventListener('change', async () => { let currentAtleta = null; const maxAtletas = modalidad === 'solo' ? 1 : modalidad === 'duo' ? 2 : 8; - document.getElementById('btnAgregarAtleta').addEventListener('click', () => { - if (formacionActual.length >= maxAtletas) { - alert(`Modalidad "${modalidad}" permite un máximo de ${maxAtletas} atletas.`); - return; - } +document.getElementById('btnAgregarAtleta').addEventListener('click', () => { + if (formacionActual.length >= maxAtletas) { + alert(`Modalidad "${modalidad}" permite un máximo de ${maxAtletas} atletas.`); + return; + } - const idAtleta = select.dataset.id; - const rol = document.getElementById('rolAtleta').value.trim().toLowerCase(); - const idPersonalizado = document.getElementById('idPersonalizado').value.trim(); - const figura = inputFigura?.value.trim(); - const tipoElemento = document.getElementById('tipoElemento').value; - const codigoElemento = document.getElementById('codigoElemento').value.trim(); + const idAtleta = select.dataset.id; + const idPersonalizado = document.getElementById('idPersonalizado').value.trim(); - if (!idAtleta || !rol || !idPersonalizado) { - alert('Faltan datos del atleta'); - return; - } + // 🚫 Validación para evitar duplicados + const yaExiste = formacionActual.some(a => a.atletaId === idAtleta || a.idPersonalizado === idPersonalizado); + if (yaExiste) { + Swal.fire({ + icon: 'warning', + title: 'Atleta ya asignado', + text: 'Este atleta ya fue agregado a esta formación.', + confirmButtonText: 'Entendido' + }); + return; + } + + const rol = document.getElementById('rolAtleta').value.trim().toLowerCase(); + const figura = inputFigura?.value.trim(); + const tipoElemento = document.getElementById('tipoElemento').value; + const codigoElemento = document.getElementById('codigoElemento').value.trim(); + + if (!idAtleta || !rol || !idPersonalizado) { + alert('Faltan datos del atleta'); + return; + } + + currentAtleta = { + atletaId: idAtleta, + rol, + idPersonalizado, + figura, + tipoElemento, + codigoElemento + }; + + alert('Haz clic en la piscina para colocarlo'); +}); - currentAtleta = { - atletaId: idAtleta, - rol, - idPersonalizado, - figura, - tipoElemento, - codigoElemento - }; - alert('Haz clic en la piscina para colocarlo'); - }); stage.on('click', () => { if (!currentAtleta || modoDireccion) return;