# US-MAI010-002: Calcular pago por viaje **ID:** US-MAI010-002 **Módulo:** MAI-010 (Liquidaciones) **Prioridad:** Alta **Story Points:** 8 --- ## Historia de Usuario **Como** sistema de liquidaciones **Quiero** calcular automáticamente el monto a pagar por cada viaje cerrado **Para** que el liquidador tenga los montos listos sin cálculos manuales --- ## Criterios de Aceptación ### CA-001: Calcular al cerrar viaje **Dado** que un viaje se cierra con POD **Cuando** se confirma el cierre **Entonces** el sistema calcula automáticamente el pago del operador ### CA-002: Aplicar esquema del operador **Dado** que el operador tiene un esquema asignado **Cuando** se calcula el pago **Entonces** se aplica la fórmula correspondiente (km, %, fijo) ### CA-003: Usar km reales **Dado** que el esquema es por km **Cuando** se calcula **Entonces** se usan los km reales del tracking, no los estimados ### CA-004: Calcular bonos automáticamente **Dado** que el viaje cumplió condiciones de bono **Cuando** se calcula el pago **Entonces** se agrega el bono correspondiente (OTIF, sin incidencias) ### CA-005: Mostrar desglose **Dado** que se calculó el pago **Cuando** consulto el detalle **Entonces** veo el desglose: base, variable, bonos, total ### CA-006: Ajuste manual **Dado** que hay situaciones excepcionales **Cuando** necesito ajustar el monto **Entonces** puedo hacerlo con justificación obligatoria --- ## Mockup / UI ``` ┌─────────────────────────────────────────────────────────────────┐ │ PAGO CALCULADO - VJE-0125 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Viaje: VJE-0125 | CDMX → Monterrey │ │ Operador: Juan Pérez García │ │ Esquema: ESQ-002 (25% del flete + bonos) │ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ DATOS DEL VIAJE │ │ │ │ Fecha cierre: 2026-01-25 16:45 │ │ Flete facturado: $18,200.00 MXN │ │ Km recorridos (tracking): 892 km │ │ Tiempo en ruta: 11 hrs 32 min │ │ Entrega: ✓ A tiempo (dentro de ventana SLA) │ │ Incidencias: ✓ Sin incidencias │ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ CÁLCULO DEL PAGO │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ PERCEPCIONES │ │ │ │ │ │ │ │ Pago por flete (25% de $18,200): $4,550.00 │ │ │ │ Bono OTIF (entrega a tiempo): $800.00 │ │ │ │ Bono sin incidencias: $300.00 │ │ │ │ ───────────────────────────────────────────────── │ │ │ │ TOTAL A PAGAR: $5,650.00 MXN │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ Estado: ✓ CALCULADO | Pendiente de liquidación │ │ │ │ [Ajustar monto] [Ver detalles] │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## Lista de Viajes por Liquidar ``` ┌─────────────────────────────────────────────────────────────────┐ │ VIAJES PENDIENTES DE LIQUIDAR │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Operador: [Juan Pérez García ▼] │ │ Periodo: [20-ene-2026] al [26-ene-2026] │ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ VIAJES CERRADOS ESTA SEMANA │ │ │ │ | Viaje | Ruta | Cierre | Pago | Estado |│ │ |---------|----------------|----------|-----------|----------|│ │ | VJE-0120| CDMX → GDL | 21-ene | $1,750.00 | Calculado|│ │ | VJE-0125| CDMX → MTY | 23-ene | $5,650.00 | Calculado|│ │ | VJE-0128| CDMX → GDL | 25-ene | $1,750.00 | Calculado|│ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ RESUMEN │ │ Total viajes: 3 │ │ Total pagos: $9,150.00 │ │ │ │ [Generar liquidación semanal] │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## Ajuste Manual ``` ┌─────────────────────────────────────────────────────────────────┐ │ AJUSTAR PAGO ✕ │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Viaje: VJE-0125 │ │ Pago calculado: $5,650.00 │ │ │ │ ───────────────────────────────────────────────────────────── │ │ │ │ AJUSTE │ │ │ │ Nuevo monto: [$5,000.00] │ │ Diferencia: -$650.00 │ │ │ │ Motivo del ajuste (obligatorio): │ │ [Viaje solicitó apoyo de otro operador para última ]│ │ [hora de entrega. Se comparte pago con OP-0032 ]│ │ │ │ Autoriza: [Supervisor requerido ▼] │ │ │ │ ⚠ Los ajustes quedan registrados en auditoría │ │ │ │ [Cancelar] [Guardar Ajuste] │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## Cálculo por Tipo de Esquema | Tipo | Fórmula | Ejemplo | |------|---------|---------| | Por km | km_reales × tarifa_km | 892 × $2.50 = $2,230 | | Por viaje | tarifa_fija | $1,500 | | Porcentaje | flete × % | $18,200 × 25% = $4,550 | | Mixto | base + (km × tarifa) | $500 + (892 × $1.50) = $1,838 | --- ## Notas Técnicas - El cálculo se dispara al evento `viaje.cerrado` (MAI-007) - Km reales desde `tracking.eventos` (suma de tramos) - Flete desde `billing.lineas_factura` vinculada al viaje - Bonos se evalúan según condiciones del esquema - Ajustes requieren aprobación si >10% del calculado --- ## Definición de Done - [ ] Cálculo automático al cerrar viaje - [ ] Soporte para los 4 tipos de esquema - [ ] Uso de km reales desde tracking - [ ] Cálculo automático de bonos - [ ] Desglose detallado del pago - [ ] Ajuste manual con justificación - [ ] Auditoría de ajustes - [ ] Tests de cálculo por tipo