feat(finance): add SEPA batch actions — populate, manual add, XML download
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.
This commit is contained in:
@@ -108,7 +108,7 @@ export default async function SepaPage({ params }: PageProps) {
|
||||
{batches.map((batch: Record<string, unknown>) => (
|
||||
<tr
|
||||
key={String(batch.id)}
|
||||
className="hover:bg-muted/30 border-b"
|
||||
className="hover:bg-muted/30 cursor-pointer border-b"
|
||||
>
|
||||
<td className="p-3">
|
||||
<Badge
|
||||
@@ -131,7 +131,7 @@ export default async function SepaPage({ params }: PageProps) {
|
||||
<td className="p-3">
|
||||
<Link
|
||||
href={`/home/${account}/finance/sepa/${String(batch.id)}`}
|
||||
className="hover:underline"
|
||||
className="font-medium hover:underline"
|
||||
>
|
||||
{String(batch.description ?? '—')}
|
||||
</Link>
|
||||
|
||||
Reference in New Issue
Block a user