erp-transportistas-v2/docs/02-definicion-modulos/MAI-005-despacho/historias-usuario/US-MAI005-008.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

7.1 KiB

US-MAI005-008: Configurar reglas de asignacion

ID: US-MAI005-008 Modulo: MAI-005 (Despacho) Prioridad: Media Story Points: 5


Historia de Usuario

Como administrador de operaciones Quiero definir y configurar los criterios de scoring para asignacion de unidades Para adaptar el algoritmo a las prioridades del negocio y mejorar la eficiencia operativa


Criterios de Aceptacion

CA-001: Listar reglas existentes

Dado que accedo a la configuracion de despacho Cuando entro a la seccion de reglas de asignacion Entonces veo todas las reglas definidas con su nombre, prioridad y estado (activa/inactiva)

CA-002: Crear nueva regla

Dado que quiero personalizar el algoritmo Cuando creo una nueva regla de asignacion Entonces puedo definir nombre, condiciones, pesos de criterios y prioridad

CA-003: Definir condiciones de aplicacion

Dado que estoy creando una regla Cuando defino las condiciones Entonces puedo especificar: tipos de viaje, clientes, rutas, horarios

CA-004: Ajustar pesos de criterios

Dado que estoy editando una regla Cuando modifico los pesos Entonces puedo ajustar el porcentaje de distancia, capacidad, disponibilidad y skills (sumando 100%)

CA-005: Validar suma de pesos

Dado que modifico los pesos de criterios Cuando la suma no es igual a 100% Entonces el sistema muestra error y no permite guardar

CA-006: Previsualizar impacto

Dado que modifique los pesos de una regla Cuando solicito previsualizacion Entonces veo como cambiarian los scores de viajes recientes con la nueva configuracion

CA-007: Activar/desactivar regla

Dado que tengo una regla creada Cuando cambio su estado Entonces la regla se activa o desactiva sin eliminarla

CA-008: Definir prioridad entre reglas

Dado que tengo multiples reglas Cuando un viaje cumple condiciones de varias reglas Entonces se aplica la regla con mayor prioridad


Mockup / UI

+-----------------------------------------------------------------------+
| CONFIGURACION - REGLAS DE ASIGNACION                                  |
+-----------------------------------------------------------------------+
| [+ Nueva Regla]                                    Buscar: [_______]  |
+-----------------------------------------------------------------------+
|                                                                       |
|  +----------------------------------------------------------------+  |
|  | REGLA: Clientes VIP                              Prioridad: 1  |  |
|  | Estado: ACTIVA                                                  |  |
|  | Condiciones: Clientes categoria 'VIP'                          |  |
|  | Pesos: Dist 30% | Cap 25% | Disp 25% | Skills 20%              |  |
|  | [Editar] [Previsualizar] [Desactivar]                          |  |
|  +----------------------------------------------------------------+  |
|                                                                       |
|  +----------------------------------------------------------------+  |
|  | REGLA: Cargas HAZMAT                             Prioridad: 2  |  |
|  | Estado: ACTIVA                                                  |  |
|  | Condiciones: Viajes con skill 'HAZMAT'                         |  |
|  | Pesos: Dist 25% | Cap 20% | Disp 20% | Skills 35%              |  |
|  | [Editar] [Previsualizar] [Desactivar]                          |  |
|  +----------------------------------------------------------------+  |
|                                                                       |
|  +----------------------------------------------------------------+  |
|  | REGLA: Default                                   Prioridad: 99 |  |
|  | Estado: ACTIVA (Sistema)                                        |  |
|  | Condiciones: Todos los viajes                                   |  |
|  | Pesos: Dist 40% | Cap 25% | Disp 20% | Skills 15%              |  |
|  | [Editar] [Previsualizar] [--]                                   |  |
|  +----------------------------------------------------------------+  |
|                                                                       |
+-----------------------------------------------------------------------+

+-----------------------------------------------------------------------+
| EDITAR REGLA: Clientes VIP                                       [X]  |
+-----------------------------------------------------------------------+
|                                                                       |
|  Nombre: [Clientes VIP_________________]                              |
|  Prioridad: [1]                                                       |
|                                                                       |
|  CONDICIONES (todas deben cumplirse)                                  |
|  +----------------------------------------------------------------+  |
|  | Tipo de viaje:   [ ] Todos  [x] Nacional  [ ] Local            |  |
|  | Clientes:        [x] Solo VIP  [ ] Todos                       |  |
|  | Rutas:           [ ] Todas  [ ] Especificas: [Seleccionar...]  |  |
|  | Horario:         [ ] Todo el dia  [x] 06:00 - 18:00            |  |
|  +----------------------------------------------------------------+  |
|                                                                       |
|  PESOS DE CRITERIOS (Total: 100%)                                     |
|  +----------------------------------------------------------------+  |
|  | Distancia:      [====30%====]-------                           |  |
|  | Capacidad:      [===25%===]---------                           |  |
|  | Disponibilidad: [===25%===]---------                           |  |
|  | Skills:         [==20%==]-----------                           |  |
|  +----------------------------------------------------------------+  |
|  | Total: 100%  [OK]                                              |  |
|  +----------------------------------------------------------------+  |
|                                                                       |
|  [Cancelar]  [Previsualizar Impacto]  [Guardar]                       |
|                                                                       |
+-----------------------------------------------------------------------+

Notas Tecnicas

  • Tabla dispatch_rules para persistir reglas
  • Regla "Default" no puede eliminarse ni desactivarse
  • Prioridad menor = mayor importancia (1 es maxima prioridad)
  • Condiciones se almacenan como JSONB
  • Pesos se validan en backend (sum = 100)
  • Cache de reglas con invalidacion al modificar
  • Endpoint POST /api/dispatch/rules/preview para simulacion

Definicion de Done

  • CRUD completo de reglas de asignacion
  • UI de lista de reglas con estado
  • Formulario de edicion con sliders de pesos
  • Validacion de suma de pesos = 100%
  • Editor de condiciones (clientes, rutas, horarios)
  • Funcion de previsualizacion de impacto
  • Activar/desactivar reglas
  • Proteccion de regla Default
  • Tests unitarios de validaciones
  • Tests de integracion de CRUD

US-MAI005-008 - Modulo MAI-005 - ERP Transportistas