-
Mahmoud Aglan authored
Super admin and financial admin can select up to 2 confirmed payments from a participant's profile and refund them in a single atomic transaction. If a refunded payment is linked to a program enrollment, the enrollment is automatically cancelled and the group seat is freed. Changes: - RefundService: creates outbound refund record, marks original as refunded, reverses invoice paid_amount — all within the caller's DB::transaction - ParticipantShow: checkbox selection on confirmed inbound payments, preview modal showing impact (including enrollment cancellation warning), reason field, atomic commit via DB::transaction wrapping both domains Co-Authored-By:Claude Sonnet 4.6 <noreply@anthropic.com>
6472b1f0