Actualizar asignados.html

This commit is contained in:
2026-02-25 21:08:53 +00:00
parent f53373e9cf
commit 94278924a5

View File

@@ -2,7 +2,7 @@
<html lang="es"> <html lang="es">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<title>Pendientes de Cita - IntegraRepara</title> <title>Pendientes de Cita - IntegraRepara</title>
<script src="https://cdn.tailwindcss.com"></script> <script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/lucide@latest"></script> <script src="https://unpkg.com/lucide@latest"></script>
@@ -234,6 +234,7 @@
let globalAllServices = []; let globalAllServices = [];
let pendingRequests = []; let pendingRequests = [];
let systemStatuses = []; let systemStatuses = [];
let systemGuilds = [];
let bizHours = { m_start: '09:00', m_end: '14:00', a_start: '16:00', a_end: '19:00' }; let bizHours = { m_start: '09:00', m_end: '14:00', a_start: '16:00', a_end: '19:00' };
// Variables del Agendador Inteligente // Variables del Agendador Inteligente
@@ -270,16 +271,22 @@
} }
await applyTheme(); await applyTheme();
lucide.createIcons(); lucide.createIcons();
loadStatuses(); await loadStatusesAndGuilds();
refreshData(); refreshData();
}); });
async function loadStatuses() { async function loadStatusesAndGuilds() {
try { try {
const res = await fetch(`${API_URL}/statuses`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } }); const headers = { "Authorization": `Bearer ${localStorage.getItem("token")}` };
const data = await res.json(); const [resSt, resG] = await Promise.all([
if (data.ok) systemStatuses = data.statuses; fetch(`${API_URL}/statuses`, { headers }),
} catch (e) { } fetch(`${API_URL}/guilds`, { headers })
]);
const dataSt = await resSt.json();
const dataG = await resG.json();
if (dataSt.ok) systemStatuses = dataSt.statuses;
if (dataG.ok) systemGuilds = dataG.guilds;
} catch(e) {}
} }
async function refreshData() { async function refreshData() {
@@ -288,8 +295,9 @@
try { try {
const headers = { "Authorization": `Bearer ${localStorage.getItem("token")}` }; const headers = { "Authorization": `Bearer ${localStorage.getItem("token")}` };
const myUserId = JSON.parse(atob(localStorage.getItem('token').split('.')[1])).sub;
const resActivos = await fetch(`${API_URL}/services/active`, { headers }); const resActivos = await fetch(`${API_URL}/providers/scraped`, { headers });
const dataActivos = await resActivos.json(); const dataActivos = await resActivos.json();
const resReqs = await fetch(`${API_URL}/agenda/requests`, { headers }); const resReqs = await fetch(`${API_URL}/agenda/requests`, { headers });
@@ -299,16 +307,25 @@
globalAllServices = dataActivos.services; globalAllServices = dataActivos.services;
pendingRequests = dataReqs.requests; pendingRequests = dataReqs.requests;
// FILTRO MAESTRO CORREGIDO
localServices = globalAllServices.filter(s => { localServices = globalAllServices.filter(s => {
if (s.provider === 'SYSTEM_BLOCK') return false; // 1. Descartar si no es mío, si es bloqueo o si está en la papelera
if (s.assigned_to !== myUserId || s.provider === 'SYSTEM_BLOCK' || s.status === 'archived') return false;
const raw = s.raw_data || {}; const raw = s.raw_data || {};
if (raw.scheduled_date && raw.scheduled_date.trim() !== "") return false;
// 2. Si ya está en la lista de solicitudes, no lo duplicamos
if (raw.appointment_status === 'pending') return false; if (raw.appointment_status === 'pending') return false;
// 3. SOLO PASAN LOS QUE NO TIENEN FECHA
if (raw.scheduled_date && raw.scheduled_date.trim() !== "") return false;
// 4. Asegurarnos de que no está terminado/anulado
if (raw.status_operativo) { if (raw.status_operativo) {
const st = systemStatuses.find(x => String(x.id) === String(raw.status_operativo)); const st = systemStatuses.find(x => String(x.id) === String(raw.status_operativo));
if (st && st.is_final) return false; if (st && st.is_final) return false;
} }
return true; return true;
}); });