Changeset 333 for trunk


Ignore:
Timestamp:
09/15/14 15:11:32 (5 years ago)
Author:
frank.jaeger
Message:

Anpassung der Programme und Views an verschieden lange gm_id und Datenbanken mit historischen Objekten.

Location:
trunk
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/konv_nachverarbeitung.sh

    r330 r333  
    3737echo "Connection: " $con 
    3838 
     39# zur Sicherheit (wÀhren der Umstellung) auch die Definitionen erneuern 
     40echo "** - PP-Views aktualisieren:" 
     41(cd $POSTNAS_HOME; psql $con -f pp_definition.sql) 
     42 
    3943# Post-Processing / Nacharbeiten 
    4044 
     
    4448sleep 1 
    4549 
    46 echo "** - Fluren, Gemarkungen, Gemeinden und Straßen-Namen neu Laden:" 
     50echo "** - Fluren, Gemarkungen, Gemeinden und Straßen-Namen neu Laden:" 
    4751(cd $POSTNAS_HOME; psql $con -f pp_laden.sql) 
    4852 
  • trunk/import/pp_definition.sql

    r332 r333  
    4444 
    4545-- Alles auf Anfang 
    46 /* 
     46 
    4747 DROP VIEW IF EXISTS gemeinde_person_typ1; 
    4848 DROP VIEW IF EXISTS gemeinde_person_typ2; 
     
    5252 DROP VIEW IF EXISTS pp_gemarkung_analyse; 
    5353 
     54/* 
    5455 DROP TABLE gemeinde_person; 
    5556 DROP TABLE pp_gemeinde; 
     
    279280  JOIN ax_buchungsblatt   b  ON n.istBestandteilVon=substring(b.gml_id,1,16)   -- Namensnummer >istBestandteilVon> Blatt 
    280281  JOIN ax_buchungsstelle  s1 ON s1.istbestandteilvon=substring(b.gml_id,1,16)  -- Blatt <istBestandteilVon< buchungsStelle1 
    281   JOIN ax_buchungsstelle  s2 ON substring(s2.gml_id,1,16)= ANY(s1.an)          -- buchungsStelle2 <(recht)an< buchungsStelle1 
     282  JOIN ax_buchungsstelle  s2 ON substring(s2.gml_id,1,16)=ANY(s1.an)           -- buchungsStelle2 <(recht)an< buchungsStelle1 
    282283  JOIN ax_flurstueck      f  ON f.istgebucht=substring(s2.gml_id,1,16)         -- buchungsStelle2 < istGebucht < flurstÃŒck 
    283284  JOIN ax_gemarkung       k  ON f.land=k.land AND f.gemarkungsnummer=k.gemarkungsnummer  
  • trunk/info/info/alkis/alkisausk.php

    r330 r333  
    1515        2013-04-08 deprecated "import_request_variables" ersetzt 
    1616        2014-01-28 Link zu alkisstrasse.php 
    17         2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    18  
    19 +++ NOCH UMSTELLEN:  alkis_beziehungen 
     17        2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    2018 
    2119*/ 
     
    5048 
    5149// *** F L U R S T U E C K *** 
    52 $sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung "; 
    53 $sql.="FROM ax_flurstueck f "; 
    54 $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    55 $sql.="WHERE f.gml_id= $1;"; 
    56 // Weiter joinen: g.stelle -> ax_dienststelle "Katasteramt" 
     50$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung  
     51FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
     52WHERE f.gml_id= $1 AND f.endet IS NULL;"; 
    5753 
    5854$v = array($gmlid); 
     
    139135 
    140136// Lagebezeichnung MIT Hausnummer (Adresse) 
    141 $sql ="SELECT DISTINCT l.gml_id, s.gml_id AS kgml, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung "; 
    142 $sql.="FROM alkis_beziehungen v "; 
    143 $sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=substring(l.gml_id,1,16) "; // Strassennamen JOIN 
    144 $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    145 $sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart='weistAuf' ";// id FS"; 
    146 $sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
     137$sql ="SELECT DISTINCT l.gml_id, s.gml_id AS kgml, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung  
     138FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(f.weistauf) 
     139LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
     140WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
     141 
    147142$v = array($gmlid); 
    148143$res = pg_prepare("", $sql); 
     
    174169// *** G R U N D B U C H *** 
    175170echo "\n<h2><img src='ico/Grundbuch_zu.ico' width='16' height='16' alt=''> Grundbuch</h2>"; 
    176 // ALKIS: FS --> bfs --> GS --> bsb --> GB. 
    177 $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, "; 
    178 $sql.="s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, "; 
    179 $sql.="z.bezeichnung, a.bezeichner AS bart ";  // stelle -> amtsgericht 
    180 $sql.="FROM alkis_beziehungen bfs "; // Bez Flurst.- Stelle. 
    181 $sql.="JOIN ax_buchungsstelle s ON bfs.beziehung_zu=s.gml_id "; 
    182 $sql.="JOIN alkis_beziehungen bsb ON s.gml_id=bsb.beziehung_von "; // Bez. Stelle - Blatt 
    183 $sql.="JOIN ax_buchungsblatt b ON bsb.beziehung_zu=b.gml_id "; 
    184 $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 
    185 $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert "; 
    186 $sql.="WHERE bfs.beziehung_von= $1 "; 
    187 $sql.="AND bfs.beziehungsart='istGebucht' "; 
    188 $sql.="AND bsb.beziehungsart='istBestandteilVon' "; 
    189 $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;"; 
     171// ALKIS: FS >istgebucht> GS >istBestandteilVon> GB. 
     172$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart,  
     173s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, a.bezeichner AS bart  
     174FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id  
     175JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id  
     176LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk  
     177LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert  
     178WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL  
     179ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;"; 
    190180 
    191181$v = array($gmlid); 
     
    260250 
    261251                // Ausgabe Name in Function 
    262                 $n = eigentuemer($con, $rowg["gml_id"], false); // ohne Adressen 
    263  
    264                 if ($n == 0) { // keine Namensnummer, kein Eigentuemer 
     252                $n = eigentuemer($con, $rowg["gml_id"], false); // ohne Adr. 
     253 
     254                if ($n == 0) { // keine NamNum, kein Eigent. 
    265255                        echo "\n<p class='err'>Keine Eigent&uuml;mer gefunden.</p>"; 
    266256                        echo "\n<p class='err'>Bezirk ".$rowg["bezirk"]." Blatt ".$rowg["blatt"]." Blattart ".$blattkey." (".$blattart.")</p>"; 
  • trunk/info/info/alkis/alkisauszug.css

    r330 r333  
    1111        2013-06-27      p.recht 
    1212        2014-01-27      strasse, hsnr, Print-Balken 
     13        2014-09-15  PostNAS 0.8: p.cnt 
    1314*/ 
    1415body    {background-color: #FDFFFD;} 
     
    4142p.err           {font-size: 11px; color: red;}          /* Fehler -> Anwender */ 
    4243p.dbg           {font-size: 10px; color: gray;}         /* Debug -> Entwickler */ 
     44p.cnt           {font-size: 10px; color: gray;}         /* Counter, Zaehler */ 
    4345p.warn          {color: gray; font-style: italic;}      /* Warnung, Hinweis */ 
    4446p.ph            {color: gray;}                                          /* Platzhalter */ 
  • trunk/info/info/alkis/alkisbestnw.php

    r332 r333  
    1212        2013-04-08 deprecated "import_request_variables" ersetzt 
    1313        2014-09-10 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    14         2014-09-10 Bei Relationen den Timestamp abschneiden 
     14        2014-09-15 Bei Relationen den Timestamp abschneiden 
    1515 
    1616        ToDo: ZÀhler fuer Anzahl FS in der Liste 
     
    119119        WHERE sh.istbestandteilvon= $1 AND sd.endet IS NULL AND sh.endet IS NULL;"; 
    120120 
    121         $v=array(substr($gmlid,1,16)); // GB-Blatt, in Relation immer nur 16 Zeichen 
     121        $v=array(substr($gmlid,0,16)); // GB-Blatt, in Relation immer nur 16 Zeichen 
    122122        $res=pg_prepare("", $sql); 
    123123        $res=pg_execute("", $v); 
     
    164164WHERE s.istbestandteilvon= $1 AND s.endet IS NULL ORDER BY cast(s.laufendenummer AS integer);"; 
    165165 
    166 $v=array($gmlid); 
     166$v=array(substr($gmlid,0,16)); //  Rel. istbestandteilvon nur 16 Zeichen 
    167167$res=pg_prepare("", $sql); 
    168168$res=pg_execute("", $v); 
     
    170170if (!$res) { 
    171171        echo "<p class='err'>Fehler bei Buchung.</p>\n"; 
    172         if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
     172        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";} 
    173173} 
    174174$i=0; 
    175175$fscnt=0; 
    176176while($row = pg_fetch_array($res)) { 
    177         $lfdnr  = $row["lfd"]; 
    178         $bvnr   = str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 
    179         $gml_bs = $row["gml_id"]; // id der buchungsstelle 
    180         $ba     = $row["bart"]; // Buchungsart aus Schluesseltabelle 
     177        $lfdnr=$row["lfd"]; 
     178        $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 
     179        $gml_bs= $row["gml_id"]; // id der buchungsstelle 
     180        $ba=$row["bart"]; // Buchungsart aus Schluesseltabelle 
    181181 
    182182        if ($row["zaehler"] == "") { 
     
    231231                        $b=0; 
    232232                        while($fbrow = pg_fetch_array($fbres)) { // genau 1 
    233                                 $fbgml   = $fbrow["gml_id"]; 
    234                                 $fbland  = $fbrow["land"]; 
    235                                 $fbbez   = $fbrow["bezirk"]; 
     233                                $fbgml  = $fbrow["gml_id"]; 
     234                                $fbland = $fbrow["land"]; 
     235                                $fbbez  = $fbrow["bezirk"]; 
    236236                                $fbblatt = $fbrow["blatt"]; 
    237                                 $fbbart  = blattart($fbrow["blattart"]); 
     237                                $fbbart = blattart($fbrow["blattart"]); 
    238238                                $beznam = $fbrow["beznam"]; 
    239239                                $b++; 
     
    323323                                echo "</td>"; 
    324324                                echo "\n\t<td colspan=7>"; 
    325                                         echo "<p class='warn'>Flurst&uuml;cke zu ".$bvnr." nicht im Datenbestand.</p>"; 
     325                                        echo "<p class='warn'>Flurst&uuml;cke zu ".$bvnr." nicht gefunden.</p>"; 
    326326                                echo "</td>"; 
    327327                        echo "\n</tr>"; 
     
    347347} else { 
    348348        if ($i > 5 and $fscnt > 5) { // nur wenn nicht auf einen Blick zu erkennen 
    349                 echo "\n<p class='dbg'>".$i." Buchungen mit ".$fscnt." Flurst&uuml;cken</p>\n"; 
     349                echo "\n<p class='cnt'>".$i." Buchungen mit ".$fscnt." Flurst&uuml;cken</p>\n"; 
    350350        } 
    351351} 
     
    366366WHERE sf.istbestandteilvon = $1 AND sf.endet IS NULL AND sb.endet IS NULL AND bb.endet IS NULL ORDER BY bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung;"; 
    367367 
    368 $v = array($gmlid); 
     368$v = array(substr($gmlid,0,16)); // nur 16 Zeichen in Relation 
    369369$resb = pg_prepare("", $sql); 
    370370$resb = pg_execute("", $v); 
    371371if (!$resb) { 
    372372        echo "<p class='err'>Fehler bei 'andere Berechtigte Bl&auml;tter.</p>\n"; 
    373         if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
     373        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";} 
    374374} 
    375375$b=0; // count: Blaetter 
  • trunk/info/info/alkis/alkisfkt.php

    r332 r333  
    1212        2014-02-06 Korrektur EigentÃŒmerart 
    1313        2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    14         2014-09-10 Bei Relationen den Timestamp abschneiden 
     14        2014-09-15 Bei Relationen den Timestamp abschneiden 
    1515*/ 
    1616 
     
    9090        Die Funktion wird je einmal aufgerufen fÃŒr die Buchungen direkt auf dem GB (Normalfall). 
    9191        Weiterere Aufrufe ggf. bei Erbbaurecht fÃŒr die mit "an" verknuepften Buchungsstellen. 
    92         Table-Tag und Kopfzeile im aufrufenden Programm.  
    93 */ 
    94         global $gkz, $idanzeige, $showkey; 
     92        Table-Tag und Kopfzeile im aufrufenden Programm. */ 
     93        global $debug, $gkz, $idanzeige, $showkey; 
    9594 
    9695        // F L U R S T U E C K 
    97         $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche "; 
    98         $sql.="FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16) ";  
    99         $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    100         $sql.="WHERE s.gml_id= $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     96        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche  
     97        FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16)  
     98        LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     99        WHERE s.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     100 
     101/* 
     102SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer,  
     103  f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche  
     104FROM ax_flurstueck f  
     105JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16)  
     106LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     107WHERE s.gml_id= 'DENW18AL00001hHb'  
     108  AND f.endet IS NULL  
     109  AND s.endet IS NULL  
     110  AND g.endet IS NULL  
     111ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner; 
     112 
     113$1 = 'DENW18AL00001hHb' */ 
    101114 
    102115        $v = array($gml_bs); 
     
    113126        while($rowf = pg_fetch_array($resf)) { 
    114127                $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT); 
    115  
    116 /*              $fskenn=str_pad($rowf["zaehler"], 5, "0", STR_PAD_LEFT); 
    117                 if ($rowf["nenner"] != "") { // Bruchnummer 
    118                         $fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT); 
    119                 } 
    120 */ 
    121128                // ohne fuehrende Nullen? 
    122129                $fskenn=$rowf["zaehler"]; 
     
    124131                        $fskenn.="/".$rowf["nenner"]; 
    125132                } 
    126  
    127133                $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;"; 
    128134 
     
    171177                $j++; 
    172178        } // Ende Flurstueck 
     179 
     180        if ($j == 0 ) { // nur Entw. 
     181                if ($debug > 1) { 
     182                        echo "<p class='dbg'>Keine FS gefunden</p>"; 
     183                } 
     184                if ($debug > 2) { 
     185                        echo "<p class='dbg'>SQL='".$sql."'<br>$1 = '".$gml_bs."'</p>"; 
     186                } 
     187        } 
     188 
    173189        pg_free_result($resf); 
    174190        return $j; 
     
    199215        $sqln.="FROM ax_namensnummer n WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;"; 
    200216 
    201         $v = array($gmlid); 
     217        $v = array(substr($gmlid,0,16)); // 16 Stellen bei Relationen 
    202218        $resn = pg_prepare("", $sqln); 
    203219        $resn = pg_execute("", $v); 
     
    205221        if (!$resn) { 
    206222                echo "<p class='err'>Fehler bei Eigent&uuml;mer</p>\n"; 
    207                 if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqln."<br>$1=gml= '".$gmlid."'</p>";} 
     223                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqln."<br>$1=gml= '".substr($gmlid,0,16)."'</p>";} 
    208224        } 
    209225 
     
    369385        } // End Loop NamNum 
    370386        echo "\n</table>\n"; 
    371         if ($n == 0) { 
    372                 // kommt vor bei "Fiktives Blatt", kein Fehler  
     387        if ($n == 0) { // bei "Fiktives Blatt" KEIN Fehler  
    373388                if ($debug > 0) {echo "<p class='dbg'>keine Namensnummern zum Blatt</p>";} 
    374                 if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";} 
     389                if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".substr($gmlid,0,16)."'</p>";} 
    375390        } 
    376391        pg_free_result($resn); 
  • trunk/info/info/alkis/alkisfshist.php

    r330 r333  
    1010        2012-11-27  Function split deprecated: explode 
    1111        2013-04-08  deprecated "import_request_variables" ersetzt 
    12         2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     12        2014-09-15  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    1313*/ 
    1414 
    1515function fzerleg($fs) { 
    16 /*      FlurstÌckskennzeichen (20) zerlegen als lesbares Format (wie im Balken): 
     16/*      Flurstueckskennzeichen (20) zerlegen als lesbares Format (wie im Balken): 
    1717        Dies FS-Kennz-Format wird auch als Eingabe in der Navigation akzeptiert  
    1818   ....*....1....*....2 
     
    8282        // Frage: kann das bei Historisierung wechseln? (Umflurung, Umgemarkung). Dann ggf. Fehler (nicht gefunden) 
    8383 
    84         $sqlv.="SELECT 'h' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueck h ".$wherecl; 
    85         $sqlv.="UNION "; 
    86         $sqlv.="SELECT 'o' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueckohneraumbezug o ".$wherecl; 
    87         $sqlv.="ORDER BY flurstueckskennzeichen"; 
     84        $sqlv.="SELECT 'h' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueck h ".$wherecl 
     85        ."UNION SELECT 'o' AS ftyp, gml_id, flurstueckskennzeichen FROM ax_historischesflurstueckohneraumbezug o ".$wherecl 
     86        ."ORDER BY flurstueckskennzeichen"; 
    8887 
    8988        $v=array($fsk); 
     
    146145        $whereclause="WHERE gml_id= $1 "; 
    147146        $v = array($gmlid); 
    148 } else {        // Alternativ: das FlurstÌcks-Kennzeichen wurde Ìbergeben 
     147} else {        // Alternativ: Flurst.-Kennz. uebergeben 
    149148        if ($fskennz != "") { 
    150149                $parmtyp="Flurst&uuml;ckskennzeichen"; 
     
    163162        $felder="gml_id, flurnummer, zaehler, nenner, flurstueckskennzeichen, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, "; 
    164163 
    165         $sqlu ="SELECT 'a' AS ftyp, ".$felder."null AS nach, null AS vor, null AS \"name\" "; 
    166         $sqlu.="FROM ax_flurstueck f ".$whereclause; 
    167         $sqlu.="UNION "; 
    168         $sqlu.="SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name "; 
    169         $sqlu.="FROM ax_historischesflurstueck h ".$whereclause; 
    170         $sqlu.="UNION "; 
    171         $sqlu.="SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name "; 
    172         $sqlu.="FROM ax_historischesflurstueckohneraumbezug o ".$whereclause; 
    173          
     164        $sqlu ="SELECT 'a' AS ftyp, ".$felder."null AS nach, null AS vor, null AS \"name\" FROM ax_flurstueck f ".$whereclause." AND f.endet IS NULL " 
     165        ."UNION SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueck h ".$whereclause." AND h.endet IS NULL " 
     166        ."UNION SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueckohneraumbezug o ".$whereclause." AND o.endet IS NULL;"; 
     167 
    174168        $resu = pg_prepare("", $sqlu); 
    175169        $resu = pg_execute("", $v); 
     
    185179                $flae=number_format($rowu["amtlicheflaeche"],0,",",".") . " m&#178;"; 
    186180                $name=$rowu["name"]; // in DB ein Array 
    187         //      $arrn=split(",", trim($name, "{}") ); // split ist deprecated! 
    188181                $arrn=explode(",", trim($name, "{}") ); // PHP-Array  
    189182                $gemkname= gemkg_name($gmkgnr); 
     
    191184                $vor=$rowu["vor"]; 
    192185                $nach=$rowu["nach"]; 
    193                 if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fÌr selbst-link-Umschalter ueber footer 
     186                if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fuer selbst-link-Umschalter ueber footer 
    194187        } else { 
    195188                if ($debug > 1) {echo "<br><p class='err'>Fehler! Kein Treffer f&uuml;r ".$parmtyp." = '".$parmval."'</p><br>";} 
     
    198191} 
    199192 
    200 switch ($ftyp) { // Unterschiede Historisch/Aktuell 
     193switch ($ftyp) { // Unterschiede Hist./Aktuell 
    201194        case 'a':  
    202195                $wert = "aktuell"; 
  • trunk/info/info/alkis/alkisfsnw.php

    r330 r333  
    2121        2014-02-06 Korrektur 
    2222        2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    23         2014-09-10 Bei Relationen den Timestamp abschneiden 
     23        2014-09-15 Bei Relationen den Timestamp abschneiden 
    2424 
    2525        ToDo: 
     
    9595        // Feld flurstueckskennzeichen ist in DB indiziert 
    9696        // Format z.B.'052647002001910013__' oder '05264700200012______' 
    97         $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 ;"; 
     97        $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 AND endet IS NULL ;"; 
    9898 
    9999        $v = array($fskzdb); 
     
    195195 
    196196// G e m e i n d e 
    197 $sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3";  
     197$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3 AND endet IS NULL;";  
    198198 
    199199$v = array($bezirk,$kreis,$gemeinde); 
     
    224224 
    225225// K r e i s 
    226 $sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2";  
     226$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2 AND endet IS NULL;";  
    227227$v = array($bezirk,$kreis); 
    228228$res = pg_prepare("", $sql); 
     
    242242 
    243243// R e g - B e z 
    244 $sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 "; 
     244$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 AND endet IS NULL;"; 
    245245$v = array($bezirk); 
    246246$res = pg_prepare("", $sql); 
     
    267267FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16) = ANY(f.weistauf)   
    268268JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
    269 WHERE f.gml_id= $1 ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
     269WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL     
     270ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
    270271 
    271272$v = array($gmlid); 
     
    316317FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf)  
    317318LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
    318 WHERE f.gml_id = $1 ;"; 
     319WHERE f.gml_id = $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL;"; 
    319320 
    320321$v = array($gmlid); 
     
    370371// ** N U T Z U N G ** Gemeinsame FlÀche von NUA und FS 
    371372// Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben 
    372 $sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe, "; 
    373 $sql.="st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla "; 
    374 $sql.="FROM ax_flurstueck f, nutzung n JOIN nutzung_meta m ON m.nutz_id=n.nutz_id "; 
    375 $sql.="LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class "; 
    376 $sql.="WHERE f.gml_id= $1 AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true "; // id FS, ueberlappende Flaechen 
    377 $sql.="AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 "; // unter Rundung 
    378 $sql.="ORDER BY schnittflae DESC;"; 
     373$sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe,  
     374st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla  
     375FROM ax_flurstueck f, nutzung n JOIN nutzung_meta m ON m.nutz_id=n.nutz_id  
     376LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class  
     377WHERE f.gml_id= $1 AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true  
     378AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05  
     379AND f.endet IS NULL ORDER BY schnittflae DESC;"; 
    379380 
    380381$v = array($gmlid); 
     
    499500//  b.name, b.artderfestlegung,  
    500501 
    501 $sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, "; 
    502 $sql_boden.="b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key "; 
    503 $sql_boden.="FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert=b.artderfestlegung "; 
    504 $sql_boden.="LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle "; 
    505 $sql_boden.="WHERE ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry) "; 
    506 $sql_boden.="OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry)"; 
     502$sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez,  
     503b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key  
     504FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert=b.artderfestlegung  
     505LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle  
     506WHERE b.endet IS NULL AND d.endet IS NULL   
     507AND ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 ), wkb_geometry)  
     508OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 ), wkb_geometry)"; 
     509 
    507510pg_prepare($con, "bodeneuordnung", $sql_boden); 
    508511$res_bodeneuordnung = pg_execute($con, "bodeneuordnung", array($gmlid)); 
    509512 
    510 $sql_str = "SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE 1000 = ANY(artderflurstuecksgrenze) AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry);"; 
     513$sql_str = "SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry);"; 
    511514pg_prepare($con, "strittigeGrenze", $sql_str); 
    512515$res_strittigeGrenze = pg_execute($con, "strittigeGrenze", array($gmlid)); 
     
    615618FROM ax_flurstueck f JOIN ax_buchungsstelle s ON substring(s.gml_id,1,16)=f.istgebucht  
    616619LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart=b.wert  
    617 WHERE f.gml_id= $1 ORDER BY s.laufendenummer;"; 
     620WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL ORDER BY s.laufendenummer;"; 
    618621 
    619622$v = array($gmlid); 
     
    631634 
    632635        // B U C H U N G S B L A T T  zur Buchungsstelle (istBestandteilVon) 
    633         $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung "; 
    634         $sql.="FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=s.istbestandteilvon "; 
    635         $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 
    636         $sql.="WHERE s.gml_id = $1 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 
     636        $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung  
     637        FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=s.istbestandteilvon  
     638        LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk  
     639        WHERE s.gml_id = $1 AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 
     640        ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 
    637641 
    638642        $v = array($gmls); 
     
    742746        } 
    743747 
    744         // Buchungstelle  >an>  Buchungstelle  >istBestandteilVon>  BLATT  -> Bezirk 
    745         $sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond, "; 
    746         $sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart "; 
    747         $sql.="FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an) "; // Stelle >an> Stelle 
    748         $sql.="JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=sd.istbestandteilvon  ";// Stelle >istbestandteilvon> Blatt 
    749         $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 
    750         $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON sd.buchungsart=a.wert "; 
    751         $sql.="WHERE sh.gml_id= $1 "; // id herrschende Buchungsstelle 
    752         $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 
    753  
    754         $v = array($gmls); 
     748        // Buchungstelle >an> Buchungstelle >istBestandteilVon> BLATT -> Bezirk 
     749        $sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond,  
     750        b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart  
     751        FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an)  
     752        JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=sd.istbestandteilvon   
     753        LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk  
     754        LEFT JOIN ax_buchungsstelle_buchungsart a ON sd.buchungsart=a.wert  
     755        WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 
     756        ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 
     757 
     758        $v = array($gmls); // id herrschende Buchungsstelle 
    755759        $resan = pg_prepare("", $sql); 
    756760        $resan = pg_execute("", $v); 
    757761        if (!$resan) { 
    758                 echo "\n<p class='err'>Keine weiteren Buchungsstellen.</p>\n"; 
     762                echo "\n<p class='err'>Fehler bei 'weitere Buchungsstellen'.</p>\n"; 
    759763                if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";} 
    760764        } 
  • trunk/info/info/alkis/alkisgebaeudenw.php

    r330 r333  
    4343$sqlf ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, f.zeitpunktderentstehung, g.gemarkungsnummer, g.bezeichnung  
    4444FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
    45 WHERE f.gml_id= $1;"; 
     45WHERE f.gml_id= $1 AND f.endet IS NULL;"; 
    4646$v=array($gmlid); 
    4747$resf=pg_prepare("", $sqlf); 
     
    106106 
    107107// G e b a e u d e 
    108 $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, "; 
    109 $sqlg.="h.bauweise_beschreibung, u.bezeichner, g.zustand, z.bezeichner AS bzustand, "; 
     108$sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, h.bauweise_beschreibung, u.bezeichner, g.zustand, z.bezeichner AS bzustand, "; 
    110109 
    111110// GEB-Flaeche komplett auch die Fl. ausserhalb des FS 
     
    122121 
    123122// Entschluesseln 
    124 $sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id "; 
    125 $sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert "; 
    126 $sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert "; 
    127 $sqlg.="WHERE f.gml_id= $1 "; // ID des akt. FS 
     123$sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id  
     124LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert  
     125LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert  
     126WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; // ID des akt. FS 
    128127 
    129128// "within" -> nur Geb., die komplett im FS liegen 
    130 // "intersects" -> ueberlappende Fl. 
     129// "intersects" -> auch teil-ueberlappende Flst. 
    131130$sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true "; 
    132  
    133 // RLP: keine Relationen zu NebengebÀuden: 
    134 // auf Qualifizierung verzichten, sonst werden NebengebÀude nicht angezeigt 
    135         //$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') "; 
     131// RLP: keine Relationen zu NebengebÀuden. Auf Qualifizierung verzichten, sonst werden NebengebÀude nicht angezeigt 
     132//$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') "; 
    136133$sqlg.="ORDER BY schnittflae DESC;"; 
    137134 
     
    203200                        $sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(g.zeigtauf) "; 
    204201                        $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    205                         $sqll.="WHERE g.gml_id= $1 "; 
     202                        $sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; 
    206203 
    207204                        // oder NEBENgebÀude  Geb >hat> Pseudo 
     
    209206                        $sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON substring(l.gml_id,1,16)=g.hat "; 
    210207                        $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    211                         $sqll.="WHERE g.gml_id= $1 "; // ID des Hauses" 
     208                        $sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses" 
    212209                 
    213210                        $sqll.="ORDER BY bezeichnung, hausnummer;"; 
  • trunk/info/info/alkis/alkishaus.php

    r330 r333  
    5151 
    5252// // G e b a e u d e  
    53 $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, g.anzahlderunterirdischengeschosse AS aug, "; 
    54 $sqlg.="g.lagezurerdoberflaeche, g.dachgeschossausbau, g.zustand, g.weiteregebaeudefunktion, g.dachform, g.hochhaus, g.objekthoehe, g.geschossflaeche, g.grundflaeche, g.umbauterraum, g.baujahr, g.dachart, g.qualitaetsangaben, "; 
    55 $sqlg.="h.bauweise_beschreibung, u.bezeichner AS bfunk, z.bezeichner AS bzustand, "; 
    56 // "w.bezeichner AS bweitfunk, "; 
    57 $sqlg.="d.bezeichner AS bdach, round(area(g.wkb_geometry)::numeric,2) AS gebflae FROM ax_gebaeude g "; 
    58 // Entschluesseln 
    59 $sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id "; 
    60 $sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert "; 
    61 $sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert "; 
    62 $sqlg.="LEFT JOIN ax_gebaeude_dachform d ON g.dachform=d.wert "; 
    63  
    64 $sqlg.="WHERE g.gml_id= $1 AND g.endet IS NULL ;"; 
     53$sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, g.anzahlderunterirdischengeschosse AS aug,  
     54g.lagezurerdoberflaeche, g.dachgeschossausbau, g.zustand, g.weiteregebaeudefunktion, g.dachform, g.hochhaus, g.objekthoehe, g.geschossflaeche, g.grundflaeche, g.umbauterraum, g.baujahr, g.dachart, g.qualitaetsangaben,  
     55h.bauweise_beschreibung, u.bezeichner AS bfunk, z.bezeichner AS bzustand, "; // w.bezeichner AS bweitfunk, 
     56$sqlg.="d.bezeichner AS bdach, round(area(g.wkb_geometry)::numeric,2) AS gebflae FROM ax_gebaeude g  
     57LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id  
     58LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert  
     59LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert  
     60LEFT JOIN ax_gebaeude_dachform d ON g.dachform=d.wert 
     61WHERE g.gml_id= $1 AND g.endet IS NULL ;"; 
    6562 
    6663$v = array($gmlid); 
  • trunk/info/info/alkis/alkisinlayausk.php

    r330 r333  
    1919        2014-02-06 pg_free_result 
    2020        2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    21         2014-09-10 Bei Relationen den Timestamp abschneiden 
     21        2014-09-15 Bei Relationen den Timestamp abschneiden 
    2222*/ 
    2323session_start(); 
     
    5252 
    5353// *** F L U R S T U E C K *** 
    54 $sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung "; 
    55 $sql.="FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    56 $sql.="WHERE f.gml_id= $1 ;"; 
     54$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung  
     55FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     56WHERE f.gml_id= $1 AND f.endet IS NULL ;"; 
    5757// Weiter joinen: g.stelle -> ax_dienststelle "Katasteramt" 
    5858$v = array($gmlid); 
     
    114114FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(f.weistauf) 
    115115JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
    116 WHERE f.gml_id= $1 ORDER BY s.bezeichnung, l.hausnummer;"; 
     116WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL  
     117ORDER BY s.bezeichnung, l.hausnummer;"; 
    117118 
    118119$v=array($gmlid); // id FS 
     
    148149        FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf) 
    149150        LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
    150         WHERE f.gml_id= $1 ORDER BY s.bezeichnung;"; 
     151        WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL   
     152        ORDER BY s.bezeichnung;"; 
    151153 
    152154        $v=array($gmlid); 
     
    197199LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk  
    198200LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart=a.wert  
    199 WHERE f.gml_id= $1 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;"; 
     201WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL  
     202ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;"; 
    200203 
    201204$v=array($gmlid); 
  • trunk/info/info/alkis/alkislage.php

    r330 r333  
    1010        2014-01-23 gml des Katalogs, Link auf Modul "strasse" 
    1111        2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    12         2014-09-10 Bei Relationen den Timestamp abschneiden 
     12        2014-09-15 Bei Relationen den Timestamp abschneiden 
    1313 
    1414        ToDo: 
     
    7878LEFT JOIN ax_lagebezeichnungkatalogeintrag s  
    7979ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
    80 WHERE l.gml_id= $1;"; 
     80WHERE l.gml_id= $1 AND l.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL;"; 
    8181 
    8282$v = array($gmlid); 
     
    144144echo "<p>Typ: ".$untertitel."</p>"; 
    145145 
    146 echo "\n<table class='outer'>\n<tr>\n\t<td>";   // Tabelle Kennzeichen 
     146echo "\n<table class='outer'>\n<tr>\n\t<td>";   // Tab. Kennz. 
    147147        // ToDo: !! kleiner, wenn ltyp=0 und die Schluesselfelder leer sind 
    148148        echo "\n\t<table class='kennzla' title='Lage'>"; 
     
    234234 
    235235// F L U R S T U E C K E 
    236         // ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer 
    237         // ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer 
     236// ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer 
     237// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer 
    238238if ($ltyp <> "p") { // Pseudonummer linkt nur GebÀude 
    239239        echo "\n\n<a name='fs'></a><h3><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n"; 
     
    244244        } 
    245245 
    246         $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche "; 
    247         $sql.="FROM ax_flurstueck f "; 
    248         $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    249         $sql.="WHERE $1 = ANY(f.".$bezart.")"; 
    250         $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
    251  
    252         $v = array($gmlid); 
     246        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche  
     247        FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     248        WHERE $1 = ANY(f.".$bezart.") AND f.endet IS NULL AND g.endet IS NULL  
     249        ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     250 
     251        $v = array(substr($gmlid,0,16)); // Relation nur mit 16 Stellen  
    253252        $resf = pg_prepare("", $sql); 
    254253        $resf = pg_execute("", $v); 
    255254        if (!$resf) { 
    256255                echo "<p class='err'>Fehler bei Flurst&uuml;ck.</p>\n"; 
    257                 if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}      
     256                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";}         
    258257        } 
    259258 
     
    291290        } 
    292291        echo "\n</table>"; 
     292        if ($j > 6) { 
     293                echo "<p class='cnt'>".$j." Flurst&uuml;cke</p>"; 
     294        } 
    293295} 
    294296 
     
    310312                        echo "\n<p>Nebengeb&auml;ude: "; 
    311313                        $sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l "; 
    312                         $sql.=$whereclaus."AND lage= $6 AND pseudonummer= $7 ORDER BY laufendenummer;"; 
    313                 // pseudonummer character varying(5), laufendenummer character varying(2), 
     314                        $sql.=$whereclaus."AND lage= $6 AND pseudonummer= $7 AND l.endet IS NULL ORDER BY laufendenummer;"; 
    314315 
    315316                        $v = array($land,$regbez,$kreis,$gem,$lage,$lage,$hsnr); 
     
    329330                        echo "\n<p>Hauptgeb&auml;ude: "; 
    330331                        $sql ="SELECT l.gml_id FROM ax_lagebezeichnungmithausnummer l "; 
    331                         $sql.=$whereclaus."AND hausnummer= $6;"; 
     332                        $sql.=$whereclaus."AND hausnummer= $6 AND l.endet IS NULL ;"; 
    332333 
    333334                        $v = array($land,$regbez,$kreis,$gem,$lage,$pseu); 
     
    343344                        echo "\n<p>weitere Nebengeb&auml;ude: "; 
    344345                        $sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l "; 
    345                         $sql.=$whereclaus."AND pseudonummer= $6 AND laufendenummer <> $7 ORDER BY laufendenummer;"; 
     346                        $sql.=$whereclaus."AND pseudonummer= $6 AND laufendenummer <> $7 AND l.endet IS NULL ORDER BY laufendenummer;"; 
    346347                        $v = array($land,$regbez,$kreis,$gem,$lage,$pseu,$lfd); 
    347348                        $res = pg_prepare("", $sql); 
     
    369370        $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner  
    370371        FROM ax_gebaeude g LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id  
    371         LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert "; 
    372         // +++ JOIN Zustand 
    373         $sql.="WHERE $1 = ".$bezart.";"; 
    374  
    375         $v = array($gmlid); 
     372        LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert WHERE $1 = ".$bezart." AND g.endet IS NULL;"; 
     373 
     374        $v = array(substr($gmlid,0,16)); // 16 St. in Rel. 
    376375        $res = pg_prepare("", $sql); 
    377376        $res = pg_execute("", $v); 
    378377        if (!$res) { 
    379378                echo "<p class='err'>Fehler bei Geb&auml;ude.</p>\n"; 
    380                 if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
     379                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";} 
    381380        } 
    382381        echo "\n<table class='geb'>"; 
  • trunk/info/info/alkis/alkisstrasse.php

    r330 r333  
    1111        2014-01-30 pg_free_result 
    1212        2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    13         2014-09-10 Bei Relationen den Timestamp abschneiden 
     13        2014-09-15 Bei Relationen den Timestamp abschneiden 
    1414*/ 
    1515session_start(); 
     
    5555JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde  
    5656LEFT JOIN ax_lagebezeichnungohnehausnummer o ON s.land=o.land AND s.regierungsbezirk=o.regierungsbezirk AND s.kreis=o.kreis AND s.gemeinde=o.gemeinde AND s.lage=o.lage  
    57 WHERE s.gml_id= $1 ;";  
     57WHERE s.gml_id= $1 AND s.endet IS NULL AND o.endet IS NULL ;";  
    5858 
    5959$v=array($gmlid); 
     
    139139$subquery = "SELECT f1.gml_id AS fsgml, lm.gml_id AS lgml, lm.land, lm.regierungsbezirk, lm.kreis, lm.gemeinde, lm.lage, lm.hausnummer  
    140140 FROM ax_flurstueck f1 JOIN ax_lagebezeichnungmithausnummer lm ON substring(lm.gml_id,1,16)=ANY(f1.weistAuf)  
     141 WHERE f1.endet IS NULL AND lm.endet IS NULL 
    141142UNION SELECT f2.gml_id AS fsgml, '' AS lgml, lo.land, lo.regierungsbezirk, lo.kreis, lo.gemeinde, lo.lage, '' AS hausnummer  
    142  FROM ax_flurstueck f2 JOIN ax_lagebezeichnungohnehausnummer lo ON substring(lo.gml_id,1,16)=ANY(f2.zeigtauf) "; 
     143 FROM ax_flurstueck f2 JOIN ax_lagebezeichnungohnehausnummer lo ON substring(lo.gml_id,1,16)=ANY(f2.zeigtauf)  
     144 WHERE f2.endet IS NULL AND lo.endet IS NULL"; 
    143145 
    144146$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, duett.lgml, duett.hausnummer  
     
    146148 JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
    147149 JOIN ax_lagebezeichnungkatalogeintrag s ON duett.land=s.land AND duett.regierungsbezirk=s.regierungsbezirk AND duett.kreis=s.kreis AND duett.gemeinde=s.gemeinde AND duett.lage=s.lage  
    148 WHERE s.gml_id = $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     150WHERE s.gml_id = $1 AND f.endet IS NULL AND s.endet IS NULL  
     151ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
    149152 
    150153$v=array($gmlid); 
     
    166169echo "\n</tr>"; 
    167170$j=0; 
     171$cnths=0; // Count Haus 
    168172while($rowf = pg_fetch_array($resf)) { 
    169173        $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT); 
     
    190194                                if ($showkey)   {echo "&amp;showkey=j";} 
    191195                                echo "' title='Lage Mit Hausnummer'>Lage <img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>&nbsp;"; 
     196                                $cnths++; 
    192197                        } 
    193198 
     
    202207} 
    203208echo "\n</table>"; 
     209if ($j > 6) { 
     210        echo "<p class='cnt'>".$j." Flurst&uuml;cke"; 
     211        if ($cnths > 4) { 
     212                echo ", ".$cnths." H&auml;user"; 
     213        } 
     214        echo "</p>"; 
     215} 
    204216pg_free_result($res); 
    205217?> 
  • trunk/mapbender/http/nav/alkisnav_adr.php

    r330 r333  
    99        2014-01-23      Link zum Auskunft-Modul fÃŒr Straße 
    1010        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     11        2014-09-10  Bei Relationen den Timestamp abschneiden 
    1112 
    1213        ToDo: 
     
    240241                        } 
    241242                        $sqlko.="FROM ax_lagebezeichnungohnehausnummer o "; 
    242                         $sqlko.="JOIN ax_flurstueck f ON o.gml_id = ANY(f.zeigtauf) "; 
     243                        $sqlko.="JOIN ax_flurstueck f ON substring(o.gml_id,1,16)=ANY(f.zeigtauf) "; 
    243244                        $sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 ";        
    244245                        $sqlko.="LIMIT 1;"; // die erstbeste Koordinate 
     
    296297                        $sql.="avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y ";                
    297298                } 
    298                 $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON h.gml_id = ANY(p.dientzurdarstellungvon) "; 
    299                 $sql.="WHERE p.art = 'HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 
     299                $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON substring(h.gml_id,1,16)=ANY(p.dientzurdarstellungvon) "; 
     300                $sql.="WHERE p.art='HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 
    300301                $sql.="GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2) "; 
    301302                $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; 
  • trunk/mapbender/http/nav/alkisnav_eig.php

    r330 r333  
    1313                                Title auch auf Icon, IE zeigt sonst alt= als Title dar. 
    1414        2014-09-09  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     15        2014-09-15  Bei Relationen den Timestamp abschneiden 
    1516*/ 
    1617$cntget = extract($_GET); 
     
    6263        global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug 
    6364 
    64         $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; 
    65         $sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer "; 
    66         $sql.="FROM ax_person p LEFT JOIN ax_anschrift a ON a.gml_id = ANY(p.hat) "; 
    67         $sql.="WHERE p.gml_id= $1 AND p.endet IS NULL AND a.endet IS NULL LIMIT 1;";     
     65        $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil,  
     66        a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer  
     67        FROM ax_person p LEFT JOIN ax_anschrift a ON substring(a.gml_id,1,16)=ANY(p.hat)  
     68        WHERE p.gml_id= $1 AND p.endet IS NULL AND a.endet IS NULL LIMIT 1;";    
    6869        // Es wird nur eine Zeile ausgewertet 
    6970 
     
    128129        $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; 
    129130        if ($gfilter > 0) { 
    130                 $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; 
     131        //      $sql.="JOIN gemeinde_person g ON substring(p.gml_id,1,16) = substring(g.person,1,16) WHERE "; 
     132                $sql.="JOIN gemeinde_person g ON p.gml_id=g.person WHERE "; 
    131133                switch ($gfilter) { 
    132134                        case 1: // Einzel 
     
    192194        // Body 
    193195        // Suche nach GrundbÃŒchern der Person 
    194         $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam "; 
    195         $sql.="FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon = gb.gml_id "; 
    196         $sql.="JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk = b.bezirk "; 
    197         $sql.="WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL "; 
     196        $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam  
     197        FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon=substring(gb.gml_id,1,16)  
     198        JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk  
     199        WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL;"; 
    198200 
    199201        // Parameter $gbkennz, z.B. nach Klick auf Zeile "Bezirk" 
     
    218220                echo "\n<p class='ein'>Teil ".$bltseite; 
    219221        } 
    220         $v=array($person, $linelimit); 
     222        $v=array(substr($person,0,16), $linelimit); // nur 16 Stellen in Relation "benennt" 
    221223        $res=pg_prepare("", $sql); 
    222224        $res=pg_execute("", $v); 
     
    239241                $cnt++; 
    240242        } 
    241  
     243/* 
     244        if ($cnt == 0) { // Nur Entwicklg. 
     245                if ($debug > 1) { 
     246                        echo "\n<p class='err'>keine Buchung</p>"; 
     247                } 
     248                if ($debug > 2) { 
     249                        echo "<p class='dbg'>SQL = '".$sql."',<br>$1 = '".substr($person,0,16)."'<p>"; 
     250                } 
     251        } 
     252*/ 
    242253        // Foot 
    243254        if($cnt == 0) {  
     
    328339 
    329340        // Baustein 1: SQL-Anfang fuer beide Varianten 
    330         $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam, "; 
    331         $sql1.="s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemarkung, ot.gemarkungsname, "; 
     341        $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam,  
     342        s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemarkung, ot.gemarkungsname, "; 
    332343        if($epsg == "25832") { // Transform nicht notwendig 
    333344                $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; 
     
    339350 
    340351        // NamenNummer >istbestandteilvon> buchungsblatt <istbestandteilvon< buchungsstelle-1 
    341         $sql1.="FROM ax_namensnummer nn "; 
    342         $sql1.="JOIN ax_buchungsblatt gb ON gb.gml_id = nn.istbestandteilvon "; 
    343         $sql1.="JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; 
    344         $sql1.="JOIN ax_buchungsstelle s1 ON gb.gml_id = s1.istbestandteilvon "; 
     352        $sql1.="FROM ax_namensnummer nn  
     353        JOIN ax_buchungsblatt gb ON substring(gb.gml_id,1,16)=nn.istbestandteilvon  
     354        JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk 
     355        JOIN ax_buchungsstelle s1 ON substring(gb.gml_id,1,16)=s1.istbestandteilvon "; 
    345356 
    346357        // Baustein A: Auswahl 1 oder 2 
    347358        // buchungsstelle-1 <istGebucht< FS 
    348         $sqla1 ="JOIN ax_flurstueck f ON s1.gml_id = f.istgebucht "; 
     359        $sqla1 ="JOIN ax_flurstueck f ON substring(s1.gml_id,1,16)=f.istgebucht "; 
    349360 
    350361        // buchungsStelle1 (herr.) >an> buchungsStelle2 (dien.) <istGebucht< FS 
    351         $sqla2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id = ANY(s1.an) "; 
    352         $sqla2.="JOIN ax_flurstueck f ON s2.gml_id = f.istgebucht "; 
     362        $sqla2 ="JOIN ax_buchungsstelle s2 ON substring(s2.gml_id,1,16)=ANY(s1.an) "; 
     363        $sqla2.="JOIN ax_flurstueck f ON substring(s2.gml_id,1,16)=f.istgebucht "; 
    353364 
    354365        // Baustein 2: SQL-Ende fuer beide Varianten 
     
    360371        if ($kennztyp > 1) { // 2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR 
    361372                #if ($debug > 0) {echo "<p class='dbg'>Filter Bezirk '".$zgbbez."'<p>";} 
    362                 $sql2.="AND b.bezirk = ".$zgbbez." "; 
     373                $sql2.="AND b.bezirk = '".$zgbbez."' "; 
    363374                $bezirkaktuell = true; 
    364375        } else { 
     
    402413                // Blatt <istBestandteilVon<  Buchungsstelle <istGebucht< Flurstck. 
    403414                $sql=$sql1.$sqla1.$sql2.$bltwhere.$sql3; // Direkte Buchungen 
    404                 $v=array($person, $linelimit); 
     415 
     416                $v=array(substr($person,0,16), $linelimit); // Rel. "benennt" nur 16 Zeichen 
    405417                $res=pg_prepare("", $sql); 
    406418                $res=pg_execute("", $v); 
    407419                if (!$res) { 
    408420                        echo "\n<p class='err'>Fehler bei Buchung und Flurst&uuml;ck.</p>"; 
    409                         if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<p>";} 
     421                        if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."', $1 = '".substr($person,0,16)."'<p>";} 
    410422                        return; 
    411423                } 
     
    473485        } 
    474486 
     487/*      if ($zfs1 == 0) { // Nur Entw. - Start 
     488                if ($debug > 1) { 
     489                        echo "\n<p class='dbg'>Keine Buchung</p>"; 
     490                } 
     491                if ($debug > 2) { 
     492                        echo "<p class='dbg'>SQL = '".$sql."'<p>"; 
     493                } 
     494        } // Nur Entw. - Ende */ 
     495 
    475496        // FÀlle mit "Rechte an" 
    476497        if ($bltrecht != "ohne") { // "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung  
     
    478499                // buchungsStelle2 <an< buchungsStelle1 
    479500                $sql=$sql1.$sqla2.$sql2.$bltwhere."AND s2.endet IS NULL ".$sql3; // Rechte an 
    480                 $v=array($person, $linelimit); 
     501                $v=array(substr($person,0,16), $linelimit); 
    481502                $res=pg_prepare("", $sql); 
    482503                $res=pg_execute("", $v); 
  • trunk/mapbender/http/nav/alkisnav_fkt.php

    r330 r333  
    66        2014-02-06  Korrektur zeile_person 
    77        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     8        2014-09-10  Bei Relationen den Timestamp abschneiden 
    89*/ 
    910 
     
    248249 
    249250        // 2 Varianten zwischen 
    250     $sqlz1="JOIN ax_flurstueck f ON f.istgebucht = s1.gml_id "; 
     251    $sqlz1="JOIN ax_flurstueck f ON f.istgebucht=substring(s1.gml_id,1,16) "; 
    251252         
    252         $sqlz2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id = ANY(s1.an) "; // nur an oder "an" und "zu" ? 
     253        $sqlz2 ="JOIN ax_buchungsstelle s2 ON substring(s2.gml_id,1,16)=ANY(s1.an) "; // nur an oder "an" und "zu" ? 
    253254// Test: SELECT * FROM ax_buchungsstelle WHERE NOT zu IS NULL;  // keine Treffer fÃŒr "zu" 
    254 //      $sqlz2 ="JOIN ax_buchungsstelle s2 ON (s2.gml_id = ANY(s1.an) OR s2.gml_id = ANY(s1.zu)) ";  
    255     $sqlz2.="JOIN ax_flurstueck f ON f.istgebucht = s2.gml_id "; 
     255//      $sqlz2 ="JOIN ax_buchungsstelle s2 ON (substring(s2.gml_id,1,16)=ANY(s1.an) OR substring(s2.gml_id,1,16)=ANY(s1.zu)) ";  
     256    $sqlz2.="JOIN ax_flurstueck f ON f.istgebucht=substring(s2.gml_id,1,16) "; 
    256257 
    257258        // hinten gleich 
  • trunk/mapbender/http/nav/alkisnav_fls.php

    r330 r333  
    1010        2013-10-15  missing Parameter 
    1111        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     12        2014-09-10  Bei Relationen den Timestamp abschneiden 
    1213*/ 
    1314$cntget = extract($_GET); 
     
    308309                $match = trim($fskennz)."%"; 
    309310        }        
    310         $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname, s.gemeindename "; 
    311         $sql.="FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde = s.gemeinde "; 
    312         $sql.="WHERE g.gemarkungsname ILIKE $1 "; 
     311        $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname, s.gemeindename  
     312        FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde=s.gemeinde  
     313        WHERE g.gemarkungsname ILIKE $1 "; 
    313314        switch ($gfilter) { 
    314315                case 1: // Einzelwert 
    315                         $sql.="AND g.gemeinde='".$gemeinde."' "; break; 
     316                        $sql.="AND g.gemeinde='".$gemeinde."'"; break; 
    316317                case 2: // Liste 
    317318                        $sql.="AND g.gemeinde in ("."'".str_replace(",", "','", $gemeinde)."'".") "; break; 
     
    617618                                return; 
    618619                        } 
    619  
    620 /* 
    621  
    622  SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner  
    623  FROM ax_flurstueck  
    624  WHERE flurstueckskennzeichen IN ( '05265600400296______' )  
    625    AND endet IS NULL  
    626 UNION  
    627  SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner  
    628  FROM ax_historischesflurstueck  
    629  WHERE flurstueckskennzeichen IN ( '05265600400296______' )  
    630     AND endet IS NULL  
    631 UNION  
    632  SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner  
    633  FROM ax_historischesflurstueckohneraumbezug  
    634  WHERE flurstueckskennzeichen IN ( '05265600400296______' )  
    635    AND endet IS NULL ' 
    636  
    637 ==> UNION-Typen character varying und integer passen nicht zusammen  gemarkungsnummer 
    638  
    639 */ 
    640620 
    641621                        $zfsn=0; 
  • trunk/mapbender/http/nav/alkisnav_grd.php

    r330 r333  
    33        2013-04-16      "import_request_variables" entfÀllt in PHP 5.4 
    44        2013-04-26      Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" 
    5                                         Code aus _eig nach_fkt ausgelegert, hier mit nutzen.  
    6                                         Dazu Var-Namen harmonisieren: $gblatt wird $blattgml 
    7                                         ZurÃŒck-Link, Titel der Transaktion anzeigen. 
     5                                Code aus _eig nach_fkt ausgelegert, hier mit nutzen.  
     6                                Dazu Var-Namen harmonisieren: $gblatt wird $blattgml 
     7                                ZurÃŒck-Link, Titel der Transaktion anzeigen. 
    88        2013-04-29      Test mit IE 
    99        2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen 
     
    1111        2013-12-12      Limit in EinBlatt von 200 weit hoch gesetzt (bis BlÀttern möglich wird) 
    1212        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     13        2014-09-10  Bei Relationen den Timestamp abschneiden 
    1314*/ 
    1415$cntget = extract($_GET); 
     
    5455        $linelimit=40; 
    5556 
    56         $sql ="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle "; 
    57         $sql.="WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL "; // AG aus Liste 
    58         $sql.="ORDER BY bezeichnung LIMIT $1 ;"; 
     57        $sql ="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle  
     58        WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL  
     59        ORDER BY bezeichnung LIMIT $1 ;"; 
    5960        $res = pg_prepare("", $sql); 
    6061        $res = pg_execute("", array($linelimit)); 
     
    9394 
    9495        // Body 
    95         $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    96         $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 
    97         $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL "; 
    98         // Diese Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten: 
    99         $sql.="AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land AND b.bezirk=g.bezirk AND b.endet IS NULL LIMIT 1) IS NULL "; 
    100         $sql.="ORDER BY g.bezeichnung LIMIT $2 ;"; 
     96        // Die Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten 
     97        $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g  
     98        JOIN ax_dienststelle a ON g.stelle=a.stelle  
     99        WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL  
     100        AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land AND b.bezirk=g.bezirk AND b.endet IS NULL LIMIT 1) IS NULL  
     101        ORDER BY g.bezeichnung LIMIT $2 ;"; 
     102 
    101103        $v = array($agkey, $linelimit); 
    102104        $res = pg_prepare("", $sql); 
     
    129131        // Parameter = SchlÃŒssel des Bezirks 
    130132        #global $debug; 
    131         $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    132         $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 
     133        $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g  
     134        JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 
    133135        $v=array($gbbez); 
    134136        $res=pg_prepare("", $sql); 
     
    159161        global $gkz, $gemeinde, $debug, $gbkennz; 
    160162        $linelimit=80; 
    161         $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    162         $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 
    163         $sql.="WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL "; // "AND a.stellenart=1000 " Amtsgericht 
    164         $sql.="ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; 
     163 
     164        $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g  
     165        JOIN ax_dienststelle a ON g.stelle=a.stelle  
     166        WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL  
     167        ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;";// "AND a.stellenart=1000 " Amtsgericht 
    165168        if ( $gbkennz == "") { 
    166169                $match = "%"; 
     
    220223        } 
    221224        // Body 
    222         $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b "; 
    223         $sql.="WHERE b.bezirk= $1 AND b.endet IS NULL ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 
     225        $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b  
     226        WHERE b.bezirk= $1 AND b.endet IS NULL ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 
    224227        $v=array($zgbbez, $linelimit); 
    225228        $res=pg_prepare("", $sql); 
     
    254257        // Kennzeichen "Bezirk + Blatt" eingegeben. Dazu die gml_id des Blattes ermitteln. 
    255258        global $debug, $zgbbez, $zblatt, $zblattn, $zblattz; 
    256         $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b ";  
    257         $sql.="WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 
     259        $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b  
     260        WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 
    258261 
    259262        if ($zblattz == "") { // Ohne Buchstabenerweiterung: Formate '123','000123 ','0000123' 
     
    303306 
    304307        // Blatt ->  B u c h u n g s s t e l l e 
    305         $sql ="SELECT s.gml_id FROM ax_buchungsstelle s "; 
    306         $sql.="JOIN ax_buchungsblatt b ON s.istbestandteilvon = b.gml_id ";  
    307         $sql.="WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 
     308        $sql ="SELECT s.gml_id FROM ax_buchungsstelle s  
     309        JOIN ax_buchungsblatt b ON s.istbestandteilvon=substring(b.gml_id,1,16) 
     310        WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 
    308311 
    309312        if ($zblattz == "") { // Ohne Buchstabenerweiterung 
     
    421424        $sql.="gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez "; // AG und Bezirk dazu 
    422425        $sql.="FROM ax_buchungsstelle sh "; // herrschend 
    423         $sql.="JOIN ax_buchungsstelle sd ON sd.gml_id = ANY(sh.an) "; // dienend 
    424         $sql.="JOIN ax_flurstueck f ON f.istgebucht = sd.gml_ID "; 
     426        $sql.="JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an) "; // dienend 
     427        $sql.="JOIN ax_flurstueck f ON f.istgebucht=substring(sd.gml_id,1,16) "; 
    425428        $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 
    426         $sql.="JOIN ax_buchungsblatt bd ON sd.istbestandteilvon = bd.gml_id ";  // Blatt dienend 
     429        $sql.="JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=substring(bd.gml_id,1,16) ";    // Blatt dienend 
    427430        $sql.="JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk "; // GB-Bez. dienend 
    428431        $sql.="WHERE sh.gml_id = $1 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND bd.endet IS NULL "; 
Note: See TracChangeset for help on using the changeset viewer.