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
97 lines
3.5 KiB
TypeScript
97 lines
3.5 KiB
TypeScript
import { notFound } from 'next/navigation'
|
|
import { SeitenKopf } from '@/components/seiten-kopf'
|
|
import { KuendigungsAssistent } from '@/components/vertraege/kuendigungs-assistent'
|
|
import { aktiveBetreute, erfordereBenutzer, erfordereZugang } from '@/lib/auth/sitzung'
|
|
import { db, nichtGeloescht } from '@/lib/db'
|
|
import { oeffnen } from '@/lib/crypto/feld'
|
|
import { alsIsoTag, heuteAlsTag } from '@/lib/fristen/datum'
|
|
import { briefkopfBauen } from '@/lib/vertraege/briefkopf'
|
|
import { kuendigungsassistent } from '@/lib/vertraege/kuendigungsassistent'
|
|
import { laufzeitAusVertrag } from '@/lib/vertraege/kuendigung'
|
|
import { VERTRAG_ART_BESCHRIFTUNG } from '@/lib/vertraege/konstanten'
|
|
|
|
export const dynamic = 'force-dynamic'
|
|
|
|
export default async function VertragKuendigen({
|
|
params,
|
|
}: {
|
|
params: Promise<{ id: string }>
|
|
}) {
|
|
const { id } = await params
|
|
const benutzer = await erfordereBenutzer(`/vertraege/${id}/kuendigen`)
|
|
const aktive = await aktiveBetreute(benutzer)
|
|
if (!aktive) return null
|
|
|
|
const { darfSchreiben } = await erfordereZugang(aktive.id, 'VERTRAEGE', 'lesen')
|
|
const schreiben = darfSchreiben('VERTRAEGE')
|
|
|
|
const vertrag = await db.vertrag.findFirst({
|
|
where: { id, betreuteId: aktive.id, ...nichtGeloescht },
|
|
})
|
|
if (!vertrag) notFound()
|
|
|
|
const offen = oeffnen('Vertrag', vertrag)
|
|
const heute = heuteAlsTag()
|
|
|
|
const paket = kuendigungsassistent({
|
|
kopf: briefkopfBauen({ betreute: aktive, benutzer }),
|
|
empfaenger: { gesellschaft: vertrag.gesellschaft, anschrift: null },
|
|
vertragsbezeichnung: `${VERTRAG_ART_BESCHRIFTUNG[vertrag.art]} — ${vertrag.bezeichnung}`,
|
|
vertragsnummer: offen.vertragsnummer,
|
|
art: vertrag.art,
|
|
laufzeit: {
|
|
beginnAm: vertrag.beginnAm,
|
|
endeAm: vertrag.endeAm,
|
|
laufzeitJahre: laufzeitAusVertrag(vertrag.beginnAm, vertrag.endeAm),
|
|
kuendigungsfristMonate: vertrag.kuendigungsfristMonate,
|
|
},
|
|
heute,
|
|
})
|
|
|
|
return (
|
|
<div className="space-y-6">
|
|
<SeitenKopf
|
|
titel="Kündigungs-Assistent"
|
|
beschreibung={`${vertrag.bezeichnung} — Frist prüfen, Genehmigungsfrage stellen, Schreiben erzeugen, Versandnachweis sichern.`}
|
|
pfad={[
|
|
{ titel: 'Übersicht', href: '/heute' },
|
|
{ titel: 'Verträge', href: '/vertraege' },
|
|
{ titel: vertrag.bezeichnung, href: `/vertraege/${id}` },
|
|
{ titel: 'Kündigen' },
|
|
]}
|
|
/>
|
|
|
|
<KuendigungsAssistent
|
|
betreuteId={aktive.id}
|
|
vertragId={id}
|
|
darfSchreiben={schreiben}
|
|
heuteIso={alsIsoTag(heute)}
|
|
daten={{
|
|
schreiben: paket.schreiben,
|
|
warnungen: paket.warnungen,
|
|
genehmigung: paket.genehmigung,
|
|
versandnachweis: {
|
|
moeglichkeiten: [...paket.versandnachweis.moeglichkeiten],
|
|
hinweis: paket.versandnachweis.hinweis,
|
|
},
|
|
plan: {
|
|
berechenbar: paket.plan.berechenbar,
|
|
naechsterTermin: paket.plan.naechsterTermin
|
|
? alsIsoTag(paket.plan.naechsterTermin)
|
|
: null,
|
|
zugangSpaetestensAm: paket.plan.zugangSpaetestensAm
|
|
? alsIsoTag(paket.plan.zugangSpaetestensAm)
|
|
: null,
|
|
spaetesterAbsendetag: paket.plan.spaetesterAbsendetag
|
|
? alsIsoTag(paket.plan.spaetesterAbsendetag)
|
|
: null,
|
|
tageBisAbsendetag: paket.plan.tageBisAbsendetag,
|
|
verpasst: paket.plan.verpasst,
|
|
hinweise: paket.plan.hinweise,
|
|
},
|
|
}}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|