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 (mitlimit,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
identifierunddate_added). - Mit
brokerendwird 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
enable/disable:status1 / 0 mitedit; keine Inhaltsprüfung.delete(eine Zeile per GET oderselected[]per POST): zuerstgetLinkCount()für jede markierte (wie viele Verträge mitproperty_iddarauf verweisen); ist eine davon größer null, wird nichts gelöscht. Sonst löschtdeleteProperty()Stammzeile, Shop-Zeilen, Beschreibung, Räume und Versorgungskennungen; Dokumente, Vollmachten und Kartenpunkt bleiben.- Der Schlüssel
statusdeletesteht im Katalog, hat aber keinen Endpunkt: Papierkorb-Löschung ist bei Immobilien nicht verfügbar.
Shop-Massenzuordnung, Karte, Export
bulkstore(POSTselected[],modeadd oder remove,store_ids[]): für ein Elementedit, für mehrerecanBulkAction(route, 'edit'), zusätzlich das Core-Änderungsrecht;Dlbtstorebulk::apply()schreibt übergetPropertyStoresundsavePropertyStoresdes 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 durchDlbtproperty::exportShape(), als Download. autocomplete: höchstens 8 aktive Immobilien; genutzt vom Inseratsformular und vom Formular des freigegebenen Ordners.
Berechtigungen
- Core-Route:
masterdata/propertyZugriff und Änderung;bulkstoreverlangt das Änderungsrecht gesondert. - Funktionsschlüssel:
list,edit,delete,debug;statusdelete(ohne Endpunkt);map,export(SYSTEM);brokerend(BASE). Einen Schlüsseladdgibt es nicht, daher braucht auch eine neue Immobilieedit;computeareasläuft miteditoderadd. - 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()).