Vermittlungszeilen, Provisionsberechnung und Datenraum-Abgleich

Das Datenmodell der Vermittlungszeile, die reinen Provisionsregeln, der gemeinsame interne Weg zum Abschließen einer Zeile und der Aufbau des Datenraumzugangs aus dem Vertrag.

Eine Vermittlungszeile (contract_property) ist eine Immobilie im Maklervertrag. Das Abschließen einer Zeile läuft über einen einzigen internen Endpunkt (contract/contract.closerow); den Datenraumzugang erzeugt der Vorgang syncContract() des Datenraum-Zugangsdienstes.

Datenmodell

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.

FeldBedeutung
property_iddie Immobilie aus den Stammdaten
deal_typezusammenfassende Art: sale, rent, share_sale, sale_rent (für ältere Leser)
deal_casesFälle kommagetrennt: sale, share_sale, rent_long, rent_short; leer = deal_type entscheidet
commission_rate, commission_share_rate, commission_months, commission_rent_rateProvision je Fall
date_from, date_toFenster des Vermittlungsrechts (NULL = Vertragslaufzeit)
stateactive, closed, ended
end_reasonsold_by_other, rented_by_other, withdrawn, expired, manual, terminated
closed_casebeim Abschluss der zustande gekommene Fall; der Leistungsnachweis rechnet damit
ended_by_company_id, ended_by_namewer verkauft hat
date_ended, doc_share_id, note, sort_orderBeendigungstag, Angebotsordner, Notiz, Reihenfolge

Bei einer älteren Zeile ist ein Fall mit dem Wert 0 nicht vermittelt und erscheint nicht im Dokument.

Provisionsberechnung

  • Verkauf, Geschäftsanteil, Kurzzeitmiete: Provision = Basis × % (auf 0–100 begrenzt), auf zwei Dezimalstellen gerundet;
  • Langzeitmiete: Provision = Netto-Monatsmiete × Monate;
  • die Provision steht im Verhältnis der tatsächlich gezahlten Raten zu, daher entsteht je Zahlung ein Leistungsnachweis.

Abschließen einer Zeile

  1. Manuell: das Fenster „Status der Immobilie in der Vermittlung“ (contract/contract.propertyclose, Recht edit) mit Datum.
  2. Aus einem Geschäft: Das Speichern eines Geschäfts mit Bezug auf einen aktiven, geschlossenen zugrunde liegenden Vertrag schließt die Zeile einmalig mit dem Fall des Geschäfts.
  3. Beide Wege rufen den internen Endpunkt closerow: Bei Erfolg enden alle anderen aktiven Zeilen der Immobilie (sold_by_other oder rented_by_other), die Makler erhalten eine fallabhängige E-Mail, und der Datenraumzugang jedes betroffenen Vertrags wird aktualisiert.
  4. Aus der Immobilienliste können mit masterdata/property + brokerend die aktiven Zeilen aller Verträge beendet werden.

Der Angebotsordner einer beendeten oder abgeschlossenen Zeile bleibt bis zum Ende des Vortags des Beendigungsdatums erreichbar.

Datenraumzugang aus dem Vertrag

  1. Aus den mit dataroom markierten Personen der beauftragten Partei werden Benutzer, sofern noch nicht vorhanden; bei E-Mail-Übereinstimmung wird auch der Name geprüft.
  2. Die Maklerfunktionen des Datenraums (view, download, broker, terminate) werden für die Vertragslaufzeit vergeben (user_feature, source = order, origin = contract, source_ref = contract_id, access_mode = usable).
  3. Die Angebotsordner werden für das Zeilenfenster vergeben (doc_share_user.source = contract, source_ref = contract_property_id).
  4. Nicht mehr gewünschte eigene Zeilen des Vertrags enden; manuelle Zeilen bleiben unberührt.
  5. Verlaufsereignisse: access_granted, access_changed, access_revoked. Die Anmelde-E-Mail wird nicht automatisch versendet.

Die Gruppe neuer Datenraumbenutzer stammt aus der Erweiterungseinstellung „Datenraum – Gruppe neuer Benutzer“; ohne sie wird kein Benutzer angelegt, und der Fehler nennt den Ort der Einstellung.

Berechtigungen

Der Datenraum-Abgleich läuft mit contract/contract + grantaccess; ohne dieses Recht wird der Vertrag gespeichert, aber kein Zugang angelegt. Das Abschließen einer Zeile erfordert edit und den Inhaltsbereich.