SISTEMA ACTIVO · DATOS CARGADOS
50
Internos Activos
0
Código Rojo / Negro
Máxima peligrosidad
4
Organizaciones
Activas monitoreadas
0
Alertas Activas
Vínculos + tel. compartidos
Distribución por Color de Seguridad
Internos por Organización Criminal
Hechos Delictivos por Categoría
Últimos Hechos Registrados
N° InternoApellido y NombreDNISituación DelitoSeguridadOrganizaciónRol Unidad / MóduloReincidente
Detalle de Miembros por Organización
Hechos por Jurisdicción
Domicilios por Jurisdicción
Leyenda
Homicidio Narcotráfico / Extorsión Robo y otros Domicilios declarados Domicilios operativos/reales Unidades penitenciarias
Nodos Críticos — Vínculos Inter-Organizacionales
0
Total Visitas
0
Denegadas
0
Visitas Cruzadas
0
Visitantes Únicos
⚠ Cruces de Visita Detectados — Visitante → Múltiples Internos
Registro Completo de Visitas
IDInternoOrg. InternoVisitanteDNITipoFechaAutorizadaAlerta
0
Teléfonos
0
Intervenidos
0
Compartidos
0
Dispositivos IMEI
⚠ Teléfonos Compartidos — Detalle de Usuarios y Organizaciones
Catálogo Completo de Teléfonos
IDNúmeroOperadoraEstadoTitularAlerta
Dispositivos IMEI Detectados
0
Total Incidentes
0
Graves / Críticos
0
Inter-Organizacionales
0
Reyertas
Conexión con Google Sheets — Guía de Implementación

Este sistema puede conectarse a tu Google Sheets en tiempo real usando Google Apps Script como backend API. Al hacerlo, cada vez que cargues datos en la planilla, el sistema web los mostrará automáticamente sin regenerar el HTML.

PASO 1 — Crear el Apps Script en tu Sheets

En tu Google Sheets, ir a Extensiones → Apps Script y pegar el siguiente código:

const SHEET_ID = 'TU_ID_DE_SHEET_AQUI'; // Reemplazar con el ID real function doGet(e) { const sheet = SpreadsheetApp.openById(SHEET_ID); const tab = e.parameter.tab || '01_PERSONAS'; const ws = sheet.getSheetByName(tab); const data = ws.getDataRange().getValues(); const headers = data[2]; // fila 3 = encabezados const rows = data.slice(3).filter(r => r.some(c => c !== '')); const result = rows.map(r => { const obj = {}; headers.forEach((h,i) => { if(h) obj[h] = r[i] !== undefined ? String(r[i]) : ''; }); return obj; }); return ContentService .createTextOutput(JSON.stringify({tab, data: result, total: result.length})) .setMimeType(ContentService.MimeType.JSON) .setHeaders({'Access-Control-Allow-Origin': '*'}); } function getMultipleTabs(tabList) { const sheet = SpreadsheetApp.openById(SHEET_ID); const result = {}; tabList.forEach(tab => { const ws = sheet.getSheetByName(tab); if (!ws) return; const data = ws.getDataRange().getValues(); const headers = data[2]; const rows = data.slice(3).filter(r => r.some(c => c !== '')); result[tab] = rows.map(r => { const obj = {}; headers.forEach((h,i) => { if(h) obj[h] = r[i] !== undefined ? String(r[i]) : ''; }); return obj; }); }); return result; }
PASO 2 — Publicar como Web App

En Apps Script: Implementar → Nueva implementación → Web App

Configurar: Ejecutar como Yo · Quién tiene acceso: Cualquier usuario

Copiar la URL generada (formato: https://script.google.com/macros/s/AK.../exec)

PASO 3 — Configurar la URL en este sistema

Ingresar la URL del Web App para conectar los datos en tiempo real:

IMPORTANTE — Acerca del modo offline actual

El sistema funciona actualmente con los datos embebidos en el HTML (los exportados de tu planilla). Son 1.769 registros reales de tu base de datos. Al conectar con Sheets, el sistema consultará la planilla en tiempo real cada vez que se cargue, mostrando siempre los datos más actualizados. La conexión requiere que el Apps Script esté publicado y que el navegador tenga acceso a internet.