import Link from 'next/link' import { Repeat, ReceiptText } from 'lucide-react' import { Button } from '@/components/ui/button' import { Leerzustand } from '@/components/seiten-kopf' import { Kachel, KachelZeile } from '@/components/dashboard/kachel' import type { BelegeDaten } from '@/lib/dashboard/typen' import { formatCent, formatDatum } from '@/lib/utils' /** * Belege und Buchungen, die noch nicht zusammengefunden haben. * * Fuer die Rechnungslegung gilt Belegzwang: zu jeder Buchung gehoert ein * Beleg, und wo keiner existiert, gehoert eine Begruendung dazu. Diese * Kachel zeigt beide Luecken - Belege ohne Buchung und Buchungen ohne * Beleg. */ export function BelegeKachel({ daten }: { daten: BelegeDaten | null }) { if (!daten) return null const offen = daten.belegeOhneBuchungGesamt + daten.buchungenOhneBelegGesamt + daten.wiederkehrendOhneVertrag return ( 0 ? 'Zu jeder Buchung gehört ein Beleg – oder eine Begründung, warum keiner existiert.' : undefined } aktion={ } > {offen === 0 ? ( ) : (
{daten.belegeOhneBuchungGesamt > 0 && (

Rechnungen und Quittungen ohne Buchung ({daten.belegeOhneBuchungGesamt})

    {daten.belegeOhneBuchung.map((beleg) => (
  • {beleg.titel} {beleg.eingangAm ? `Eingang ${formatDatum(beleg.eingangAm)}` : 'ohne Eingangsdatum'}{' '} · Buchung anlegen
  • ))}
)} {daten.wiederkehrendOhneVertrag > 0 && (

Regelmäßige Abbuchungen ohne Vertrag ({daten.wiederkehrendOhneVertrag})

Wer regelmäßig abbucht, hat einen Vertrag — und der fehlt dann im Vermögensverzeichnis.
)} {daten.buchungenOhneBelegGesamt > 0 && (

Buchungen ohne Beleg ({daten.buchungenOhneBelegGesamt})

    {daten.buchungenOhneBeleg.map((buchung) => (
  • {buchung.richtung === 'AUSGABE' ? '−' : '+'} {formatCent(buchung.betragCent)} {buchung.gegenstelle ? ` · ${buchung.gegenstelle}` : ''} {formatDatum(buchung.datum)} · Beleg zuordnen oder begründen
  • ))}
)}
)}
) }