Ignore:
Timestamp:
11/09/18 14:17:35 (5 years ago)
Author:
frank.jaeger
Message:

Anpassung der ALKIS-Auskunft (PHP) an die Full-Schema-Version des ALKIS-Importers 3.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/info/info/alkisn/alkisfkt.php

    r405 r412  
    1616        2018-04-23 Berechtigte Buchungen im FS-Nachw. verbessern. Neue Spalte statt Überschriften fÃŒr "EigentÃŒmer" und "Berechtigte Buchungen". 
    1717        2018-05-03 GrundstÃŒcksnachweis 
    18 ++ ToDo: Parameter $lnkclass in eigentuemer() und $jfenster in buchung_anzg() vereinheitlichen 
     18        2018-11-09 Umstellung Full-Schema 
     19 
     20        ++ ToDo: Parameter $lnkclass in eigentuemer() und $jfenster in buchung_anzg() vereinheitlichen 
    1921*/ 
    2022 
     
    9395 
    9496        $sqlbs="SELECT sh.gml_id AS hgml, sh.buchungsart, sh.laufendenummer as lfd, sh.zaehler, sh.nenner, sh.nummerimaufteilungsplan as nrpl, sh.beschreibungdessondereigentums as sond, " // Buchungs-Stelle herrschend 
    95         ."b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.v AS bart, a.d AS barttitle, w.v AS blattartv " 
     97        ."b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.beschreibung AS bart, a.dokumentation AS barttitle, w.beschreibung AS blattartv " 
    9698        ."FROM ax_buchungsstelle sh " 
    9799        ."JOIN ax_buchungsblatt b ON b.gml_id=sh.istbestandteilvon " 
    98100        ."LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk " 
    99         ."LEFT JOIN alkis_wertearten a ON sh.buchungsart=cast(a.k AS integer) AND a.element='ax_buchungsstelle' and a.bezeichnung='buchungsart' " // entschl. Buchungsart 
    100         ."LEFT JOIN alkis_wertearten w ON b.blattart=w.k AND w.element='ax_buchungsblatt' and w.bezeichnung='blattart' " // entschl. Blatt-Art 
     101        ."LEFT JOIN ax_buchungsart_buchungsstelle a ON sh.buchungsart = a.wert " // entschl. Buchungsart 
     102        ."LEFT JOIN ax_blattart_buchungsblatt w ON b.blattart = w.wert " // entschl. Blatt-Art 
    101103        ."WHERE sh.gml_id= $1 AND sh.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL;"; 
    102104 
     
    321323                $v=array($gml_bs); 
    322324        } else { 
    323                 $sql.="AND f.kreis = $2 AND f.gemeinde = $3 "; // ZustÀndiges Gebiet 
     325                $sql.="AND f.gemeindezugehoerigkeit_kreis = $2 AND f.gemeindezugehoerigkeit_gemeinde = $3 "; // ZustÀndiges Gebiet 
    324326                $v=array($gml_bs, $filtkreis, $filtgem); 
    325327        } 
     
    415417        } 
    416418 
    417         $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass, n.benennt, wn.v AS adrv, we.v AS eiartv " 
     419        $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass, n.benennt, wn.beschreibung AS adrv, we.beschreibung AS eiartv " 
    418420        ."FROM ax_namensnummer n " 
    419         ."LEFT JOIN alkis_wertearten wn ON cast(n.artderrechtsgemeinschaft AS character varying)=wn.k AND wn.element='ax_namensnummer' AND wn.bezeichnung='artderrechtsgemeinschaft' " 
    420         ."LEFT JOIN alkis_wertearten we ON cast(n.eigentuemerart AS character varying)=we.k AND we.element='ax_namensnummer' AND we.bezeichnung='eigentuemerart' " 
     421        ."LEFT JOIN ax_artderrechtsgemeinschaft_namensnummer wn ON n.artderrechtsgemeinschaft = wn.wert " 
     422        ."LEFT JOIN ax_eigentuemerart_namensnummer we ON n.eigentuemerart = we.wert " 
    421423        ."WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;"; 
    422424        // +++  LEFT JOIN bis ax_Person statt Person als Schleife zu holen,  
     
    579581 
    580582function werteliste ($element, $bezeichnung ,$sqlin) { 
    581         // Eine oder mehrere EntschlÃŒsselungen aus "alkis_wertearten" in eine Zeile ausgeben. 
     583        // Eine oder mehrere EntschlÃŒsselungen in eine Zeile ausgeben. 
    582584        // Dient dazu, SchlÃŒssel-ARRAYs auflösen ohne die Zeile mehrfach aufzulisten (JOIN) 
    583585        // Anwendung: FS-Nachweis BodenschÀtzung "Klimastufe + WasserverhÀltnisse" 
     586        // 2018-11-09: Umstellung von "alkis_wertearten" auf individuelle Tabellen 
     587 
    584588        global $debug; 
    585         $sql="SELECT k, v FROM alkis_wertearten WHERE element = $1 AND bezeichnung = $2 AND k IN (".$sqlin.") ORDER BY k;"; 
    586         $v = array($element, $bezeichnung); 
     589        if ($element == 'ax_bodenschaetzung' AND $bezeichnung = 'entstehungsartoderklimastufewasserverhaeltnisse' ) { 
     590                $tabelle = 'ax_entstehungsartoderklimastufewasserverhaeltnisse_bodensc'; 
     591        } elseif ($element == 'ax_bodenschaetzung' AND $bezeichnung = 'sonstigeangaben' ) { 
     592                $tabelle = 'ax_sonstigeangaben_bodenschaetzung'; 
     593        } 
     594        $sql="SELECT wert, beschreibung FROM ".$tabelle." WHERE wert IN (".$sqlin.") ORDER BY wert LIMIT $1 ;"; 
     595        $v = array(100); 
    587596        $res = pg_prepare("", $sql); 
    588597        $res = pg_execute("", $v); 
    589598        if (!$res) { 
    590                 echo "\n<p class='err'>Fehler bei Werteliste aus alkis_wertearten.</p>"; 
     599                echo "\n<p class='err'>Fehler bei Werteliste.</p>"; 
    591600                if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = '".$sqlin."'</p>";} 
    592601                return; 
     
    594603        $i=0; 
    595604        while($row = pg_fetch_assoc($res)) { 
    596                 echo " ".$row["v"]; 
     605                echo " ".$row["beschreibung"]; 
    597606                $i++;    
    598607        } 
    599608        pg_free_result($res); 
    600         if ($i == 0 ) {echo "(kein Treffer)";} 
     609        if ($i == 0) {echo "(kein Treffer)";} 
    601610        return; 
    602611} 
Note: See TracChangeset for help on using the changeset viewer.