import { notFound } from 'next/navigation' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { SeitenKopf } from '@/components/seiten-kopf' import { Rechtshinweis } from '@/components/rechtshinweis' import { Buchungsformular } from '@/components/finanzen/buchungs-formular' import { Loeschknopf } from '@/components/finanzen/aktionen' import { db, nichtGeloescht } from '@/lib/db' import { oeffnen } from '@/lib/crypto/feld' import { formatDatum, formatDatumZeit } from '@/lib/utils' import { finanzKontext } from '@/lib/finanzen/seite' import { tagAlsText } from '@/lib/finanzen/datum' import { betragFormatieren } from '@/lib/finanzen/betrag' import { buchungLoeschen } from '@/server/actions/finanzen' export const metadata = { title: 'Buchung' } export default async function BuchungSeite({ params }: { params: Promise<{ id: string }> }) { const { id } = await params const { betreute, darfSchreiben } = await finanzKontext() const schreiben = darfSchreiben('FINANZEN') const buchung = await db.buchung.findFirst({ where: { id, betreuteId: betreute.id, ...nichtGeloescht }, }) if (!buchung) notFound() const offen = oeffnen('Buchung', buchung) 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 (
{buchung.importReferenz && (

Diese Buchung stammt aus einem Dateiimport. Der Herkunftsschlüssel verhindert, dass derselbe Umsatz beim nächsten Import ein zweites Mal angelegt wird.

)} {schreiben ? ( ) : ( Nur lesender Zugriff Du darfst dieses Modul lesen, aber nicht ändern. )} {schreiben && (
)}
) }