import Link from 'next/link' import { Boxes, Plus } from 'lucide-react' import { Badge } from '@/components/ui/badge' import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table' import { SeitenKopf, Leerzustand } from '@/components/seiten-kopf' import { Rechtshinweis } from '@/components/rechtshinweis' import { Betrag, Hinweisliste, Kennzahl, Summenzeile } from '@/components/finanzen/bausteine' import { Input } from '@/components/ui/input' import { centZuZahl } from '@/lib/db' import { formatCent, formatDatum } from '@/lib/utils' import { finanzKontext } from '@/lib/finanzen/seite' import { heute, tagAlsText, tagAusText } from '@/lib/finanzen/datum' import { SOZIALHILFE_BEWERTUNG_BESCHRIFTUNG, VERMOEGENS_ART_BESCHRIFTUNG, VERMOEGENS_ART_EINZAHL, } from '@/lib/finanzen/kategorien' import { vermoegenLaden } from '@/lib/berichte/gemeinsam' import { wertVeraltet } from '@/lib/finanzen/wertalter' import type { SozialhilfeBewertung } from '@prisma/client' export const metadata = { title: 'Vermögen' } /** * Vermögensposten mit ihrem Wert an einem frei wählbaren Stichtag. * * Der Stichtag ist hier kein Beiwerk: Genau so entsteht später das * Vermögensverzeichnis. Wer den Stichtag zurücksetzt, sieht das * Vermögen so, wie es damals im Verzeichnis stand – und nicht so, wie * man es heute gerne hätte. */ export default async function VermoegenSeite({ searchParams, }: { searchParams: Promise> }) { const parameter = await searchParams const { betreute, darfSchreiben } = await finanzKontext() const schreiben = darfSchreiben('FINANZEN') const gewaehlt = typeof parameter.stichtag === 'string' ? tagAusText(parameter.stichtag) : null const stichtag = gewaehlt ?? heute() const bild = await vermoegenLaden(betreute.id, stichtag) const hinweise = bild.ohneWert.map( (posten) => `„${posten.bezeichnung}“ hat zum ${formatDatum(stichtag)} keinen Wert. ` + (posten.spaetereWertstaende > 0 ? 'Es gibt nur Wertstände nach diesem Stichtag – die dürfen hier nicht verwendet werden.' : 'Es ist noch kein Wertstand erfasst.'), ) return (
) } function Postentabelle({ posten, }: { posten: { id: string bezeichnung: string wertCent: bigint bewertetAm: Date wertquelle: string alterTage: number nachweisTitel: string | null bewertungSozialhilfe: string | null }[] }) { return ( Posten Wertquelle Bewertet am Sozialhilfe Wert {posten.map((eintrag) => ( {eintrag.bezeichnung} {eintrag.wertquelle} {eintrag.nachweisTitel && ( Beleg: {eintrag.nachweisTitel} )} {formatDatum(eintrag.bewertetAm)} {wertVeraltet(eintrag.alterTage) && ( über ein Jahr alt )} {eintrag.bewertungSozialhilfe ? SOZIALHILFE_BEWERTUNG_BESCHRIFTUNG[ eintrag.bewertungSozialhilfe as SozialhilfeBewertung ] : '–'} ))}
) }