Datenmodell und Regeln der Kundenregistrierung
Die Kopf-Zeilen-Struktur der Registrierung, die Endpunkte der Entscheidung je Zeile, das Ablehnungsdokument, die Dublettenprüfung und der Datenraumzugang des Interessenten.
Die Registrierung ist die Art registration des Moduls contract/contractaction. Der Kopf ist ein Dokument, ein PDF und ein Datum; die Zeile je Inserat ist die eigenständige Geschäftseinheit mit eigener Entscheidung.
Datenmodell
Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.
| Tabelle | Rolle | Hauptfelder |
|---|---|---|
contract_registration | Kopf | registration_no (Vertragsnr./REG-n), company_id, person_id, Kontaktverweise, Name und Steuernummer des Maklers (Momentaufnahme), Daten, activity_text, Kennzeichen att_*, decision (pending, accepted, rejected, partial), template_id, language_id, body, doc_id, status |
contract_registration_advert | Zeile (eindeutig: Registrierung + Inserat) | contract_property_id, deal_type (sale, rent, share_sale), decision, reject_reason_id, reject_reason_name, reject_doc_id, duplicate_of |
contract_registration_activity | Tätigkeiten (eindeutig: Registrierung + Tätigkeit) | activity_name als Momentaufnahme in der Dokumentsprache |
Die Daten des Interessenten (Name, Adresse, Steuernummer, Registernummer, Vertreter, Kontakt) werden live aus den Stammdaten ins Dokument aufgelöst; die alten Textspalten bleiben für alte Formulare erhalten. Wählbar sind die aktiven Inserate der Vertragsimmobilien im Inhaltsbereich. Eine entschiedene oder mit einem Geschäft verknüpfte Zeile lässt sich durch erneutes Speichern nicht entfernen.
Entscheidung
contract/contractaction.acceptoder.reject(Rechteaccept,reject),row_id= eine Registrierungszeile. Die Kopfentscheidung ist eine Zusammenfassung; bei einer alten Registrierung ohne Zeilen entscheidet der Kopf.- Bei Ablehnung stammt der Grund aus den aktiven Stammdaten; gibt es aktive Gründe, ist er Pflicht.
- Sofort entsteht aus der Vorlage
reg_rejectiondas einseitige Ablehnungsdokument; ein Fehler dabei macht die Entscheidung nicht rückgängig (Warnung, spätere Neuerzeugung möglich). - Der Datenraumzugang einer abgelehnten Zeile endet über den gemeinsamen Weg, mit Verlaufseintrag.
- Nicht ablehnbar: eine Zeile mit Geschäft und eine Zeile mit angenommenem Angebot.
Dublettenprüfung
Nach dem Speichern je Zeile: eine frühere, nicht abgelehnte, nicht gelöschte Zeile für denselben Interessenten (gleiche Firma ODER Person) und dasselbe Inserat oder ein beliebiges Inserat derselben Immobilie, in jedem Vertrag. Bei einem Treffer erhält die Zeile duplicate_of; der Speichernde erhält eine Warnung (bei fremdem Client-Bereich ohne Details); die Admins, die die Client-Firma sehen, erhalten eine Systemnachricht (notification), und die Details der früheren Registrierung sieht nur, wer auch dafür berechtigt ist.
Datenraumzugang des Interessenten
Bei einer angenommenen Zeile (Recht: contract/contractaction + roomaccess) erstellt der gemeinsame Ordner-Endpunkt (user/user.shareadd, ctx=registration) aus der Person der Registrierung einen Benutzer und gewährt den Angebotsordner ab heute bis zum früheren Ende von Vertrag und Vermittlungszeile (doc_share_user.source = registration, source_ref = die Registrierungszeile). Der Widerruf (user/user.shareremove) entfernt nur die eigenen Ordnerzeilen der Zeile.
Berechtigungen
contract/contractaction: list, add, edit, statusdelete, delete, accept, reject, generate, debug, roomaccess. Inhaltsbereich: Der Zugriff auf eine Registrierung filtert auf den Client des Vertrags der Zeile. Listenfilter: Vertrag, Art, Name, Entscheidung, Status.