The SEPA batch detail page was a dead end: users could create a batch
but had no way to add payment positions or generate the XML file.
Added SepaBatchActions client component with three key workflows:
1. 'Mitglieder hinzufügen' — auto-populates batch from all active
members who have a SEPA mandate and dues category (calls existing
populateBatchFromMembers server action)
2. 'Einzelposition' — dialog to manually add a single debit item
with Name, IBAN, Amount, and Verwendungszweck fields
3. 'XML herunterladen' — dialog for creditor info (Gläubiger-Name,
IBAN, BIC, Gläubiger-ID) then generates and triggers download of
the SEPA pain.008 XML file. Disabled when batch has 0 positions.
Also fixed: SEPA list page crashed because a Server Component had an
onClick handler on a <tr> — removed the invalid event handler.
Target demographic: German association treasurers (Kassenwarte) who
need a straightforward workflow for annual membership fee collection
via SEPA Lastschrift.