erp-transportistas-v2/docs/02-definicion-modulos/MAI-005-despacho/historias-usuario/US-MAI005-009.md
Adrian Flores Cortes 6ed7f9e2ec [BACKUP] Pre-restructure workspace backup 2026-01-29
- Updated docs and inventory files
- Added new architecture docs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 17:35:54 -06:00

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_logs con 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