Base de datos ArcorGev5Reparto — Modelo de tablas y reglas de lectura
Documento de referencia para desarrollo del ArcorTruck BackOffice Web cuando se conecta a la base operativa del cliente (copia de producción restaurada desde .bak).
Base: ArcorGev5Reparto
Motor: SQL Server
Conexión desde el host (Docker): localhost,14333 · usuario sa (solo entorno demo)
1. Resumen ejecutivo
La base agrupa varios conjuntos de tablas con roles distintos. Para el backoffice (reportes, tableros, mapas y consultas al usuario) debe cumplirse esta regla:
| Conjunto | Prefijo | Rol | ¿Usar en backoffice? |
|---|---|---|---|
| Maestros importados | I_ |
Datos maestros (clientes, repartidores, hojas, artículos, configuración) | Sí — dimensiones y filtros |
| Descarga móvil | D_ |
Lo que cada equipo móvil descarga al servidor; puede estar incompleto o en tránsito | No para reportes ni UI operativa |
| Datos validados | E_ |
Datos validados y completos, listos para explotación | Sí — fuente principal de hechos |
Regla de implementación: todos los endpoints, reportes, tableros y mapas del nuevo backoffice deben leer hechos operativos desde tablas
E_, enriquecidos con maestrosI_. No consultarD_salvo diagnóstico, soporte o procesos internos de sincronización.
2. Flujo conceptual de datos
ERP / América Equipos móviles
│ │
▼ ▼
┌─────────┐ ┌─────────────┐
│ I_* │ maestros │ D_* │ descarga / staging
│ import │◄───────────────────│ (parcial) │ (puede faltar info)
└────┬────┘ └──────┬──────┘
│ │
│ validación / │
│ consolidación ▼
│ ┌─────────────┐
└───────────────────────►│ E_* │ datos validados
│ (completos)│ ◄── BACKOFFICE LEE AQUÍ
└─────────────┘
D_*: refleja lo recibido desde la calle; útil para auditoría de sync, reintentos o comparar “lo que llegó” vs “lo validado”.E_*: refleja lo que el sistema considera correcto y cerrado para operar reportes y pantallas de gestión.
3. Inventario de tablas D_ y E_
Pares homólogos (misma entidad de negocio, distinto estado de pipeline):
| Dominio | Tabla D_* (descarga móvil) |
Tabla E_* (validada) |
Filas aprox. (backup de referencia) |
|---|---|---|---|
| Actividades / visitas | D_ACTIVIDADES_REPARTIDOR |
E_ACTIVIDADES_REPARTIDOR |
55 608 / 43 853 |
| Cierre de ruta | D_CIERRE_DE_RUTA |
E_CIERRE_DE_RUTA |
1 758 / 453 |
| Cobranzas | D_COBRANZAS |
E_COBRANZAS |
38 822 / 35 156 |
| Detalle de pagos | D_DETALLE_PAGOS |
E_DETALLE_PAGOS |
39 051 / 35 298 |
| Documentos imputados | D_DOCUMENTOS_IMPUTADOS |
E_DOCUMENTOS_IMPUTADOS |
69 251 / 62 505 |
| Entregas — cabecera | D_ENTREGAS_CABECERA |
E_ENTREGAS_CABECERA |
48 335 / 43 657 |
| Entregas — facturas | D_ENTREGAS_FACTURAS |
E_ENTREGAS_FACTURAS |
90 960 / 81 750 |
| Entregas — ítems | D_ENTREGAS_ITEMS |
E_ENTREGAS_ITEMS |
836 256 / 747 025 |
| Retenciones | D_RETENCIONES |
E_RETENCIONES |
7 / 7 |
| Devoluciones | — | E_DEVOLUCIONES_REPARTO |
— / 21 513 |
| Puntos de recorrido | — | E_PUNTOS_RECORRIDO |
— / 0 |
Solo en E_: E_DEVOLUCIONES_REPARTO (devoluciones validadas; no existe homólogo D_DEVOLUCIONES_* en este backup).
Observación: en el mismo backup existen tablas sin prefijo (ACTIVIDADES_REPARTIDOR, COBRANZAS, ENTREGAS_*, etc.) con volúmenes muy cercanos a las E_*. Probablemente son capas históricas o espejo del modelo anterior. Para el nuevo backoffice se estandariza E_* como contrato de lectura; cualquier uso de tablas sin prefijo debe validarse con negocio/EMSER antes de implementar.
4. Maestros I_* (complemento obligatorio)
No son hechos de ruta; se importan desde el ERP y alimentan filtros y etiquetas:
| Tabla | Uso típico |
|---|---|
I_CLIENTES |
Código ID_CUENTA, razón social, canal, hoja asignada |
I_REPARTIDORES |
Transportistas |
I_HOJAS_DE_RUTA |
Catálogo de hojas (ID_HOJA_REPARTO, NUMERO_HOJA_REPARTO) |
I_CANALES_CLIENTES |
Filtro “Canal” en reportes estadísticos |
I_CLIENTES_DIRECCIONES |
Direcciones / referencia geográfica |
I_ARTICULOS |
Productos en detalle de entregas |
I_CONFIGURACION / I_EMPRESA_DATOS_CONFIGURACION |
Parámetros de negocio y empresa |
Las uniones con E_* son por claves de negocio (ID_REPARTIDOR, NUMERO_HOJA_REPARTO, ID_CUENTA, ID_VISITA, etc.), no por FKs declaradas en SQL.
5. Claves lógicas entre tablas E_*
| Clave | Descripción |
|---|---|
ID_VISITA |
Identificador de visita; enlaza actividad, entrega y cobranza |
ID_REPARTIDOR |
Repartidor → I_REPARTIDORES |
NUMERO_HOJA_REPARTO / ID_HOJA_REPARTO |
Hoja de reparto → I_HOJAS_DE_RUTA |
ID_CUENTA |
Cliente → I_CLIENTES |
ID_ENTREGA |
Cabecera de entrega → ítems y facturas hijas |
ID_COBRANZA |
Cabecera de cobranza → E_DETALLE_PAGOS, E_DOCUMENTOS_IMPUTADOS |
Tabla central para tablero y mapa: E_ACTIVIDADES_REPARTIDOR (KPIs por visita, montos, contadores de entrega/cobranza, coordenadas GPS).
6. Mapeo casos de uso → tablas E_* + I_*
| Caso de uso (manual / análisis funcional) | Tablas de lectura |
|---|---|
| Reporte reparto por hoja (UC-07) | E_ACTIVIDADES_REPARTIDOR + I_CLIENTES |
| Reporte devoluciones por hoja (UC-08) | E_DEVOLUCIONES_REPARTO |
| Reporte cobranzas por hoja (UC-09) | E_COBRANZAS, E_DOCUMENTOS_IMPUTADOS, E_DETALLE_PAGOS |
| Reporte cobranzas general (UC-10) | E_COBRANZAS / agregados sobre E_ACTIVIDADES_REPARTIDOR |
| Reporte desempeño (UC-11) | E_ACTIVIDADES_REPARTIDOR (métricas por visita/repartidor) |
| Reporte estadístico de entrega (UC-12) | E_ACTIVIDADES_REPARTIDOR + I_CLIENTES / I_CANALES_CLIENTES |
| Tablero avance de reparto (UC-13) | Agregación E_ACTIVIDADES_REPARTIDOR por ID_REPARTIDOR |
| Mapa de reparto (UC-14, UC-15) | E_ACTIVIDADES_REPARTIDOR (GPS + estado derivado de contadores) |
| Detalle entrega en mapa / auditoría | E_ENTREGAS_CABECERA, E_ENTREGAS_FACTURAS, E_ENTREGAS_ITEMS |
| Configuración negocio (UC-16, parcial) | I_CONFIGURACION, I_EMPRESA_DATOS_CONFIGURACION |
No usar D_* en ninguna fila de la tabla anterior.
7. Qué hacer con D_* (alcance permitido)
| Uso | Permitido |
|---|---|
| Reportes al usuario final | No |
| Tableros / mapas / export Excel | No |
| Diagnóstico: “faltó validar”, comparar conteos D vs E | Sí (soporte técnico) |
| Procesos batch de validación (futuro) | Sí (escritura/transformación, no UI) |
Ejemplo de consulta de control (solo monitoreo):
-- Visitas en descarga móvil que aún no tienen par validado (ilustrativo)
SELECT COUNT(*) AS SoloEnDescarga
FROM D_ACTIVIDADES_REPARTIDOR d
WHERE NOT EXISTS (
SELECT 1 FROM E_ACTIVIDADES_REPARTIDOR e
WHERE e.ID_VISITA = d.ID_VISITA
);
8. Implicaciones para la API .NET
- Cadena de conexión:
Database=ArcorGev5Reparto(noGotruckDemo). - No ejecutar migraciones EF del prototipo demo sobre esta base (esquema ajeno).
- Repositorios / SQL: nombrar explícitamente tablas
E_*en consultas o vistas (v_Reporte_*sobreE_*). - DTOs del backoffice: alineados a columnas
E_*(p. ej.MONTO_COBRADO,GPS_LATITUDenE_ACTIVIDADES_REPARTIDOR). - Filtros de fecha/hoja/repartidor: siempre aplicados en capa
E_*para evitar mezclar datos incompletos deD_*.
9. Otras tablas (referencia)
| Grupo | Ejemplos | Notas |
|---|---|---|
| Sync / log | SYNCRO_REGISTRO_MOBILE, LOG_ERRORES_SYNCRO |
Trazabilidad móvil |
| Procesos | IMPORTACION, P_PROCESOS |
Jobs de importación |
| Auth Django | accounts_customuser, auth_* |
En el backup de referencia sin usuarios; login del nuevo backoffice puede ser independiente (JWT local) |
| Sin prefijo | ACTIVIDADES_REPARTIDOR, ENTREGAS_*, … |
Legacy; no usar en nuevo desarrollo sin acuerdo funcional |
10. Documentos relacionados
| Archivo | Contenido |
|---|---|
functional_analisys.html |
Casos de uso UC-01 … UC-16 (HTML: ../html/functional_analisys.html) |
../html/development.html |
Docker, conexión JDBC, desarrollo |
docker_guia.html |
Levantar stack y restaurar .bak |
manual.html |
Pruebas funcionales del prototipo |
Convención acordada: E_* = datos validados para backoffice · D_* = descarga móvil (incompleta) · I_* = maestros.