import { notFound, redirect } from 'next/navigation' import { SeitenKopf } from '@/components/seiten-kopf' import { VertragFormular } from '@/components/vertraege/vertrag-formular' import { aktiveBetreute, erfordereBenutzer, erfordereZugang } from '@/lib/auth/sitzung' import { db, nichtGeloescht } from '@/lib/db' import { oeffnen } from '@/lib/crypto/feld' import { alsIsoTag } from '@/lib/fristen/datum' export const dynamic = 'force-dynamic' /** Cent als Eingabetext: 481255 wird zu "4812,55". */ function centAlsText(cent: bigint | null): string { if (cent === null) return '' const negativ = cent < 0n const betrag = negativ ? -cent : cent const euro = betrag / 100n const rest = betrag % 100n return `${negativ ? '-' : ''}${euro},${rest.toString().padStart(2, '0')}` } export default async function VertragBearbeiten({ params, }: { params: Promise<{ id: string }> }) { const { id } = await params const benutzer = await erfordereBenutzer(`/vertraege/${id}/bearbeiten`) const aktive = await aktiveBetreute(benutzer) if (!aktive) return null const { darfSchreiben } = await erfordereZugang(aktive.id, 'VERTRAEGE', 'lesen') if (!darfSchreiben('VERTRAEGE')) redirect(`/vertraege/${id}`) const vertrag = await db.vertrag.findFirst({ where: { id, betreuteId: aktive.id, ...nichtGeloescht }, }) if (!vertrag) notFound() const offen = oeffnen('Vertrag', vertrag) return (