Funktionsweise von Kündigung und Kündigungsantrag

Ereigniszeile, Arten und kündigende Parteien einer Kündigung, Auswahl und Momentaufnahme der Gründe, die Wirkungen und die Bearbeitung eines Antrags aus dem Datenraum.

Eine Kündigung ist eine Zeile vom Typ termination in der Tabelle contract_event; erfasst wird sie über den Endpunkt contract/contract.terminate (Recht terminate), das Formular ist contract/contractaction.form&kind=terminate.

Gründe im Vertrag

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation. Die Gründe des Vertragsformulars stehen in contract_term_reason_link (Vertrag + Grund eindeutig; clause_ref, standardmäßig die Ziffer aus den Stammdaten; custom_text). Platzhalter: {immediate_termination_reasons}, {termination_reasons}, {termination_clause_refs}.

Erfassung

  1. Art (termination_type): ordinary, immediate, mutual. Kündigende Partei (terminating_party): principal, agent, both; bei Einvernehmen zwingend both, sonst unzulässig.
  2. Der Beendigungstag darf nicht vor der Erklärung liegen; nur ein aktiver Vertrag ist kündbar.
  3. Bei fristloser Kündigung ist, sofern der Vertrag Gründe enthält, mindestens einer Pflicht und nur aus diesen; bei älteren Verträgen ohne Gründe einer der eingebauten Vertragsverletzungsgründe (Geheimhaltung, Off-Market, falsche Angaben, unbefugtes Handeln, fehlende Mitwirkung, Sonstiges).
  4. Eine Momentaufnahme der Gründe geht in contract_event_reason (Ziffer, Name, Text in der Dokumentsprache).
  5. Wirkung: Am Beendigungstag wird der Vertrag inaktiv, die Vermittlungszeilen enden mit dem Grund terminated, der Datenraumzugang schließt; bei künftigem Datum enden die Zeilen spätestens an diesem Tag.
  6. Dokument: Vorlage termination, einseitig (bei Einvernehmen zweiseitig), Rolle in der Dokumentenzentrale termination.

Kündigungsantrag

Ein Antrag aus dem Datenraum wird in contract_event als event_type = termination, request_status = requested mit requested_by_user_id gespeichert; er beendet den Vertrag nicht. Im Admin öffnet die Schaltfläche „Bearbeiten“ das Kündigungsformular (über den Parameter request_id vorbelegt); nach dem Speichern gilt request_status = processed, processed_event_id, processed_by, date_processed. Ein weiterer möglicher Wert ist rejected. Ein Antrag ist kein Ereignis: die Ereignisliste überspringt ihn.

Berechtigungen

contract/contract + terminate, Core-Änderungsrecht und Inhaltsbereich. Für den Antrag aus dem Datenraum erhält der Makler die Funktion document/dataroom + terminate aus dem Vertrag.