Saltar al contenido

🚀 ROADMAP ERP - PoolControl Pro

ROADMAP_ERP

Captura con datos demo AquaDemo.

Documento maestro de funcionalidades

Última actualización: Junio 2026


📊 ESTADO GENERAL

CategoríaFuncionalidades TotalesImplementadasA MejorarPrioridad
Fiscal (Hacienda)413🔴 CRÍTICA
Facturación871🔴 CRÍTICA
Logística/Almacén882🟢 ALTA
Planificación/Rutas661🟢 ALTA
Reportes541🟡 MEDIA
Producto642🟡 MEDIA
Integraciones413🟢 MEDIA
Pre-Launch Técnico404🔴 CRÍTICA

✅ LO QUE YA TENEMOS IMPLEMENTADO

🗺️ Zonas Geográficas Avanzadas

Estado: ✅ COMPLETO

  • ✅ Definición de zonas por CÍRCULO (centro + radio)
  • ✅ Definición de zonas por POLÍGONO libre (múltiples vértices)
  • ✅ Algoritmo Ray Casting para detectar si coordenada está dentro de polígono
  • ✅ Asignación automática de piscinas a zona según coordenadas GPS
  • ✅ Mapa visual con Leaflet

🛣️ Generación Automática de Visitas (Rutas Maestras)

Estado: ✅ IMPLEMENTADO (Mejorable UI)

El sistema YA GENERA visitas automáticamente desde rutas maestras vía job programado:

FUNCIONAMIENTO ACTUAL (visit-generator.job.ts):
├── Se dispara vía POST /api/jobs/trigger-visits (header x-api-key = CRON_SECRET)
├── No hay cron interno en el servidor (jun 2026); tareas periódicas vía login-maintenance
├── Lee todas las RouteTemplates activas
├── Comprueba temporadas (seasons)
├── Genera visitas según frecuencia:
│   ├── WEEKLY (semanal)
│   ├── BIWEEKLY (quincenal)
│   ├── MONTHLY (mensual)
│   └── QUARTERLY (trimestral)
├── Optimiza orden con Nearest Neighbor
└── Asigna horarios secuenciales

Mejora pendiente: Interfaz de usuario para "Generar ahora" manualmente desde el calendario.


🧭 Optimización de Rutas

Estado: ✅ IMPLEMENTADO

  • ✅ Algoritmo Nearest Neighbor en route-optimizer.ts
  • ✅ Cálculo de distancia Haversine
  • ✅ Integrado en generación de visitas

🏭 Motor de Aprovisionamiento Inteligente (MRP)

Estado: ✅ IMPLEMENTADO (Avanzado)

Sistema completo en procurement.service.ts:

Estrategias disponibles:

  • MIN_MAX - Basado en stock mínimo/máximo
  • SEASONAL_FORECAST - Basado en histórico del año anterior

Funcionalidades:

  • ✅ Predicción de demanda estacional
  • ✅ Factor de crecimiento configurable (ej: +10% vs año pasado)
  • ✅ Cálculo de reorder point dinámico
  • ✅ Hub & Spoke (distribución desde central a delegaciones)
  • ✅ Generación automática de pedidos

📱 Escáner QR para Técnicos

Estado: ✅ COMPLETO

  • ✅ Escaneo con cámara
  • ✅ Inicio automático de trabajo
  • ✅ Creación de urgencias in-situ

📊 Informes Financieros

Estado: ✅ PARCIALMENTE IMPLEMENTADO

Disponibles:

  • Rentabilidad (generateProfitabilityReport):
    • Ingresos totales
    • Coste de materiales
    • Gastos generales (Expenses)
    • Margen bruto y neto
    • Por cliente
  • Consumos - Por producto, cliente, técnico
  • Prefacturación - Análisis de facturación pendiente

Pendientes mejorar:

  • Balance de Situación completo
  • Cuenta de Pérdidas y Ganancias estandarizada

💰 Cartera de Efectos

Estado: ✅ IMPLEMENTADO

  • ✅ Listado de vencimientos con filtros
  • ✅ Estados: PENDIENTE, PAGADO, REMESADO
  • División de deuda (split) para renegociaciones
  • ✅ Sincronización automática con factura
  • ✅ Integración con remesas SEPA

💰 Remesas SEPA

Estado: ✅ COMPLETO (Básico)

  • ✅ Generación XML SEPA (pain.008.001.02)
  • ✅ Cálculo de sumas de control
  • ✅ Identificación de acreedor SEPA
  • ✅ Marcado masivo como cobrado

📦 Gestión de Stock Avanzada

Estado: ✅ COMPLETA

  • ✅ Control multi-almacén (central + furgonetas + delegaciones)
  • ✅ Transferencias entre almacenes
  • Carta de carga (stock mínimo/máximo)
  • ✅ Solicitud de reposición de furgoneta
  • ✅ Reporte de mermas/roturas
  • ✅ Consumo automático al completar visita
  • ✅ Control de stock negativo configurable
  • ✅ Cuarentena / Write-off
  • Trazabilidad de lotes (FEFO)

📋 Series de Facturación

Estado: ✅ IMPLEMENTADO

  • ✅ Secuencias automáticas por tipo de documento
  • ✅ Prefijos configurables
  • ✅ Numeración por año
  • Multidelegación (por warehouseId)
  • ✅ Longitud configurable (3-10 dígitos)


🔴 PRIORIDAD CRÍTICA - Imprescindible para ERP serio

📋 FISCALIDAD Y HACIENDA

1. Modelo 303 - Declaración Trimestral de IVA

Estado: 📅 Próximamente - Q2 2026

  • [ ] Cálculo automático casillas [01] a [59]
  • [ ] IVA repercutido por tipos (21%, 10%, 4%)
  • [ ] IVA soportado deducible
  • [ ] Exportación formato BOE

2. Modelo 347 - Operaciones con Terceros

Estado: 📅 Próximamente - Q2 2026

  • [ ] Listado automático clientes >3.005€
  • [ ] Listado automático proveedores >3.005€
  • [ ] Exportación formato AEAT

3. Libro de Registro de IVA (SII)

Estado: 📅 Próximamente - Q2 2026

  • [ ] Envío automático facturas emitidas a Hacienda
  • [ ] Envío facturas recibidas
  • [ ] Consulta estado envíos

4. VeriFactu - Facturación Electrónica

Estado: Emisión y envío AEAT preproducción operativos; producción bloqueada (XAdES + homologación)

  • [x] Generación XML con formato VeriFactu
  • [x] Encadenamiento criptográfico SHA-256
  • [x] QR en PDF y descarga XML
  • [x] Envío AEAT PRE (certificado + supervisión)
  • [x] Laboratorio interno vf-lab
  • [ ] Firma XAdES y producción AEAT

💰 FACTURACIÓN AVANZADA

5. Facturación Recurrente Automática

Estado: 📅 Próximamente - Q2 2026

Lo que YA existe:

  • ✅ Clientes con monthlyFee (cuota fija mensual)
  • ✅ Asistente de facturación que agrupa:
    • Cuota de mantenimiento + Consumos + Albaranes
  • ✅ Generación manual de facturas por período

Lo que falta (automatización):

  • [ ] Generación automática sin intervención (job mensual)
  • [ ] Contratos con fechas de inicio/fin
  • [ ] Renovación automática de contratos
  • [ ] Envío automático por email
  • [ ] Cobro SEPA automático

6. Registro de Cobros Manual

Estado: 📅 Próximamente - Q2 2026

  • [ ] Registrar cobro de factura manualmente
  • [ ] Soportar cobros parciales
  • [ ] Múltiples métodos de pago detallados
  • [ ] Conciliación bancaria completa

Nota: La cartera de efectos existe. Falta el registro manual más detallado.


🟡 MEJORAS A LO EXISTENTE

9. Unidades de Medida

Estado: ⚠️ Implementado básico - MEJORABLE

Actual: Campo unit como string libre ("kg", "L", "ud")

Mejoras propuestas:

  • [ ] Catálogo de unidades predefinidas
  • [ ] Conversión automática entre unidades
  • [ ] Unidad base vs unidad de compra

10. Códigos de Barras (EAN/UPC)

Estado: 📅 Próximamente - Q3 2026

  • [ ] Campo EAN-13 en producto
  • [ ] Generación códigos internos
  • [ ] Impresión de etiquetas
  • [ ] Escáner en TPV

11. Tipos de Producto

Estado: ⚠️ Parcialmente implementado

  • [x] Producto físico (con stock) ✅ COMPLETO
  • [ ] Servicio (sin stock, solo precio)
  • [ ] Kit/Combo (grupo de productos con precio especial)
  • [ ] Producto alquilable (con fianza)

📊 INVENTARIO Y ALMACÉN

12. Inventarios Físicos (Tomas de Inventario)

Estado: 📅 Próximamente - Q3 2026

  • [ ] Sesión de inventario completa con app
  • [ ] Conteo por ubicación
  • [ ] Inventario ciego
  • [ ] Aprobación de ajustes

Nota: Los ajustes manuales individuales existen.


13. Alertas de Stock Inteligentes

Estado: ⚠️ Parcial - MEJORABLE

Actual:

  • ✅ Cálculo de necesidades en procurement
  • ✅ Sugerencias de compra

Mejoras:

  • [ ] Notificaciones proactivas (email/push)
  • [ ] Dashboard con semáforos 🟢🟡🔴
  • [ ] Alertas en tiempo real al técnico

🛠️ PLANIFICACIÓN Y RUTAS

14. Generación Masiva desde Rutas Maestras (UI)

Estado: ⚠️ Implementado en backend - MEJORABLE UI

Actual:

  • ✅ Job automático diario
  • ✅ Generación desde templates
  • ✅ Optimización de rutas

Mejora:

  • [ ] Botón manual "Generar visitas ahora" en calendario
  • [ ] Vista previa antes de generar
  • [ ] Selección de rango de fechas manual

📧 COMUNICACIONES

15. Sistema de Emails Integrado

Estado: 📅 Próximamente - Q2 2026

  • [ ] Configuración SMTP
  • [ ] Plantillas personalizables
  • [ ] Envío automático de facturas

🟢 PRIORIDAD MEDIA

🔌 INTEGRACIONES

16. Exportación Contable

  • [ ] Sage
  • [ ] Contaplus
  • [ ] A3
  • [ ] CSV/XLSX estándar

17. Sincronización Calendarios

  • [ ] Google Calendar
  • [ ] Outlook

18. Pasarela de Pago

  • [ ] Stripe
  • [ ] Redsys
  • [ ] Bizum

✅ CHECKLIST DE PROGRESO

Fiscal

  • [ ] Modelo 303
  • [ ] Modelo 347
  • [ ] Libro SII
  • [x] VeriFactu (PRE operativo; prod pendiente)

Facturación

  • [ ] Recurrente (facturación automática)
  • [ ] Cobros manuales mejorados
  • [x] Cartera de efectos ✅
  • [x] Series configurables ✅
  • [x] VeriFactu integrado ✅
  • [x] Rectificativas ✅
  • [x] SEPA básico ✅

Logística (¡Muy completo!)

  • [x] Almacenes multi-sede
  • [x] Transferencias
  • [x] Fulfillment MRP
  • [x] Carta de carga
  • [x] Cuarentena
  • [x] Reposición furgonetas
  • [x] Predicción estacional (año anterior)
  • [x] Hub & Spoke
  • [ ] Inventarios físicos con app
  • [ ] Alertas proactivas (UI)

Planificación (¡Muy completo!)

  • [x] Calendario
  • [x] Visitas
  • [x] Rutas maestras
  • [x] Generación automática desde templates (job)
  • [x] Transferencias entre técnicos
  • [x] Modo lluvia
  • [x] Optimización de rutas
  • [ ] Botón manual "Generar visitas" (UI)

Zonas y GPS

  • [x] Todo implementado ✅

Reportes

  • [x] Rentabilidad (ingresos, costes, gastos, margen)
  • [x] Consumos
  • [x] Prefacturación
  • [ ] Balance completo
  • [ ] Cuenta de resultados estandarizada

Producto

  • [x] Catálogo
  • [x] Categorías
  • [x] Stock multi-almacén
  • [x] Lotes
  • [x] Unidades básicas (mejorable)
  • [ ] Códigos de barras
  • [ ] Servicios
  • [ ] Kits
  • [ ] Alquileres

🎯 RESUMEN EJECUTIVO

Lo que somos (✅ Implementado):

  1. Planificación avanzada - Generación automática de visitas, optimización de rutas
  2. Logística enterprise - MRP con predicción estacional, Hub & Spoke, fulfillment
  3. Zonas geográficas serias - Polígonos, círculos, asignación automática
  4. Stock completo - Multi-almacén, lotes, trazabilidad, cuarentena
  5. Gestión financiera básica - Rentabilidad, cartera, SEPA, series

Lo que nos falta para ERP completo:

  1. Fiscalidad española - Modelo 303, 347, SII (imprescindible)
  2. Facturación recurrente - Contratos con generación mensual
  3. Mejoras UX/UI - Botón generar visitas, alertas proactivas, emails
  4. Códigos de barras - Para agilizar TPV e inventarios

Pre-Launch Técnico (Beta)

  • [ ] Email retry con cola y reintentos
  • [ ] Push subscriptions en Prisma (no en memoria)
  • [ ] Pagination con ordenamiento por defecto
  • [ ] Cloudinary URL parsing robusto

Testing (ÚLTIMA FASE - cuando todo esté estable)

Nota importante: Los tests serán lo ÚLTIMO que hagamos. Una vez todo el código esté perfecto y estable, entonces implementaremos la suite de tests completa. Hacer tests ahora sería contraproducente porque el código aún puede cambiar significativamente y romperíamos los tests constantemente.

  • [ ] Tests de integración flujos críticos (auth, facturación, login)
  • [ ] Tests unitarios servicios core
  • [ ] Tests e2e principales flujos
  • [ ] Cobertura mínima 70%

🔧 PRE-LAUNCH: Deuda Técnica Crítica

🔴 CRÍTICO (Impediría lanzamiento Beta)

PL-1. Email Retry y Cola de Envío

Estado: ⚠️ Implementado parcialmente - Sin reintentos

El servicio de email actual (mailer.ts) falla silenciosamente sin reintentos.

  • [ ] Implementar cola de emails pendientes
  • [ ] Reintentos automáticos: 3 intentos con backoff exponencial
  • [ ] Dead letter queue para fallos permanentes
  • [ ] Notificación a admin si el servicio de email falla
  • [ ] Guardar emails críticos en BD para reintento manual
FLUJO ACTUAL:    Enviar → Falla → Throw error → Se pierde el email ❌
FLUJO DESEADO:   Enviar → Falla → Cola → Reintento 1 → 2 → 3 → Alerta admin

🟡 IMPORTANTE (Degradaría experiencia)

PL-2. Push Notifications Persistencia

Estado: ⚠️ En memoria (Map) - Se pierde al reiniciar servidor

Las suscripciones push se guardan en Map() en memoria. Al reiniciar el servidor, todos los técnicos pierden las notificaciones push.

  • [ ] Migrar push subscriptions de Map() a tabla Prisma
  • [ ] Modelo: PushSubscription { userId, endpoint, p256dh, auth, createdAt }
  • [ ] Expiración automática de suscripciones antiguas
  • [ ] Re-suscripción automática en el cliente

PL-3. Pagination con Default Sorting

Estado: ⚠️ Sin orden por defecto

Las queries paginadas no tienen orden definido, causando resultados inconsistentes y full table scans.

  • [ ] Agregar orderBy: { createdAt: 'desc' } a todas las queries paginadas
  • [ ] Índices compuestos para ordenamiento eficiente
  • [ ] Permitir ordenamiento por columna desde UI

PL-4. Cloudinary URL Parsing Robusto

Estado: ⚠️ String replacement frágil

El código actual usa url.replace('/upload/', '/upload/f_png/') que puede fallar con URLs complejas.

  • [ ] Usar Cloudinary SDK o URL API en lugar de string replacement
  • [ ] Manejar casos edge: URLs con transformaciones existentes
  • [ ] Fallback graceful si la URL no es parseable

📞 NOTAS PARA EL EQUIPO

Tenemos MUCHO más de lo que parece.

El sistema ya es operativamente muy avanzado:

  • Genera visitas automáticamente desde rutas maestras
  • Predice necesidades de stock comparando con año anterior
  • Optimiza rutas con algoritmos
  • Gestiona múltiples almacenes con Hub & Spoke

Prioridad 1: Fiscalidad española (303, 347, SII) Prioridad 2: Mejorar UX de funcionalidades existentes Prioridad 3: Facturación recurrente


Documento vivo - Se actualiza con cada sprint

¿Necesitas ayuda? soporte@poolcontrolpro.com