import Link from 'next/link' import { notFound } from 'next/navigation' import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert' import { AlertCircle } from 'lucide-react' import { Button } from '@/components/ui/button' import { SeitenKopf } from '@/components/seiten-kopf' import { Rechtshinweis } from '@/components/rechtshinweis' import { Buchungsformular } from '@/components/finanzen/buchungs-formular' import { db, nichtGeloescht } from '@/lib/db' import { finanzKontext } from '@/lib/finanzen/seite' import { heute, tagAlsText } from '@/lib/finanzen/datum' export const metadata = { title: 'Buchung erfassen' } /** * Buchung erfassen. * * Mit ?schnell=1 bleibt das Formular nach dem Speichern offen – für den * Abend, an dem ein ganzer Kontoauszug nachgetragen wird. */ export default async function BuchungNeuSeite({ searchParams, }: { searchParams: Promise> }) { const parameter = await searchParams const { betreute, darfSchreiben } = await finanzKontext() if (!darfSchreiben('FINANZEN')) notFound() const schnell = parameter.schnell === '1' const kontoId = typeof parameter.kontoId === 'string' ? parameter.kontoId : null const [konten, belege, vertraege] = await Promise.all([ db.konto.findMany({ where: { betreuteId: betreute.id, ...nichtGeloescht }, select: { id: true, bezeichnung: true, istBetreuerkonto: true }, orderBy: [{ istBetreuerkonto: 'asc' }, { bezeichnung: 'asc' }], }), db.dokument.findMany({ where: { betreuteId: betreute.id, ...nichtGeloescht }, select: { id: true, titel: true }, orderBy: { erstelltAm: 'desc' }, take: 200, }), db.vertrag.findMany({ where: { betreuteId: betreute.id, ...nichtGeloescht }, select: { id: true, bezeichnung: true, gesellschaft: true }, orderBy: { bezeichnung: 'asc' }, }), ]) return (
{schnell ? 'Zur normalen Erfassung' : 'Zur Schnellerfassung'} } /> {konten.length === 0 && ( )} k.id === kontoId), ...konten.filter((k) => k.id !== kontoId), ] : konten } belege={belege} vertraege={vertraege} schnellerfassung={schnell} standardDatum={tagAlsText(heute())} />
) }