erp-core/docs/05-user-stories/mgn-004/US-MGN-004-007-003-cancelar-pago.md

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)

Estimación: 6 horas = 3 SP


Referencias