From 5e5a6bef67f707ce737bd17139198129610b2815 Mon Sep 17 00:00:00 2001 From: marsalva Date: Sat, 28 Feb 2026 14:58:33 +0000 Subject: [PATCH] Actualizar index.html --- index.html | 63 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/index.html b/index.html index 7a93e74..ec0ab6b 100644 --- a/index.html +++ b/index.html @@ -159,16 +159,19 @@ const isFinalized = srv.is_final; const raw = srv.raw_data || {}; const descLimpia = summarizeDescription(srv.description); + + const stName = (srv.status_name || '').toLowerCase(); + const hasDate = !!(srv.scheduled_date && srv.scheduled_time); let statusHtml = ''; - // ESTRUCTURA PRINCIPAL DE ESTADOS + // ESTRUCTURA INTELIGENTE DE ESTADOS if (isFinalized) { statusHtml = `
${srv.status_name}
`; } - else if (srv.status_name === 'Técnico de Camino') { + else if (stName.includes('camino')) { const fullAddr = `${raw["Dirección"] || ""}, ${raw["Código Postal"] || ""} ${raw["Población"] || ""}`; etasToInit.push({ id: srv.id, address: fullAddr }); @@ -188,7 +191,7 @@ `; } - else if (srv.status_name === 'En Reparación') { + else if (stName.includes('reparación') || stName.includes('trabajando')) { statusHtml = `
@@ -198,7 +201,7 @@
`; } - else if (srv.status_name === 'En Incidencia' || (srv.status_name || '').toLowerCase().includes('incidencia')) { + else if (stName.includes('incidencia')) { statusHtml = `
@@ -210,28 +213,20 @@
`; } - else if (srv.status_name === 'Visita Agendada' || (srv.scheduled_date && srv.scheduled_time)) { + else if (hasDate && !stName.includes('anulado') && !stName.includes('desasignado')) { + // ESTÁ AGENDADO (COMPROBAMOS SI LLEGA TARDE) const endT = addOneHour(srv.scheduled_time); - - // --- DETECCIÓN DE RETRASO --- const now = new Date(); - const schedParts = srv.scheduled_date.split('-'); // Formato esperado YYYY-MM-DD - const endTimeParts = endT.split(':'); // Formato esperado HH:MM + const schedParts = srv.scheduled_date.split('-'); + const endTimeParts = endT.split(':'); let isLate = false; - if (schedParts.length === 3 && endTimeParts.length === 2) { - // Construimos la fecha límite (la hora final del tramo de la cita) const limitDate = new Date(schedParts[0], schedParts[1] - 1, schedParts[2], endTimeParts[0], endTimeParts[1], 0); - - // Si la fecha y hora actuales son mayores a la fecha límite, ¡Llega tarde! - if (now > limitDate) { - isLate = true; - } + if (now > limitDate) isLate = true; } if (isLate) { - // ESTADO: RETRASADO (Tono naranja/ámbar para pedir disculpas suavemente) statusHtml = `
@@ -251,7 +246,6 @@
`; } else { - // ESTADO NORMAL: VISITA CONFIRMADA EN TIEMPO (Verde) statusHtml = `
@@ -264,29 +258,50 @@

${srv.scheduled_time} - ${endT}

- Modificar Cita `; } + } + else if (stName.includes('esperando') || stName.includes('pendiente de cita') || (srv.assigned_worker && srv.assigned_worker !== 'Pendiente' && !hasDate)) { + // ESTÁ ASIGNADO PERO FALTA LA CITA + statusHtml = ` +
+
+
+ +
+
+

Acción Requerida

+

Elige tu cita

+

Tu técnico ya está asignado. Por favor, selecciona cuándo quieres que vayamos a tu domicilio.

+
+
+ +
`; } else { + // ESTADO GENÉRICO CON EL NOMBRE REAL statusHtml = `
-
-

En Gestión

+
+

Estado actual

+

${srv.status_name || 'En Gestión'}

`; } // ===================================== - // NUEVO: BLOQUE DE BOTONES DE CONTACTO + // BLOQUE DE BOTONES DE CONTACTO // ===================================== let contactHtml = ''; const hasWorker = srv.assigned_worker && srv.assigned_worker !== 'Pendiente'; if (hasWorker && !isFinalized) { - // Extraemos el teléfono del trabajador (si la BD lo manda) o usamos uno temporal para que funcione el enlace const workerPhone = srv.worker_phone ? srv.worker_phone.replace('+', '') : "34000000000"; contactHtml = ` @@ -302,7 +317,7 @@ } // ===================================== - // NUEVO: DATOS DEL ASEGURADO (CAJA LIMPIA) + // DATOS DEL ASEGURADO // ===================================== const clientDataHtml = `