1.7 KiB
US-MGN-004-007-003: Cancelar Pago
RF Asociado: RF-MGN-004-007 Módulo: MGN-004 - Financiero Básico Epic: Pagos y Conciliación Prioridad: P0 (MVP) Story Points: 3 Sprint: Sprint 12 Estado: Ready for Development Fecha: 2025-11-24
User Story
Como usuario tesorería, Quiero cancelar pagos registrados, Para anular pagos erróneos y revertir asiento contable y conciliaciones.
Descripción Detallada
Cancelar pago genera asiento de reversión, elimina conciliaciones, actualiza facturas a state='open', y marca payment.state='cancelled'.
Criterios de Aceptación
Escenario 1: Cancelar pago
Dado que payment.state='posted', Cuando POST /payments/:id/cancel con reason, Entonces state='cancelled', asiento reversión, conciliations eliminadas, facturas reabiertas.
Escenario 2: Reabrir facturas conciliadas
Dado que pago tenía factura conciliada (paid), Cuando cancelo pago, Entonces factura.state='open', amount_residual recalculado.
Reglas de Negocio
- RN-1: Solo pagos posted pueden cancelarse.
- RN-2: Asiento reversión automático.
- RN-3: Eliminar conciliations.
- RN-4: Reabrir facturas.
Tareas Técnicas
Backend
- POST /payments/:id/cancel
- Service: PaymentService.cancel()
- Eliminar conciliations
- Actualizar invoice.state y amount_residual
- Unit tests (6 test cases)