# US-MAI007-004: Validar POD antes de cierre **ID:** US-MAI007-004 **Modulo:** MAI-007 (POD y Cierre) **Prioridad:** Alta **Story Points:** 8 --- ## Historia de Usuario **Como** despachador **Quiero** que el sistema valide automaticamente que el POD este completo antes de cerrar **Para** asegurar que tenemos toda la documentacion necesaria para facturar --- ## Criterios de Aceptacion ### CA-001: Validacion de firma **Dado** que intento cerrar un viaje **Cuando** el POD no tiene firma capturada **Entonces** el sistema bloquea el cierre y muestra "POD sin firma" ### CA-002: Validacion de receptor **Dado** que intento cerrar un viaje **Cuando** el POD no tiene nombre de receptor **Entonces** el sistema bloquea el cierre y muestra "Receptor no identificado" ### CA-003: Validacion de tiempos **Dado** que intento cerrar un viaje **Cuando** no se han registrado todos los tiempos requeridos **Entonces** el sistema muestra advertencia pero permite continuar ### CA-004: Cierre exitoso **Dado** que el POD cumple todas las validaciones **Cuando** confirmo el cierre **Entonces** el sistema: - Cambia estado del viaje a CERRADO - Congela costos del viaje - Calcula rentabilidad preliminar - Notifica a facturacion ### CA-005: Resumen de cierre **Dado** que cierro un viaje exitosamente **Cuando** se completa el proceso **Entonces** veo un resumen con: costos, ingresos estimados, margen --- ## Mockup / UI ``` ┌─────────────────────────────────────────┐ │ Cerrar Viaje #12345 │ ├─────────────────────────────────────────┤ │ │ │ Validaciones: │ │ ✓ POD con firma │ │ ✓ Receptor identificado │ │ ✓ Tiempos registrados │ │ ⚠ Sin fotos adjuntas (opcional) │ │ │ │ ───────────────────────────────────── │ │ │ │ Resumen financiero: │ │ Ingresos: $15,000.00 │ │ Costos: $11,200.00 │ │ - Combustible $5,500.00 │ │ - Peajes $1,200.00 │ │ - Viaticos $800.00 │ │ - Otros $3,700.00 │ │ ───────────────────────────────────── │ │ Margen: $3,800.00 (25.3%) │ │ │ │ [Cancelar] [Confirmar Cierre ✓] │ │ │ └─────────────────────────────────────────┘ ``` --- ## Reglas de Validacion | Validacion | Tipo | Bloquea cierre | |------------|------|----------------| | Firma presente | Requerido | Si | | Nombre receptor | Requerido | Si | | Tiempos completos | Recomendado | No | | Fotos adjuntas | Opcional | No | | GPS en geocerca | Recomendado | No | --- ## Estados del Viaje ``` EN_TRANSITO → EN_DESTINO → ENTREGADO → CERRADO → FACTURADO ``` --- ## Notas Tecnicas - Al cerrar se crea snapshot de costos en `cierres_viaje` - Calculo de margen: (tarifa_cliente - sum(costos)) / tarifa_cliente - Notificacion a facturacion via evento/webhook - El cierre es irreversible sin rol de admin --- ## Definicion de Done - [ ] Validaciones automaticas implementadas - [ ] Calculo de rentabilidad correcto - [ ] Notificacion a facturacion - [ ] Snapshot de costos inmutable - [ ] UI de confirmacion clara - [ ] Tests de integracion