# Análisis Funcional y Técnico de "DeCA en Ruta" (https://decaenruta.es/)

> **Versión Analizada**: v0.8.0 (Build: `2026-09-28`)  
> **Autor / Arquitectura**: Antonio Linares Alconchel (FiveWin / Web Fast Architecture)  
> **Objetivo**: Extracción de funcionalidades, modelos de datos, flujos de usuario y especificaciones técnicas para su replicación e integración nativa en nuestro ERP.

---

## 1. Modelo de Negocio y Estructura de Roles

1. **Multiempresa (Multi-tenant)**:
   - Separación estricta de datos por empresa (Razón social, NIF, Domicilio fiscal, Teléfono, Correo).
2. **Roles de Usuario**:
   - **Administrador**: Gestión de datos de empresa, facturación/Stripe, alta y baja de usuarios, configuración global.
   - **Oficina**: Creación, edición, emisión y rectificación de DeCAs. Consulta de históricos y generación de QR/enlaces.
   - **Conductor**: Acceso limitado para consultar la documentación asignada a su vehículo/servicio sin acceso a datos confidenciales de la empresa.
3. **Cómputo por Flota de Vehículos**:
   - La tarificación y licencias se computan por **vehículos tractores activos** (camiones o cabezas tractoras).
   - Los **remolques o semirremolques** asociados **no consumen plaza de licencia**.
   - Posibilidad de desactivar un vehículo para registrar otro sin perder el histórico documental anterior.

---

## 2. Funcionalidades del Módulo Operativo de Documentación

### A. Gestión de Vehículos y Presets
- Catálogo de vehículos habituales (Matrícula tractora, Tipo de vehículo, Remolque/Semirremolque habitual).
- Botón rápido `"Usar datos de mi empresa"` (`.use-company`): Rellena instantáneamente el cargador contractual o transportista efectivo con los datos fiscales de la propia empresa.
- Desplegables de *"Presets"* (`.preset`): Para precargar orígenes habituales (almacenes centrales, obradores), destinos frecuentes y clientes recurrentes con un solo clic.

### B. Rutas y Paradas Intermedias (`route_adr.js`)
- Soporte para **hasta 10 paradas intermedias** entre el Origen y el Destino final.
- Cada parada registra:
  - `nombre`: Razón social o nombre del almacén/plataforma.
  - `nif`: NIF de la empresa en la parada (obligatorio al emitir si hay operación).
  - `operacion`: Tipo de escala:
    1. `paso`: Parada de descanso o tránsito sin manipulación.
    2. `carga`: Incorporación de bultos/mercancía.
    3. `descarga`: Entrega parcial o total.
    4. `carga_descarga`: Operación mixta.
  - `kg_descarga`: Peso neto en kg de la descarga en dicha parada (campo numérico decimal hasta 3 cifras).
  - `direccion`, `cp`, `localidad`, `provincia`.
  - `detalle`: Descripción textual de la mercancía afectada en esa parada (hasta 400 caracteres).
- Controles de interfaz: Botones para **Subir** y **Bajar** paradas reordenando la ruta dinámicamente, y eliminación con comprobación de dependencias ADR.

### C. Módulo Integrado de Mercancías Peligrosas (ADR)
- Activable/Desactivable por documento con borrado seguro y advertencia.
- **Datos de Partes ADR**:
  - Expedidor ADR (Nombre y domicilio completo).
  - Destinatario ADR (Nombre y domicilio completo).
  - Referencia documental del expedidor.
  - Confirmación explícita `"Revisado por consejero/responsable"` (`adr-reviewed`).
  - Menciones generales ADR.
- **Líneas de Mercancía ADR (hasta 15 líneas)**:
  - `un`: Número ONU oficial (ej. `UN 1230`).
  - `denominacion`: Designación oficial de transporte de la Tabla A del ADR.
  - `clase`: Clases 2, 3, 4.1, 4.2, 4.3, 5.1, 5.2, 6.1, 8, 9.
  - `etiquetas`: Modelos de etiquetas principal y subsidiarias (ej. `3, 6.1`).
  - `grupo`: Grupo de embalaje (`I`, `II`, `III`, `no_aplica`).
  - `tunel`: Código de restricción de paso en túneles (ej. `D/E`, `-`).
  - `tecnico_necesario` y `nombre_tecnico`: Para sustancias n.e.p. que exigen nombre químico.
  - `bultos` y `tipo_bulto` (ej. `Bidones de acero 1A1`, `GRG/IBC`).
  - `cantidad` y `unidad` (`l`, `kg_neto`, `kg_bruto`).
  - `desde` y `hasta`: Asignación flexible vinculando la carga y descarga a cualquiera de las paradas intermedias o al origen/destino general.
  - `medio_ambiente`: Marca obligatoria de contaminante marino / peligro medioambiental.
  - `menciones`: Textos legales adicionales por línea.
  - Funcionalidad de **Duplicar datos**: Clona rápidamente una línea ADR para agilizar la entrada de mercancías similares omitiendo solo las cantidades.

---

## 3. Generación del Documento y Cumplimiento Normativo

1. **Generación Nativa en PDF**:
   - El sistema transforma los datos estructurados en un PDF nativo estricto (límite inferior a 5 MB).
   - Incrusta metadatos ISO: fecha/hora de creación y fecha/hora de cualquier revisión.
2. **Código QR y URL Directa de Inspección**:
   - Cada DeCA generado posee un identificador hash/token unívoco no predecible.
   - La URL pública asociada (ej. `https://decaenruta.es/doc/[token_unico]`) entrega **inmediatamente** el binario `application/pdf` con cabeceras `Content-Disposition: inline; filename="DECA-[serie]-[numero].pdf"`.
   - **Cero autenticación para inspección**: La Guardia Civil / agentes de tráfico leen el QR con cualquier móvil o tablet y visualizan o descargan directamente el PDF oficial, cumpliendo taxativamente la prohibición del Ministerio de Transportes de solicitar login o botones de paso.
3. **Distribución al Conductor**:
   - Botón `Copiar enlace`: Copia la URL directa al portapapeles.
   - Botón `Compartir`: Utiliza la Web Share API (`navigator.share`) para enviar el documento en 1 clic vía **WhatsApp**, Telegram o correo directamente al smartphone del conductor.
4. **Trazabilidad y Política de Modificaciones**:
   - Los documentos emitidos no se pueden eliminar ni modificar de manera "silenciosa".
   - Al rectificar un DeCA en curso, se registra la fecha real del cambio, el motivo expreso y los datos previos tachados/no válidos, manteniendo la validez del QR impreso en carretera.
