- Updated docs and inventory files - Added new architecture docs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6.2 KiB
US-MAI005-009: Reasignar viaje con motivo
ID: US-MAI005-009 Modulo: MAI-005 (Despacho) Prioridad: Alta Story Points: 5
Historia de Usuario
Como despachador del centro de control Quiero poder cambiar la unidad asignada a un viaje registrando el motivo del cambio Para responder a imprevistos operativos y mantener trazabilidad de las decisiones
Criterios de Aceptacion
CA-001: Iniciar reasignacion
Dado que tengo un viaje con unidad asignada Cuando selecciono la opcion de reasignar Entonces se abre el flujo de reasignacion mostrando la asignacion actual
CA-002: Seleccionar motivo obligatorio
Dado que inicio la reasignacion Cuando selecciono una nueva unidad Entonces debo elegir un motivo de la lista predefinida
CA-003: Motivos predefinidos
Dado que debo seleccionar motivo Cuando veo la lista de opciones Entonces encuentro: Falla mecanica, Operador no disponible, Solicitud cliente, Optimizacion, Skills no coinciden, Problema capacidad, Otro
CA-004: Detalle adicional opcional
Dado que seleccione un motivo Cuando selecciono "Otro" o quiero dar mas contexto Entonces puedo escribir un detalle adicional en texto libre
CA-005: Ver sugerencias para reasignacion
Dado que inicio la reasignacion Cuando busco nueva unidad Entonces veo sugerencias ordenadas por score excluyendo la unidad actual
CA-006: Confirmar reasignacion
Dado que seleccione nueva unidad y motivo Cuando confirmo la reasignacion Entonces el viaje se asigna a la nueva unidad y la anterior queda disponible
CA-007: Notificar afectados
Dado que se confirma la reasignacion Cuando el proceso termina Entonces se notifica al operador anterior (liberado) y al nuevo (asignado)
CA-008: Registrar en log de auditoria
Dado que se completa la reasignacion Cuando consulto el historial del viaje Entonces veo el registro con: unidad anterior, nueva unidad, motivo, detalle, usuario, timestamp
Mockup / UI
+-----------------------------------------------------------------------+
| REASIGNAR VIAJE [X] |
+-----------------------------------------------------------------------+
| |
| Viaje: VJE-0456 | Cliente: Transportes MX |
| Origen: CDMX | Destino: Queretaro | Fecha: 27-Ene-2026 |
| |
| ASIGNACION ACTUAL |
| +----------------------------------------------------------------+ |
| | Unidad: U-005 Kenworth T680 | |
| | Operador: Juan Perez Garcia | |
| | Asignado: 27-Ene-2026 08:30 por admin@transportes.com | |
| +----------------------------------------------------------------+ |
| |
| MOTIVO DE REASIGNACION * |
| +----------------------------------------------------------------+ |
| | ( ) Falla mecanica | |
| | (x) Operador no disponible | |
| | ( ) Solicitud del cliente | |
| | ( ) Optimizacion de rutas | |
| | ( ) Skills no coinciden | |
| | ( ) Problema de capacidad | |
| | ( ) Otro | |
| +----------------------------------------------------------------+ |
| |
| Detalle adicional (opcional): |
| +----------------------------------------------------------------+ |
| | Operador reporto enfermedad esta manana | |
| +----------------------------------------------------------------+ |
| |
| NUEVA UNIDAD |
| +----------------------------------------------------------------+ |
| | #1 U-012 Freightliner Cascadia [72] ### [SELECT] | |
| | Carlos Lopez | 15.3 km | DISPONIBLE | |
| +----------------------------------------------------------------+ |
| | #2 U-008 International LT [65] ## [ ] | |
| | Roberto Sanchez | 22.1 km | DISPONIBLE | |
| +----------------------------------------------------------------+ |
| | #3 U-015 Volvo VNL [58] ## [ ] | |
| | Maria Garcia | 28.5 km | DISPONIBLE | |
| +----------------------------------------------------------------+ |
| |
| [Cancelar] [CONFIRMAR CAMBIO] |
| |
+-----------------------------------------------------------------------+
Notas Tecnicas
- Endpoint:
POST /api/dispatch/reassign - Motivos definidos como ENUM en backend:
ReassignReason - Requiere permiso
dispatch:write - Notificaciones via modulo de notificaciones existente
- Log se guarda en
dispatch_logscon action='REASSIGNED' - Al confirmar: actualizar
trips.unit_id, cambiar estado unidad anterior a AVAILABLE - Transaccion atomica para evitar estados inconsistentes
Definicion de Done
- Endpoint /dispatch/reassign implementado
- UI de reasignacion con formulario
- Lista de motivos predefinidos
- Campo de detalle opcional
- Sugerencias de nuevas unidades (excluyendo actual)
- Notificaciones a operadores afectados
- Registro en log de auditoria
- Liberacion automatica de unidad anterior
- Tests unitarios de validaciones
- Tests E2E del flujo completo
US-MAI005-009 - Modulo MAI-005 - ERP Transportistas