diff --git a/proveedores.html b/proveedores.html index 368ccb3..e7ad5a5 100644 --- a/proveedores.html +++ b/proveedores.html @@ -357,31 +357,53 @@ let isLocked = false; let lockedMsg = ''; - // LÓGICA DE ACTUALIZACIÓN DE ESTADO - // Si el servicio se marca como 'imported' o tiene 'assigned_to', significa que ya no está disponible en el buzón + // LÓGICA DE ACTUALIZACIÓN DE ESTADO ROBUSTA + const autoStatus = (svc.automation_status || '').toLowerCase(); + const sysStatus = (svc.status || '').toLowerCase(); + const linkedStatus = (raw['estado'] || raw['status'] || '').toLowerCase(); + if (!isArchived) { - if (svc.automation_status === 'in_progress') { - bgClass = 'bg-amber-50/40 border-amber-200'; + // 1. EN BOLSA / EN COLA + if (autoStatus.includes('bolsa') || autoStatus === 'in_progress' || sysStatus.includes('bolsa') || linkedStatus.includes('bolsa')) { + bgClass = 'bg-orange-50/40 border-orange-200 hover:border-orange-400'; isLocked = true; - lockedMsg = 'Enviado por WhatsApp. Esperando aceptación.'; + lockedMsg = 'Este servicio está en la BOLSA buscando operario.'; badgeEstado = `
- - En Cola / Bolsa + + En Bolsa + Sin Asignar
`; - } else if (svc.status === 'imported' || raw['assigned_to']) { - bgClass = 'bg-emerald-50/40 border-emerald-200'; + } + // 2. ASIGNADO A UN OPERARIO + else if (raw['assigned_to'] || (sysStatus === 'imported' && opName)) { + bgClass = 'bg-emerald-50/40 border-emerald-200 hover:border-emerald-400'; isLocked = true; - lockedMsg = 'Servicio AUTO-ASIGNADO o traspasado.'; + lockedMsg = 'Servicio ASIGNADO. Ve al Panel Operativo para gestionarlo.'; badgeEstado = `
Asignado - ${opName || 'Gestionado'} + ${opName || 'Operario'}
`; - } else { + } + // 3. TRASPASADO AL PANEL, PERO SIN BOLSA NI OPERARIO (Pausa/Manual) + else if (sysStatus === 'imported') { + bgClass = 'bg-blue-50/40 border-blue-200 hover:border-blue-400'; + isLocked = true; + lockedMsg = 'Este servicio ya se traspasó al Panel Operativo.'; + badgeEstado = ` +
+ + En Panel + + Esperando acción +
`; + } + // 4. NUEVO EN EL BUZÓN (Gris) + else { bgClass = 'bg-white border-slate-200'; badgeEstado = `
@@ -438,7 +460,6 @@ lucide.createIcons(); } - // --- EL RESTO DE FUNCIONES (openEditor, saveDraft, sendToQueue, etc.) se mantienen IGUAL --- async function openEditor(id) { const svc = scrapedData.find(s => s.id === id); if(!svc) return;