'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import Link from 'next/link' import { ArrowLeft, UserPlus, Loader2 } from 'lucide-react' import { Button } from '@/components/ui/button' import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { createEndCustomer } from '@/lib/actions/end-customers' export default function NewCustomerPage() { const router = useRouter() const [saving, setSaving] = useState(false) const [form, setForm] = useState({ company_name: '', vat_id: '', first_name: '', last_name: '', street: '', zip: '', city: '', email: '', bank_iban: '', bank_bic: '', bank_name: '', bank_owner: '', }) const handleSave = async () => { if (!form.company_name.trim()) return setSaving(true) try { await createEndCustomer(form) router.push('/my-customers') } catch (e) { alert('Fehler beim Anlegen des Kunden.') setSaving(false) } } return (

Neuen Endkunden anlegen

Stammdaten Legen Sie einen neuen Endkunden an. Diese Daten stehen sofort im Bestellwizard zur Auswahl.
{([ { label: 'Firmenname *', key: 'company_name', span: true, placeholder: 'GmbH / KG / Einzelunternehmen' }, { label: 'USt-IdNr.', key: 'vat_id', span: false, placeholder: 'DE123456789' }, { label: 'Vorname', key: 'first_name', span: false, placeholder: '' }, { label: 'Nachname', key: 'last_name', span: false, placeholder: '' }, { label: 'E-Mail', key: 'email', span: true, placeholder: 'kunde@beispiel.de' }, { label: 'Straße & Hausnummer', key: 'street', span: true, placeholder: 'Musterstraße 1' }, { label: 'PLZ', key: 'zip', span: false, placeholder: '12345' }, { label: 'Ort', key: 'city', span: false, placeholder: 'Musterstadt' }, { label: 'Kontoinhaber', key: 'bank_owner', span: false, placeholder: 'Max Mustermann' }, { label: 'IBAN', key: 'bank_iban', span: false, placeholder: 'DE89370400440532013000' }, { label: 'BIC', key: 'bank_bic', span: false, placeholder: 'SOLADE21XXX' }, { label: 'Bankname', key: 'bank_name', span: false, placeholder: 'Musterbank' }, ] as const).map(({ label, key, span, placeholder }) => (
setForm(prev => ({ ...prev, [key]: e.target.value }))} placeholder={placeholder} className="bg-white/5 border-white/10 text-white placeholder:text-slate-500" />
))}
) }