erp-transportistas-v2/docs/02-definicion-modulos/MAI-004-planeacion/historias-usuario/US-MAI004-002.md
Adrian Flores Cortes 9caeae936a docs: Add MAI-002, MAI-004, MAI-005 module specifications
MAI-002 (Tarifas y SLA):
- README, REQUERIMIENTOS, RESUMEN-EPICA
- 5 User Stories (31 SP total)
- Covers: tarifario por lane, recargos, SLA, cotizaciones, aprobaciones

MAI-004 (Planeacion TMS):
- README, REQUERIMIENTOS, RESUMEN-EPICA
- 5 User Stories (39 SP total)
- Covers: tablero planeacion, consolidacion, asignacion, validaciones, ETA

MAI-005 (Despacho):
- README, REQUERIMIENTOS, RESUMEN-EPICA
- 5 User Stories (28 SP total)
- Covers: checklist NOM-068, sellos, evidencias, kit documental, gate out

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:51:58 -06:00

4.9 KiB

US-MAI004-002: Consolidar OTs en embarque

ID: US-MAI004-002 Módulo: MAI-004 (Planeación TMS) Prioridad: Alta Story Points: 8


Historia de Usuario

Como planner de tráfico Quiero que el sistema sugiera qué OTs puedo consolidar en un mismo viaje Para maximizar la utilización de capacidad de las unidades


Criterios de Aceptación

CA-001: Selección múltiple

Dado que hay OTs con características similares Cuando selecciono 2 o más OTs en el tablero Entonces se habilita el botón "Sugerir Consolidación"

CA-002: Análisis de compatibilidad

Dado que solicito sugerencia de consolidación Cuando el sistema analiza las OTs Entonces verifica: zona origen similar, destinos cercanos, ventanas compatibles, mismo tipo equipo

CA-003: Resultado positivo

Dado que las OTs son consolidables Cuando veo el resultado Entonces muestra: capacidad combinada, ahorro estimado, y botón "Crear Embarque"

CA-004: Resultado negativo

Dado que las OTs no son consolidables Cuando veo el resultado Entonces muestra el motivo: "Ventanas incompatibles", "Destinos muy lejanos", etc.

CA-005: Creación de embarque

Dado que acepto la sugerencia Cuando confirmo crear embarque Entonces se crea EMB con las OTs agrupadas y aparece en el tablero


Mockup / UI

┌─────────────────────────────────────────────────────────────────┐
│ ANÁLISIS DE CONSOLIDACIÓN                                    [X]│
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  OTs Seleccionadas:                                             │
│  ┌───────────────────────────────────────────────────────────┐ │
│  │ OT-1234  │ CDMX → GDL      │ 8 ton  │ Ventana 8:00-12:00 │ │
│  │ OT-1237  │ CDMX → GDL Sur  │ 4 ton  │ Ventana 9:00-14:00 │ │
│  └───────────────────────────────────────────────────────────┘ │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  ✅ CONSOLIDACIÓN RECOMENDADA                                   │
│                                                                 │
│  Criterios cumplidos:                                           │
│  ✓ Mismo origen: CDMX                                          │
│  ✓ Destinos cercanos: 15 km entre GDL y GDL Sur               │
│  ✓ Ventanas compatibles: Overlap 9:00-12:00                    │
│  ✓ Mismo tipo equipo: Caja seca                                │
│                                                                 │
│  Capacidad combinada: 12 toneladas                              │
│  Unidad sugerida: Caja seca 18 ton (67% utilización)           │
│                                                                 │
│  💰 Ahorro estimado: $2,500 vs 2 viajes separados              │
│                                                                 │
│  [Cancelar]                    [Crear Embarque EMB-0089]        │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Reglas de Consolidación

Criterio Condición Peso
Mismo origen Distancia < 20km Obligatorio
Destinos cercanos Distancia < 50km Obligatorio
Ventanas compatibles Overlap > 2 horas Obligatorio
Mismo tipo equipo Match exacto Obligatorio
Mismo cliente Preferido Opcional
Capacidad disponible Sum < 100% unidad Obligatorio

Notas Técnicas

  • Algoritmo de clustering por zona geográfica
  • Cálculo de distancias vía API de mapas (cache)
  • El ahorro se calcula: 2*tarifa_individual - tarifa_consolidada

Definición de Done

  • Selección múltiple de OTs
  • Algoritmo de análisis implementado
  • UI de resultado con detalles
  • Creación de embarque funcional
  • Cálculo de ahorro estimado
  • Tests unitarios del algoritmo