'use client' import { useState } from 'react' import type { FoundingWizardState, Gesellschafter } from '@/lib/sdk/founding/types' interface Props { state: FoundingWizardState addGesellschafter: (g: Omit) => void updateGesellschafter: (id: string, p: Partial) => void removeGesellschafter: (id: string) => void } export function StepGesellschafter({ state, addGesellschafter, updateGesellschafter, removeGesellschafter }: Props) { const [form, setForm] = useState({ name: '', geburtsdatum: '', adresse: '', email: '', nennbetrag_eur: 12500, is_geschaeftsfuehrer: true, internal_role: '', has_academic_background: false, }) const totalNennbetrag = state.gesellschafter.reduce((s, g) => s + g.nennbetrag_eur, 0) const target = state.capital.stammkapital_eur const handleAdd = () => { if (!form.name.trim()) return addGesellschafter({ rolle: 'founder', name: form.name, geburtsdatum: form.geburtsdatum || undefined, adresse: form.adresse, email: form.email || undefined, nennbetrag_eur: form.nennbetrag_eur, is_geschaeftsfuehrer: form.is_geschaeftsfuehrer, internal_role: form.internal_role || undefined, has_academic_background: form.has_academic_background, }) setForm({ name: '', geburtsdatum: '', adresse: '', email: '', nennbetrag_eur: 12500, is_geschaeftsfuehrer: true, internal_role: '', has_academic_background: false }) } return (

Neuen Gesellschafter hinzufügen

setForm({ ...form, name: e.target.value })} className="px-3 py-2 border rounded" /> setForm({ ...form, geburtsdatum: e.target.value })} className="px-3 py-2 border rounded" /> setForm({ ...form, adresse: e.target.value })} className="px-3 py-2 border rounded col-span-2" /> setForm({ ...form, email: e.target.value })} className="px-3 py-2 border rounded" /> setForm({ ...form, nennbetrag_eur: parseInt(e.target.value) || 0 })} className="px-3 py-2 border rounded" /> setForm({ ...form, internal_role: e.target.value })} className="px-3 py-2 border rounded" />
setForm({ ...form, is_geschaeftsfuehrer: e.target.checked })} />
setForm({ ...form, has_academic_background: e.target.checked })} />

Gesellschafter ({state.gesellschafter.length})

{state.gesellschafter.length === 0 ? (

Noch keine Gesellschafter angelegt.

) : ( {state.gesellschafter.map(g => ( ))}
Nr. Name Geburtsdatum Nennbetrag Anteil % GF?
{g.anteil_nr} {g.name}{g.internal_role ? ` (${g.internal_role})` : ''} {g.geburtsdatum || '—'} {g.nennbetrag_eur.toLocaleString('de-DE')} € {((g.nennbetrag_eur / Math.max(target, 1)) * 100).toFixed(2)}% {g.is_geschaeftsfuehrer ? '✓' : '—'}
Summe {totalNennbetrag.toLocaleString('de-DE')} € {totalNennbetrag === target ? '100%' : `≠ ${target.toLocaleString('de-DE')} €`}
)} {totalNennbetrag !== target && state.gesellschafter.length > 0 && (

⚠ Die Summe der Nennbeträge ({totalNennbetrag.toLocaleString('de-DE')} €) entspricht nicht dem Stammkapital ({target.toLocaleString('de-DE')} €).

)}
) }