MAI-009 Facturación Transporte (31 SP): - README, REQUERIMIENTOS (7 RF), RESUMEN-EPICA - 5 User Stories: generación factura, recargos, CFDI/Carta Porte, conciliación/pagos, estados de cuenta MAI-010 Liquidaciones (31 SP): - README, REQUERIMIENTOS (6 RF), RESUMEN-EPICA - 5 User Stories: esquemas pago, cálculo por viaje, viáticos, deducciones, generar/autorizar liquidación Part of Phase 2 - P0 Critical Modules specification Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
225 lines
13 KiB
Markdown
225 lines
13 KiB
Markdown
# US-MAI010-003: Gestionar viáticos
|
||
|
||
**ID:** US-MAI010-003
|
||
**Módulo:** MAI-010 (Liquidaciones)
|
||
**Prioridad:** Alta
|
||
**Story Points:** 5
|
||
|
||
---
|
||
|
||
## Historia de Usuario
|
||
|
||
**Como** despachador
|
||
**Quiero** registrar anticipos de viáticos y su comprobación
|
||
**Para** controlar el efectivo entregado a operadores y evitar pérdidas
|
||
|
||
---
|
||
|
||
## Criterios de Aceptación
|
||
|
||
### CA-001: Registrar anticipo
|
||
**Dado** que un operador sale a viaje
|
||
**Cuando** registro el anticipo de viático
|
||
**Entonces** se vincula al viaje con monto, fecha y forma de entrega
|
||
|
||
### CA-002: Comprobar gastos
|
||
**Dado** que el operador regresa del viaje
|
||
**Cuando** comprueba sus gastos
|
||
**Entonces** puedo registrar cada gasto con tipo, monto y evidencia (ticket/foto)
|
||
|
||
### CA-003: Clasificar gastos
|
||
**Dado** que hay diferentes tipos de gasto
|
||
**Cuando** registro la comprobación
|
||
**Entonces** clasifico en: combustible, casetas, comidas, hospedaje, otros
|
||
|
||
### CA-004: Calcular sobrante
|
||
**Dado** que se comprobaron los gastos
|
||
**Cuando** consulto el viático
|
||
**Entonces** veo: anticipo, comprobado, sobrante (a devolver o descontar)
|
||
|
||
### CA-005: Descontar sobrante en liquidación
|
||
**Dado** que hay sobrante sin devolver
|
||
**Cuando** se genera la liquidación
|
||
**Entonces** el sobrante se incluye como deducción automática
|
||
|
||
### CA-006: Alertar viáticos sin comprobar
|
||
**Dado** que hay viajes cerrados con viático sin comprobar
|
||
**Cuando** consulto el dashboard
|
||
**Entonces** veo alertas de viáticos pendientes de comprobación
|
||
|
||
---
|
||
|
||
## Mockup / UI
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ REGISTRAR ANTICIPO DE VIÁTICO ✕ │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Viaje: VJE-0125 | CDMX → Monterrey │
|
||
│ Operador: Juan Pérez García │
|
||
│ Distancia estimada: 900 km │
|
||
│ │
|
||
│ ───────────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ CÁLCULO SUGERIDO │
|
||
│ │
|
||
│ Combustible (900 km × 4 km/L × $23/L): $5,175.00 │
|
||
│ Casetas (estimado ruta): $1,200.00 │
|
||
│ Comidas (2 días × $250): $500.00 │
|
||
│ Imprevistos: $325.00 │
|
||
│ ───────────────────────────────────────── │
|
||
│ Total sugerido: $7,200.00 │
|
||
│ │
|
||
│ ───────────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ ANTICIPO A ENTREGAR │
|
||
│ │
|
||
│ Monto: [$7,000.00] │
|
||
│ │
|
||
│ Forma de entrega: │
|
||
│ (●) Efectivo │
|
||
│ ( ) Transferencia │
|
||
│ ( ) Vale/Tarjeta combustible │
|
||
│ │
|
||
│ Fecha entrega: [2026-01-22] │
|
||
│ │
|
||
│ Recibe: [Juan Pérez García ] │
|
||
│ Entrega: [María González - Caja ] │
|
||
│ │
|
||
│ [Cancelar] [Registrar Anticipo] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## Comprobación de Viático
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ COMPROBACIÓN DE VIÁTICO ✕ │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Viaje: VJE-0125 | Anticipo: $7,000.00 │
|
||
│ Operador: Juan Pérez García │
|
||
│ │
|
||
│ ───────────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ GASTOS COMPROBADOS [+ Agregar]│
|
||
│ │
|
||
│ | Tipo | Descripción | Monto | Evidencia | │
|
||
│ |-------------|--------------------|---------:|------------| │
|
||
│ | Combustible | PEMEX Qro Norte | $2,800.00| [📷 Ver] | │
|
||
│ | Combustible | PEMEX MTY Centro | $1,500.00| [📷 Ver] | │
|
||
│ | Casetas | TAG (reporte) | $980.00| [📄 Ver] | │
|
||
│ | Comidas | Restaurant día 1 | $180.00| [📷 Ver] | │
|
||
│ | Comidas | Restaurant día 2 | $150.00| [📷 Ver] | │
|
||
│ | Hospedaje | Hotel MTY | $450.00| [📷 Ver] | │
|
||
│ |-------------|--------------------|---------:|------------| │
|
||
│ | TOTAL COMPROBADO | $6,060.00| | │
|
||
│ │
|
||
│ ───────────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ RESUMEN │
|
||
│ │
|
||
│ Anticipo entregado: $7,000.00 │
|
||
│ Total comprobado: -$6,060.00 │
|
||
│ ────────────────────────────────────────────────── │
|
||
│ Sobrante a devolver/descontar: $940.00 │
|
||
│ │
|
||
│ ───────────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ Destino del sobrante: │
|
||
│ ( ) Devuelto en efectivo [$______] Fecha: [________] │
|
||
│ (●) Descontar en próxima liquidación │
|
||
│ │
|
||
│ [Guardar borrador] [Cerrar comprobación] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## Agregar Gasto
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ AGREGAR GASTO ✕ │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Tipo de gasto: [Combustible ▼] │
|
||
│ ○ Combustible │
|
||
│ ○ Casetas/Peaje │
|
||
│ ○ Comidas │
|
||
│ ○ Hospedaje │
|
||
│ ○ Estacionamiento │
|
||
│ ○ Maniobras │
|
||
│ ○ Otros │
|
||
│ │
|
||
│ Descripción: [PEMEX Querétaro Norte - Magna ] │
|
||
│ Fecha del gasto: [2026-01-22] │
|
||
│ Monto: [$2,800.00] │
|
||
│ │
|
||
│ Evidencia: │
|
||
│ [📷 Seleccionar foto del ticket] │
|
||
│ ✓ ticket_pemex_qro.jpg │
|
||
│ │
|
||
│ Notas: │
|
||
│ [Carga completa en Querétaro antes de subir a MTY ]│
|
||
│ │
|
||
│ [Cancelar] [Agregar] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## Dashboard de Viáticos
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ VIÁTICOS PENDIENTES DE COMPROBAR │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ⚠ 5 viáticos pendientes de comprobación │
|
||
│ │
|
||
│ | Viaje | Operador | Anticipo | Cierre | Días | │
|
||
│ |---------|---------------|-----------|----------|-------| │
|
||
│ | VJE-0115| Pedro Ramírez | $5,500.00 | 18-ene | 9 🔴 | │
|
||
│ | VJE-0118| Ana López | $3,200.00 | 20-ene | 7 🟡 | │
|
||
│ | VJE-0122| Luis García | $6,800.00 | 22-ene | 5 🟡 | │
|
||
│ | VJE-0126| Carlos Méndez | $4,500.00 | 24-ene | 3 🟢 | │
|
||
│ | VJE-0129| Juan Pérez | $7,000.00 | 25-ene | 2 🟢 | │
|
||
│ │
|
||
│ Total pendiente de comprobar: $27,000.00 │
|
||
│ │
|
||
│ [Enviar recordatorios] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## Notas Técnicas
|
||
|
||
- Tabla: `settlements.viaticos` para anticipo
|
||
- Tabla: `settlements.comprobantes_viatico` para gastos
|
||
- Fotos de tickets se suben a S3
|
||
- Sobrante se convierte en deducción tipo SOBRANTE_VIATICO
|
||
- Alertas configurables (>3 días sin comprobar)
|
||
|
||
---
|
||
|
||
## Definición de Done
|
||
|
||
- [ ] Registro de anticipo vinculado a viaje
|
||
- [ ] Comprobación de gastos con clasificación
|
||
- [ ] Captura de evidencia (fotos de tickets)
|
||
- [ ] Cálculo de sobrante
|
||
- [ ] Integración con liquidación
|
||
- [ ] Dashboard de viáticos pendientes
|
||
- [ ] Alertas de viáticos sin comprobar
|
||
- [ ] Tests de flujo completo
|
||
|