erp-transportistas-v2/docs/02-definicion-modulos/MAI-002-tarifas-sla/historias-usuario/US-MAI002-001.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

186 lines
11 KiB
Markdown

# US-MAI002-001: Definir tarifa por lane
**ID:** US-MAI002-001
**Módulo:** MAI-002 (Tarifas y SLA)
**Prioridad:** Alta
**Story Points:** 8
---
## Historia de Usuario
**Como** ejecutivo de ventas
**Quiero** definir tarifas por lane (origen-destino) con diferentes tipos de servicio y vigencias
**Para** tener un tarifario estructurado que permita cotizar rápidamente
---
## Criterios de Aceptación
### CA-001: Crear tarifa básica
**Dado** que necesito definir un precio para una ruta
**Cuando** creo una nueva tarifa
**Entonces** puedo especificar: lane (origen-destino), tipo de unidad, modalidad (FTL/LTL), precio base y vigencia
### CA-002: Definir lane por zona o ubicación específica
**Dado** que algunos precios aplican a zonas completas
**Cuando** defino el lane
**Entonces** puedo elegir entre zona tarifaria (ej: "Zona Centro") o ubicación específica (ej: "CDMX Tepito")
### CA-003: Tipos de tarifa
**Dado** que existen diferentes esquemas de cobro
**Cuando** defino el tipo de tarifa
**Entonces** puedo elegir: por viaje, por km, por tonelada, por pallet, o combinada
### CA-004: Tarifa específica por cliente
**Dado** que algunos clientes tienen precios negociados
**Cuando** creo una tarifa
**Entonces** puedo asociarla a un cliente específico (aplica solo a ese cliente)
### CA-005: Control de vigencias
**Dado** que las tarifas cambian con el tiempo
**Cuando** defino vigencia
**Entonces** el sistema solo aplica tarifas vigentes y alerta cuando están por vencer
### CA-006: Búsqueda de tarifa vigente
**Dado** que necesito encontrar el precio para una ruta
**Cuando** busco por origen, destino, tipo de unidad y cliente
**Entonces** el sistema retorna la tarifa más específica vigente (cliente > general)
---
## Mockup / UI
```
┌─────────────────────────────────────────────────────────────────┐
│ NUEVA TARIFA ✕ │
├─────────────────────────────────────────────────────────────────┤
│ │
│ INFORMACIÓN DEL LANE │
│ │
│ Origen │
│ Tipo: (●) Zona tarifaria ( ) Ubicación específica │
│ Zona: [Zona Metropolitana CDMX ▼] │
│ │
│ Destino │
│ Tipo: (●) Zona tarifaria ( ) Ubicación específica │
│ Zona: [Zona Centro (GDL, AGS, QRO)▼] │
│ │
│ ───────────────────────────────────────────────────────────── │
│ │
│ CONFIGURACIÓN DE TARIFA │
│ │
│ Tipo de unidad: [Tractocamión - Caja seca 53' ▼] │
│ │
│ Modalidad: (●) FTL (Carga completa) ( ) LTL (Consolidado) │
│ │
│ Servicio: (●) Estándar ( ) Express ( ) Mismo día │
│ │
│ Tipo de tarifa: [Por viaje (monto fijo) ▼] │
│ │
│ ───────────────────────────────────────────────────────────── │
│ │
│ PRECIO │
│ │
│ Precio base: [$12,500.00] Moneda: [MXN ▼] │
│ │
│ ───────────────────────────────────────────────────────────── │
│ │
│ VIGENCIA │
│ │
│ Fecha inicio: [2026-01-01] │
│ Fecha fin: [2026-12-31] ☐ Sin fecha de fin │
│ │
│ ───────────────────────────────────────────────────────────── │
│ │
│ ALCANCE │
│ │
│ (●) Tarifa general (todos los clientes) │
│ ( ) Tarifa específica: [Seleccionar cliente...] │
│ │
│ ───────────────────────────────────────────────────────────── │
│ │
│ [Cancelar] [Guardar Tarifa] │
│ │
└─────────────────────────────────────────────────────────────────┘
```
---
## Lista de Tarifas
```
┌─────────────────────────────────────────────────────────────────┐
│ TARIFARIO [+ Nueva]│
├─────────────────────────────────────────────────────────────────┤
│ │
│ Filtros: [Zona origen ▼] [Zona destino ▼] [Tipo unidad ▼] │
│ [Modalidad ▼] [Estado: Vigente ▼] │
│ │
│ ───────────────────────────────────────────────────────────── │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ CDMX → Zona Centro │ │
│ │ Caja seca 53' | FTL | Estándar │ │
│ │ $12,500.00 MXN por viaje │ │
│ │ Vigente: 01-ene-2026 al 31-dic-2026 │ │
│ │ Alcance: General [Editar]│ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ CDMX → Zona Centro │ │
│ │ Caja seca 53' | FTL | Estándar │ │
│ │ $11,800.00 MXN por viaje │ │
│ │ Vigente: 01-ene-2026 al 31-dic-2026 │ │
│ │ Alcance: Distribuidora ABC (contrato) [Editar]│ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Zona Norte → Zona Sur │ │
│ │ Torton | FTL | Estándar │ │
│ │ $18.00 MXN por km │ │
│ │ Vigente: 15-feb-2026 al -- │ │
│ │ Alcance: General [Editar]│ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ Mostrando 3 de 45 tarifas [< 1 2 3 4 5 >] │
│ │
└─────────────────────────────────────────────────────────────────┘
```
---
## Tipos de Tarifa
| Tipo | Campos requeridos | Ejemplo |
|------|-------------------|---------|
| Por viaje | precio_base | $12,500 por viaje |
| Por km | precio_por_km | $18/km |
| Por tonelada | precio_por_ton | $450/ton |
| Por pallet | precio_por_pallet | $800/pallet |
| Combinada | precio_base + precio_por_km | $8,000 + $12/km |
---
## Notas Técnicas
- Tabla: `tarifas` con `lane_id`, `tipo_unidad`, `modalidad`, `servicio`
- Tabla: `lanes` con `origen_zona_id`, `destino_zona_id`
- Tabla: `zonas_tarifarias` con polígono o lista de ubicaciones
- Índice por (cliente_id, lane_id, tipo_unidad, modalidad, vigencia)
- Soft delete para mantener histórico
---
## Definición de Done
- [ ] CRUD completo de tarifas
- [ ] Gestión de lanes por zona o ubicación
- [ ] Soporte para todos los tipos de tarifa
- [ ] Tarifa específica por cliente
- [ ] Control de vigencias con alertas
- [ ] Búsqueda de tarifa vigente más específica
- [ ] Tests unitarios de búsqueda
- [ ] Tests de integración