Ausschliesslich Zeilenenden. Nachgewiesen mit "git diff --cached --ignore-cr-at-eol": Der Diff ist leer, es hat sich kein Zeichen Inhalt geaendert. Deshalb ein eigener Commit: 7448 geaenderte Zeilen in einem Commit mit echten Aenderungen zu verstecken, macht die Historie an dieser Stelle unlesbar. So laesst er sich beim Durchsehen ueberspringen. Refs #26
78 lines
2.8 KiB
TypeScript
78 lines
2.8 KiB
TypeScript
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 (
|
|
<div className="space-y-6">
|
|
<SeitenKopf
|
|
titel={`${vertrag.bezeichnung} bearbeiten`}
|
|
beschreibung="Änderungen werden protokolliert. Die Vertragsnummer wird verschlüsselt gespeichert."
|
|
pfad={[
|
|
{ titel: 'Übersicht', href: '/heute' },
|
|
{ titel: 'Verträge', href: '/vertraege' },
|
|
{ titel: vertrag.bezeichnung, href: `/vertraege/${id}` },
|
|
{ titel: 'Bearbeiten' },
|
|
]}
|
|
/>
|
|
|
|
<VertragFormular
|
|
betreuteId={aktive.id}
|
|
werte={{
|
|
id: vertrag.id,
|
|
bezeichnung: vertrag.bezeichnung,
|
|
gesellschaft: vertrag.gesellschaft ?? '',
|
|
art: vertrag.art,
|
|
status: vertrag.status,
|
|
vertragsnummer: offen.vertragsnummer ?? '',
|
|
beginnAm: vertrag.beginnAm ? alsIsoTag(vertrag.beginnAm) : '',
|
|
endeAm: vertrag.endeAm ? alsIsoTag(vertrag.endeAm) : '',
|
|
kuendigungsfristMonate: vertrag.kuendigungsfristMonate?.toString() ?? '',
|
|
kuendigungZum: vertrag.kuendigungZum ? alsIsoTag(vertrag.kuendigungZum) : '',
|
|
gekuendigtAm: vertrag.gekuendigtAm ? alsIsoTag(vertrag.gekuendigtAm) : '',
|
|
beitrag: centAlsText(vertrag.beitragCent),
|
|
rhythmus: vertrag.rhythmus ?? '',
|
|
bewertungSozialhilfe: vertrag.bewertungSozialhilfe,
|
|
bewertungBegruendung: offen.bewertungBegruendung ?? '',
|
|
notizen: offen.notizen ?? '',
|
|
}}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|