+
+
+
+
Ocupación del día seleccionado
+
+
@@ -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);