Actualizar servicios.html

This commit is contained in:
2026-03-03 15:32:33 +00:00
parent 2f3ad04fee
commit 55ea62936f

View File

@@ -580,29 +580,31 @@
s._stateInfo = stateInfo;
const stName = stateInfo.name.toLowerCase();
// --- LÓGICA REVISADA DE CONTADORES ---
// --- LÓGICA REVISADA Y EXACTA DE CONTADORES ---
// 1. SIN ASIGNAR: No tiene operario o está en la bolsa
if (!s.assigned_name || stateInfo.id === 'bolsa' || stName.includes('asignar') || stName.includes('desasignado')) {
// Si no tiene operario, o está en bolsa, o el estado dice explícitamente sin asignar
kpiUnassigned++;
}
// 2. INCIDENCIA: El estado incluye la palabra "incidencia" o "pausa"
else if (stName.includes('incidencia') || stName.includes('pausa')) {
// Si hay un problema
kpiIncident++;
}
// 3. ESPERA CLIENTE: El estado es literalmente "Esperando al cliente"
else if (stName.includes('espera')) {
// SOLUCIONADO: Ahora solo cuenta aquí si el estado se llama literalmente "Esperando al cliente"
kpiWaiting++;
}
else if (raw.scheduled_date && raw.scheduled_date !== "" && !stateInfo.is_final) {
// Citados: Tiene operario (ya pasó el primer filtro) y SÍ tiene fecha
// 4. CITADO CONFIRMADO: El estado incluye la palabra "citado"
else if (stName.includes('citado')) {
kpiScheduled++;
}
else if (!stateInfo.is_final && (!raw.scheduled_date || raw.scheduled_date === "")) {
// Asignado sin cita: Tiene operario, no es incidencia, no es espera, y NO tiene fecha
// 5. ASIGNADO SIN CITA: Tiene operario (ya pasó el primer if), el estado es "asignado" y NO tiene fecha
else if (stName.includes('asignado') && (!raw.scheduled_date || raw.scheduled_date === "")) {
kpiAssignedNoDate++;
}
// ... (El resto del código de los filtros visuales se mantiene igual)
// Filtro de búsqueda visual (esto no cambia)
const matchesSearch = searchTerm === "" ||
(raw["Nombre Cliente"] || "").toLowerCase().includes(searchTerm) ||