Feldregister des Immobiliendatenblatts, Flächenberechnung und Versorgungszuordnung
In Spalten und in JSON gespeicherte Datenblattfelder, typabhängige Sichtbarkeit, Normalisierung, Flächenberechnung nach Raumtypregeln, Versorgungszähler und Zuordnung von Kostenrechnungen.
Das Feldregister liegt SQL-frei in der Bibliothek Dlbtproperty (TYPES, USES, COLUMNS, FIELDS, GROUPS, RETIRED, ROOM_TYPES, UTILITIES, DOC_ROLES, ENERGY_SCALE, COUNTS_AS, AREA_BUCKETS). Die Speicherung gehört dem Eigentümermodell.
Felder
- In Spalten (durchsuchbar):
area_net,area_gross,area_plot,rooms,half_rooms,build_year(1000–2200),floor_level(−5–200),building_floors; dazuarea_terrace,area_garden,area_storage,wc_count,bathroom_count. - In JSON (
details): Auswahl-, Mehrfach-, Ja/Nein- und Datumsfelder der Gruppen (size,building,condition,comfort,parking,energy,energy_cert,plot,development,commercial). - Typen: flat, house, terraced, holiday, plot, development, condominium, office, retail, warehouse, garage, agricultural, hospitality, other; Nutzungen: residential, office, retail, hospitality, warehouse, workshop, medical, education.
- Sichtbarkeit: Ein Feld erscheint, wenn es zu einem gewählten Typ gehört; ohne Typ alle. Text höchstens 255 Zeichen.
- Stillgelegte Inseratsfelder (
RETIRED: available_from, min_rent_months, deposit_months, pets, smoking, common_cost_payer, utility_payer) erscheinen weder im Formular noch im Datenblatt oder Export, frühere Werte werden aber aus versteckten Feldern zurückgeschrieben. - Alte Parkwerte:
garage_includedundgarage_optional→garage,none→ entfernt.
Normalisierung
normalize(): Nur Felder der gewählten Typen bleiben, Zahlen außerhalb des Bereichs werden NULL (ohne Fehler), Auswahl- und Mehrfachwerte sind auf eine Positivliste beschränkt. normalizeRooms(): leere Zeilen entfallen, unbekannter Typ wird other, negative Fläche 0. normalizeMeters(): Zeilen ohne Kennung entfallen.
Flächenberechnung
computeAreas()rechnet mit den Regeln des Raumtypstamms, wenn Räume und Regeln vorhanden sind; überschreibtarea_net,rooms,half_rooms,wc_count,bathroom_count,area_terrace,area_garden,area_storage.- Die Summe Fläche ×
area_factorder Typen ohne Schwelle ist die Wohnfläche; aus dem Topf der Schwellentypen zähltarea_factorbisthreshold_pct% der Wohnfläche, darüberfactor_over. - Zimmer (
counts_as = room): unterhalf_room_maxhalbes Zimmer; WC und Bad nach Anzahl. - Ein Gemeinschaftsraum (
ownership = common) zählt nicht zu Fläche und Anzahlen der Wohnung, nur zur Gemeinschaftssumme; ein Raum mit unbekanntem Code zählt als „Sonstiges, 100 %“. - Ohne Raumliste bleibt der manuelle Wert. Live-Berechnung: Endpunkt
computeareas(editoderadd), vom Formular mit 250 ms Verzögerung aufgerufen; leere Liste liefertempty.
Tabellen
Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation. property_room: property_id, level, room_type, name, area, windowless, sort_order, ownership (private, common). property_meter: property_id, utility, provider, identifier (indiziert), payer (owner, tenant), note. Die Raumtypauswahl bietet die aktiven Typen des Stamms und einen bereits erfassten, inzwischen deaktivierten Typ; vor der Migration die 20 eingebauten Typen.
Zuordnung von Kostenrechnungen
getByMatchValue(): zuerst match_value (aktive Immobilie), sonst property_meter.identifier; dann liefert sie auch utility und payer des Zählers. Ein Aufrufer dieser Methode wurde bei der Quellprüfung nicht gefunden; der Verwendungsort ist aus dem Code nicht feststellbar.