Immobilienstamm: Liste, Löschung, Rechte und Beziehungen

Abfrage und Spalten der Immobilienliste, Aktivierung, Schutz der endgültigen Löschung, Shop-Massenzuordnung, Kartenebene, Export, Berechtigungsschichten und verknüpfte Module.

Das Modul masterdata/property erscheint in der Menügruppe Stammdaten (canSee('masterdata/property', 'list')) und gehört zu den Modulen in Entwicklung. Der Immobilienstamm ist global: Liste, Formular, Löschen und Aktivieren sind nicht auf eine Firma eingeschränkt.

Liste

  • Filter: filter_name (LIKE auf Name, Kennung, Adresse, Zuordnungswert), filter_status; die Werte reisen in der AJAX-URL der Liste (mit limit, sort, order). Mit Debug-Recht wird das SQL der Abfrage angezeigt.
  • Spalten: Kontrollkästchen, Property (Name, Kennung, Inaktiv-Hinweis, Adresse, Betreiber), Owner (ab md), Match value (ab lg), Action. Die Oberfläche sortiert nach Name (das Modell kennt auch identifier und date_added).
  • Mit brokerend wird je Zeile die Zahl aktiver Vermittlungszeilen ermittelt (contract/contract::countActiveBrokerages()).
  • Ohne Recht ein Warnhinweis „Warning: You do not have permission to manage properties!“.

Aktivierung und Löschung

  1. enable / disable: status 1 / 0 mit edit; keine Inhaltsprüfung.
  2. delete (eine Zeile per GET oder selected[] per POST): zuerst getLinkCount() für jede markierte (wie viele Verträge mit property_id darauf verweisen); ist eine davon größer null, wird nichts gelöscht. Sonst löscht deleteProperty() Stammzeile, Shop-Zeilen, Beschreibung, Räume und Versorgungskennungen; Dokumente, Vollmachten und Kartenpunkt bleiben.
  3. Der Schlüssel statusdelete steht im Katalog, hat aber keinen Endpunkt: Papierkorb-Löschung ist bei Immobilien nicht verfügbar.

Shop-Massenzuordnung, Karte, Export

  • bulkstore (POST selected[], mode add oder remove, store_ids[]): für ein Element edit, für mehrere canBulkAction(route, 'edit'), zusätzlich das Core-Änderungsrecht; Dlbtstorebulk::apply() schreibt über getPropertyStores und savePropertyStores des Modells.
  • Kartenebene (Recht map): die Ebene „Properties“ der Geo-Karte und Geokodierung aus der Adresse; Kandidaten: getGeocodeCandidates() (aktive Immobilien mit Adresse ohne Koordinaten, höchstens 2000), Rückschreiben: setCoordinates().
  • Export (Recht export): getPropertyFull() + Dokumente im Bereich, geformt durch Dlbtproperty::exportShape(), als Download.
  • autocomplete: höchstens 8 aktive Immobilien; genutzt vom Inseratsformular und vom Formular des freigegebenen Ordners.

Berechtigungen

  1. Core-Route: masterdata/property Zugriff und Änderung; bulkstore verlangt das Änderungsrecht gesondert.
  2. Funktionsschlüssel: list, edit, delete, debug; statusdelete (ohne Endpunkt); map, export (SYSTEM); brokerend (BASE). Einen Schlüssel add gibt es nicht, daher braucht auch eine neue Immobilie edit; computeareas läuft mit edit oder add.
  3. Inhaltsbereich: bei Auswahl und Speichern des Clients (Betreibers), bei Dokumenten, dem Hauptbild, dem Export und bei Dokumenten in der REST-Schnittstelle.

Beziehungen

Verträge (property_id, zu vermittelnde Immobilien, Vollmachtshinweis, Löschschutz); Datenraum (Kacheln, Datenblatt, Galerie, Dokumente im freigegebenen Ordner); Dokumentenzentrale (Ablage, Verknüpfung, Massenschaltfläche „Der Immobilie zuordnen“); freigegebene Ordner (Objektauswahl); Tourismussteuererklärung an die Steuerbehörde (Unterkunftsauswahl getOperatedProperties()); Geo-Karte; Inserate; Labels; Shops; REST (api/masterdata/property; Katalogmodell: getPropertyForApi(), getPropertyChanges()).

Related topics: Immobilie Berechtigungen Karte