diff --git a/calendario.html b/calendario.html index 1931af3..dcd2399 100644 --- a/calendario.html +++ b/calendario.html @@ -194,16 +194,21 @@

Asignar Fechas y Tiempos

-
+
- +
+ +
@@ -582,6 +587,69 @@ let currentServiceId = null; + + // --- NUEVA FUNCIÓN: Mostrar la agenda de un día en el Modal --- + function renderModalAgenda() { + const dateInput = document.getElementById('dateInput').value; + const agendaContainer = document.getElementById('modalAgendaContainer'); + const agendaList = document.getElementById('modalAgendaList'); + const currentId = document.getElementById('detId').value; // Para no mostrarse a sí mismo + + if (!dateInput) { + agendaContainer.classList.add('hidden'); + return; + } + + // Filtrar servicios agendados en la fecha seleccionada que no sean el actual + const dayServices = localServices.filter(s => { + const date = String(s.raw_data.scheduled_date || "").trim(); + return date === dateInput && String(s.id) !== String(currentId); + }); + + // Ordenar cronológicamente + dayServices.sort((a, b) => { + const tA = String(a.raw_data.scheduled_time || "23:59"); + const tB = String(b.raw_data.scheduled_time || "23:59"); + return tA.localeCompare(tB); + }); + + if (dayServices.length === 0) { + agendaList.innerHTML = `¡Día totalmente libre!`; + } else { + agendaList.innerHTML = dayServices.map(s => { + const time = s.raw_data.scheduled_time || "--:--"; + const dur = parseInt(s.raw_data.duration_minutes || 60); + + // Calculamos la hora de fin + let endTime = "--:--"; + if (time.includes(':')) { + let [h, m] = time.split(':').map(Number); + m += dur; + h += Math.floor(m / 60); + m = m % 60; + endTime = `${String(h).padStart(2, '0')}:${String(m).padStart(2, '0')}`; + } + + const city = s.raw_data["Población"] || "Sin Zona"; + + return ` +
+
+
+ ${time} - ${endTime} +
+ ${city} +
+ ${s.provider === 'SYSTEM_BLOCK' ? '' : ''} +
+ `; + }).join(''); + } + + agendaContainer.classList.remove('hidden'); + safeLoadIcons(); + } + function openService(id) { const s = localServices.find(x => x.id === id); if (!s || s.provider === 'SYSTEM_BLOCK') return; @@ -626,6 +694,8 @@ const dbStat = raw.status_operativo; if(dbStat) document.getElementById('detStatusMap').value = dbStat; + renderModalAgenda(); + const modal = document.getElementById('serviceModal'); modal.style.display = 'flex'; setTimeout(() => modal.classList.remove('translate-y-full'), 10);