From f6683d6bb18274bc1bad64bded02fbbaed7ab32c Mon Sep 17 00:00:00 2001 From: marsalva Date: Sun, 15 Feb 2026 21:59:58 +0000 Subject: [PATCH] Actualizar servicios.html --- servicios.html | 78 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 27 deletions(-) diff --git a/servicios.html b/servicios.html index 9a63021..37cc509 100644 --- a/servicios.html +++ b/servicios.html @@ -389,36 +389,60 @@ function selectAddress(val) { if(val) document.getElementById('sAddress').value = val; } async function fetchServices() { - try { - const res = await fetch(`${API_URL}/services`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } }); - const data = await res.json(); - const tbody = document.getElementById('servicesTableBody'); - tbody.innerHTML = ""; - if(!data.ok || data.services.length === 0) { - tbody.innerHTML = `No hay servicios registrados. `; - return; - } - data.services.forEach(s => { - const color = s.status_color || 'gray'; - const date = new Date(s.created_at); - const formattedDate = date.toLocaleDateString('es-ES', { day: '2-digit', month: 'short' }); - const assigned = s.assigned_name ? `${s.assigned_name}` : 'Sin asignar'; + try { + // Consultamos la nueva ruta de servicios aceptados + const res = await fetch(`${API_URL}/services/active`, { + headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } + }); + const data = await res.json(); + const tbody = document.getElementById('servicesTableBody'); + tbody.innerHTML = ""; - tbody.innerHTML += ` - - ${formattedDate} -

${s.contact_name}

${s.address}

- ${assigned}

${s.description || 'Sin detalles'}

${s.is_urgent ? 'Urgente' : ''}${s.is_company ? `${s.company_name || 'Compañía'}` : ''} - ${s.status_name || 'Nuevo'} - - - `; - }); - lucide.createIcons(); - } catch (e) {} + if(!data.ok || data.services.length === 0) { + tbody.innerHTML = `No hay servicios aceptados todavía.`; + return; } + data.services.forEach(s => { + const raw = s.raw_data || {}; + // Extraemos los datos de las claves que definimos en el mapeador + const clientName = raw["Nombre Cliente"] || raw["CLIENTE"] || "Sin nombre"; + const address = raw["Dirección"] || raw["DOMICILIO"] || "Sin dirección"; + const color = s.status_color || 'gray'; + const date = new Date(s.created_at); + const formattedDate = date.toLocaleDateString('es-ES', { day: '2-digit', month: 'short' }); + + const assigned = s.assigned_name + ? `${s.assigned_name}` + : 'Pendiente'; + + tbody.innerHTML += ` + + ${formattedDate} + +

${clientName}

+

+ ${address} +

+ + + ${assigned} +

${s.guild_name || 'Sin gremio'}

+ + + + ${s.status_name || 'Aceptado'} + + + + + `; + }); + lucide.createIcons(); + } catch (e) { console.error("Error cargando servicios:", e); } +} + async function openDetail(id, client, title, statusName, statusColor, date) { currentServiceId = id; document.getElementById('serviceDetailPanel').classList.remove('hidden');