import * as React from 'react'
import Link from 'next/link'
import { AlertTriangle, FileCheck, FileWarning, Paperclip } from 'lucide-react'
import { Badge } from '@/components/ui/badge'
import { Card, CardContent } from '@/components/ui/card'
import { cn, formatCent } from '@/lib/utils'
/**
* Kleine Bausteine, die in mehreren Finanzseiten vorkommen.
*
* Alle rein darstellend und ohne Zustand - sie laufen deshalb sowohl in
* Server- als auch in Client-Komponenten. Betraege kommen hier immer als
* Number in Cent an; die Umwandlung aus BigInt passiert vorher mit
* centZuZahl().
*/
/**
* Ein Geldbetrag. Ausgaben werden mit Minuszeichen UND in gedeckter
* Farbe gezeigt - die Farbe allein waere fuer farbfehlsichtige Nutzer
* keine Information.
*/
export function Betrag({
cent,
richtung,
fett,
className,
}: {
cent: number | null
richtung?: 'EINNAHME' | 'AUSGABE' | 'UMBUCHUNG'
fett?: boolean
className?: string
}) {
if (cent === null) {
return nicht erfasst
}
const vorzeichenbehaftet = richtung === 'AUSGABE' ? -Math.abs(cent) : cent
const negativ = vorzeichenbehaftet < 0
return (
{formatCent(vorzeichenbehaftet)}
)
}
/** Kachel mit einer Zahl und einer Erklärung, was sie bedeutet. */
export function Kennzahl({
titel,
wert,
hinweis,
ton = 'neutral',
href,
}: {
titel: string
wert: React.ReactNode
hinweis?: React.ReactNode
ton?: 'neutral' | 'gut' | 'achtung' | 'schlecht'
href?: string
}) {
const rahmen =
ton === 'gut'
? 'border-ampel-gruen/40'
: ton === 'achtung'
? 'border-ampel-orange/50'
: ton === 'schlecht'
? 'border-ampel-rot/50'
: undefined
const inhalt = (
{titel} {wert} {hinweis}
Vorsicht: hier vermischen sich zwei Vermögen.
Die Buchung läuft über ein Konto, das als Konto des Betreuers markiert ist, gilt aber als Vermögen der betreuten Person. Genau das fällt einem in der Rechnungslegung um die Ohren. Entweder ist das Konto falsch markiert, oder es ist eine eigene Auslage – dann bitte den Haken bei „betrifft das Vermögen der betreuten Person“ entfernen.
{titel ?? 'Das solltest du vor der Abgabe klären'}