Changeset 422 for trunk/info/info/alkisn/alkisfsnw.php
- Timestamp:
- 06/24/21 15:59:16 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkisn/alkisfsnw.php
r419 r422 7 7 Version: 8 8 2016-02-24 Version fuer norGIS-ALKIS-Import 9 2016-03-14 Korrekturen 10 2016-12-01 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 11 2016-12-05 Nutzungsart-Kategorie ist nun in Text enthalten, nicht mehr aus der Definition ausschneiden 12 2017-06-08 optional "berechtigte Buchungen" anzeigen, Function "eigentuemer" ohne Parameter $con, 13 Validierung Eingabeparameter, Feinkorrekturen 14 2017-10-11 Sauber filtern auf 'endet IS NULL', Ausgabe der BodenschÀtzung 15 2017-10-11 Nachbesserung Formatierung der SchÀtzungs-Zeilen 16 2017-10-17 Zeitpunkt der Entstehung in deutschen Datumsformat 17 2017-11-03 Wertelisten fÃŒr Arrays in BodenschÀtzung ausgeben. 18 2017-12-08 Planung (Kommentare) der Erweiterung fÃŒr Berechtigte GrundbÃŒcher 19 2017-12-20 Links auf Lagebezeichnung verbessert. 20 2018-04-11 Variable "gmlid" an Function "ALKISexport" ÃŒbergeben. Ist beim Schreiben des Headers noch unbekannt, wenn mit "&fskennz=" aufgerufen. 21 2018-04-23 Umfangreiche Ãberarbeitung der "Buchungsstellen" 22 2018-05-03 Anpassung fÃŒr GrundstÃŒcksnachweis 23 2018-11-09 Umstellung Full-Schema 24 2018-11-19 EntschlÃŒsseln "zeigtaufexternes_art" mit function fortfuehrungen(). 25 2018-12-18 function fskenn_dbformat 26 27 ++ToDo: 9 ..... 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 2020-10-13 debug-infos raus 12 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 13 2020-12-09 Verschn. mit "Bau-, Raum- oder Bodenordnungsrecht" korrigiert, Entschl. BodenschÀtzung korrigiert 14 2020-12-16 Input-Validation und Strict Comparisation (===) 15 2021-03-09 Link zum GebÀudenachweis auch mit "Bauwerke" betiteln 16 17 ToDo: 28 18 - Buchung auf "fiktives Blatt" ist nur mit debug zu sehen: die <tr> in .css grau hinterlegen 29 - Umschalter (gleiches Modul) anders darstellen als Links zu anderenNachweisen19 - "Umschalter" (gleiches Modul) anders darstellen als Links zu ANDEREN Nachweisen 30 20 - Parameter zum Umschalten mit/ohne BodenschÀtzung? 31 21 - Bessere Differenzierung bei den Nutzungsarten (Tabelle dafÃŒr aufbauen) 32 22 */ 23 ini_set("session.cookie_httponly", 1); 33 24 session_start(); 25 34 26 $eig="n"; $showkey="n"; $nodebug=""; // Var. initalisieren 35 27 $cntget = extract($_GET); // alle Parameter in Variable umwandeln … … 41 33 } else { // Alternativ 42 34 $gmlid=''; 43 if (isset($fskennz)) { // llgggg-fff-11111/222 oder z.B.'052647002001910013__' oder '05264700200012______'35 if (isset($fskennz)) { 44 36 if (!preg_match('#^[0-9\-_/]{8,20}$#', $fskennz)) {die ("Eingabefehler fskennz");} 45 37 } else { 46 $fskennz=''; 47 } 48 } 49 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 38 die("Fehlender Parameter"); 39 } 40 } 41 if (isset($gkz)) { 42 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 43 } else { 44 die("Fehlender Parameter"); 45 } 50 46 if (!preg_match('#^[j|n]{0,1}$#', $eig)) {die("Eingabefehler eig");} 51 47 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 52 if ($showkey == "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als boolean umwandeln, ist praktischer abzufragen, wirdoft gebraucht48 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als bool, ist praktischer, oft gebraucht 53 49 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 54 50 55 require_once("alkis_conf_location.php"); 56 if ($auth == "mapbender") {require_once($mapbender);} 57 include("alkisfkt.php"); 51 include "alkis_conf_location.php"; 52 include "alkisfkt.php"; 58 53 ?> 59 54 <!doctype html> … … 73 68 <body> 74 69 <?php 70 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 71 75 72 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. Blendet z.B. "fiktives Blatt" aus. 76 73 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 77 if ($nodebug == "j") {$debug=0;}74 if ($nodebug === "j") {$debug=0;} 78 75 79 76 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfsnw.php'"); 80 77 if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>"; 81 78 82 // Ein FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt79 // Ein FlurstÃŒcks-Kennzeichen im DB-Format wurde alternativ zur gml_id ÃŒbermittelt 83 80 if ($fskennz != '') { 84 /* 85 $arr=explode("-", $fskennz, 4); // zerlegen 86 $zgemkg=trim($arr[0]); 87 if (strlen($zgemkg) == 20 and !isset($arr[1])) { 88 $fskzdb=$zgemkg; // Datenbank-Feldformat 89 } else { // Format "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz" 90 // Das Kennzeichen auseinander nehmen. 91 if (strlen($zgemkg) == 6) { 92 $land=substr($zgemkg, 0, 2); 93 $zgemkg=substr($zgemkg, 2, 4); 94 } else { // kein schöner Land .. 95 $land=$defland; // Default-Land aus config 96 } 97 $zflur=str_pad($arr[1], 3 , "0", STR_PAD_LEFT); // Flur-Nr 98 $zfsnr=trim($arr[2]); // FlurstÃŒcke-Nr 99 $zn=explode("/", $zfsnr, 2); // Bruch? 100 $zzaehler=str_pad(trim($zn[0]), 5 , "0", STR_PAD_LEFT); 101 if (isset($zn[1])) { 102 $znenner=trim($zn[1]); 103 } else { 104 $znenner=""; 105 } 106 if (trim($znenner, " 0.") == "") { // kein Bruch oder nur Nullen 107 $znenner="____"; // in DB-Spalte mit Tiefstrich aufgefÃŒllt 108 } else { 109 $zn=explode(".", $znenner, 2); // .00 wegwerfen 110 $znenner=str_pad($zn[0], 4 , "0", STR_PAD_LEFT); 111 } 112 // nun die Teile stellengerecht wieder zusammen setzen 113 $fskzdb=$land.$zgemkg.$zflur.$zzaehler.$znenner.'__'; // FS-Kennz. Format Datenbank 114 } 115 $v = array($fskzdb); 116 */ 117 // Spalte "flurstueckskennzeichen" ist in DB indiziert 118 // Format z.B.'052647002001910013__' oder '05264700200012______' 119 $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 AND endet IS NULL ;"; 120 81 // Spalte "flurstueckskennzeichen" ist in DB indiziert. Format z.B.'052647002001910013__' oder '05264700200012______' 82 $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 AND endet IS NULL;"; 121 83 $v=array(fskenn_dbformat($fskennz)); 122 123 84 $res = pg_prepare("", $sql); 124 85 $res = pg_execute("", $v); … … 149 110 if (!$res) { 150 111 echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>"; 151 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}112 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 152 113 } 153 114 if ($row = pg_fetch_assoc($res)) { … … 176 137 } else { 177 138 echo "\n<p class='err'>Fehler! Kein Treffer für Flurstück mit gml_id=".$gmlid."</p>"; 178 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}139 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 179 140 echo "\n</body>\n</html>"; 180 141 return; … … 182 143 pg_free_result($res); 183 144 184 if ($eig== "j") { // Balken185 echo "<p class=' fsei'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>"145 if ($eig==="j") { // Balken 146 echo "<p class='balken fsei'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>" 186 147 ."\n\n<h2>Flurstück mit Eigentümer</h2>"; 187 148 } else { 188 echo "<p class=' fskennz'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>"149 echo "<p class='balken fskennz'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>" 189 150 ."\n\n<h2>Flurstück</h2>"; 190 151 } … … 263 224 if ($debug > 1) { 264 225 echo "\n<p class='dbg'>Fehler:".pg_last_error()."</p>"; 265 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}226 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 266 227 } 267 228 } else { … … 270 231 while($row = pg_fetch_assoc($res)) { 271 232 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 272 if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau233 if (substr($sname, strlen($sname) -3, 3) === 'weg') { // Versuch fuer korrekten Satzbau 273 234 $slink=" am ".$sname; 274 235 } else { … … 277 238 $hsnr=$row["hausnummer"]; 278 239 echo "\n<tr>"; 279 if ($j == 0) { // 1240 if ($j === 0) { // 1 280 241 echo "\n\t<td class='ll'><img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> Adresse:</td>"; 281 242 } else { … … 321 282 echo "\n<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>"; 322 283 //if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>";} 323 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}284 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 324 285 } 325 286 $j=0; 326 287 while($row = pg_fetch_assoc($res)) { 327 288 $skey=$row["lage"]; // Strassenschl. 328 $lgml=$row["gml_id"]; // key der Lage289 $lgml=$row["gml_id"]; // Key der Lage 329 290 $gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8"); 330 if ($gewann != "") {291 if ($gewann != '') { 331 292 echo "\n<tr>" 332 293 ."\n\t<td class='ll' title='unverschlüsselte Lagebezeichnung'><img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''> Gewanne:</td>" // 1 … … 341 302 } elseif ($skey > 0) { 342 303 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 343 if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau304 if (substr($sname, strlen($sname) -3, 3) === 'weg') { // Versuch fuer korrekten Satzbau 344 305 $slink=" am ".$sname; 345 306 } else { … … 392 353 if (!$res) { 393 354 echo "\n<p class='err'>Fehler bei Suche tats. Nutzung</p>"; 394 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = FS-Kennz = '".$fskennzalb."'</p>";}355 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$fskennzalb."'",$sql), ENT_QUOTES, "UTF-8")."'</p>";} 395 356 } 396 357 $j=0; … … 402 363 $title=htmlentities($defi, ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet 403 364 echo "\n<tr>\n\t"; 404 if ($j == 0) { // 1365 if ($j === 0) { // 1 405 366 echo "<td class='ll' title='Abschnitt der tatsächlichen Nutzung'><img src='ico/Abschnitt.png' width='16' height='16' alt=''> Nutzung:</td>"; 406 367 } else { … … 444 405 if ($showkey) {echo "&showkey=j";} 445 406 if ($cnt_adressen > 0) { // wenn Adresse vorgekommen ist 446 echo "' title='Gebäude auf oder an dem Flurstück'>Gebäude";407 echo "' title='Gebäude oder Bauwerke auf oder an dem Flurstück'>Gebäude/Bauw."; 447 408 } else { // GebÀude mit Adresse gibt es NICHT, das ist klar 448 echo "' title='Suche Gebäude ohne Adresse auf dem Flurstück oder angrenzende Gebäude'>Suche";409 echo "' title='Suche Gebäude (ohne Adresse) oder Bauwerke auf dem Flurstück'>Gebäude/Bauw."; 449 410 } 450 411 echo "<img src='ico/Haus.png' width='16' height='16' alt=''></a>" … … 480 441 while ($row = pg_fetch_assoc($res)) { 481 442 $kulturartk=$row['kulturartk']; // Key - 482 $kulturartv=$row['kulturartv']; // - Value 483 // 1000="Ackerland (A)", 2000="Acker-GrÃŒnland (AGr)", 3000="GrÃŒnland (Gr)", 4000="GrÃŒnland-Acker (GrA)" 484 if (substr($kulturartv, 0, 3) == 'Ack') { // A 443 $kulturartv=$row['kulturartv']; // - Value 444 if (substr($kulturartv, 0, 3) === 'Ack') { // A 485 445 $kbez1="Bodenzahl"; 486 446 $kbez2="Ackerzahl"; … … 494 454 $ertragszahl = intval($absbuchflae * $row['ackerzahl'] / 100); 495 455 $gesertragsmz+=$ertragszahl; 496 // $absflaedis = number_format($absflae,0,",",".")." m²"; 456 // $absflaedis = number_format($absflae,0,",",".")." m²"; // als Tool-Tip ? 497 457 $absbuchflaedis = number_format($absbuchflae,0,",",".")." m²"; 498 458 $boedenzahl=ltrim($row['bodenzahl'], '0'); 499 459 $ackerzahl=ltrim($row['ackerzahl'], '0'); 500 460 $jahr=$row['jahreszahl']; 501 502 // 2x Array mit SchlÃŒsseln. PostNAS fÃŒllt es nicht, wenn als "integer[]" definiert.503 461 $entsteh=$row['entsteh']; 504 462 $sonst=$row['sonstigeangaben']; 505 if ($j == 0) { // 1463 if ($j === 0) { // 1 506 464 echo "\n<tr>\n\t<td class='ll' title='Abschnitt Bodenschätzung'><img src='ico/Landwirt.png' width='16' height='16' alt=''> Bodenschätzung:</td>"; 507 465 } else { 508 466 echo "\n<tr>\n\t<td> </td>"; 509 467 } 510 echo "\n\t<td class='fla' title='Ertragsmesszahl: Produkt von ".$kbez2."/100 und Fläche.'>EMZ ".$ertragszahl."</td>" ; // 2511 echo "\n\t<td class='re' title='Fläche des Schätzungsabschnitts'>".$absbuchflaedis."</td>"; // 3512 echo "\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>"; // 4513 echo "\n\t<td class='lr'>"; // 5468 echo "\n\t<td class='fla' title='Ertragsmesszahl: Produkt von ".$kbez2."/100 und Fläche.'>EMZ ".$ertragszahl."</td>" 469 ."\n\t<td class='re' title='Fläche des Schätzungsabschnitts'>".$absbuchflaedis."</td>" 470 ."\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>" 471 ."\n\t<td class='lr'>"; 514 472 515 473 if ($showkey) {echo "\n\t\t<span class='key'>(".$kulturartk.")</span> ";} … … 521 479 echo "\n\t\t<span title='Zustandsstufe'>".$row['zustbodv']."</span> "; 522 480 523 // ARRAYs auflösen ohne den SchÀtzungs-Abschnitt mehrfach aufzulisten524 if ( $entsteh <> '') {525 $ent= "'".str_replace(",", "','", trim($entsteh, "{}"))."'"; // als Liste fÃŒr SQL "WHERE IN ()"481 // 2 ARRAYs auflösen 482 if (isset($entsteh)) { 483 $ent=trim($entsteh, "{}"); 526 484 echo "\n\t\t <span title='Enststehungsart oder Klimastufe, Wasserverhältnisse'>"; 527 485 if ($showkey) {echo "\n\t\t <span class='key'>(".$ent.")</span> ";} 528 werteliste (' ax_bodenschaetzung', 'entstehungsartoderklimastufewasserverhaeltnisse', $ent);486 werteliste ('e', $ent); 529 487 echo "</span>"; 530 488 } 531 if ( $sonst <> '') {532 $son= "'".str_replace(",", "','", trim($sonst, "{}"))."'";489 if (isset($sonst)) { 490 $son=trim($sonst, "{}"); 533 491 echo "\n\t\t <span title='Sonstige Angaben'>"; 534 492 if ($showkey) {echo "\n\t\t <span class='key'>(".$son.")</span> ";} 535 werteliste (' ax_bodenschaetzung', 'sonstigeangaben', $son);493 werteliste ('s', $son); 536 494 echo "</span>"; 537 495 } 538 539 if ($jahr <> '') { 496 if (isset($jahr)) { 540 497 echo "\n\t\t<span title='Jahreszahl'>".$jahr."</span>"; 541 498 } 542 echo "\n\t</td>" ; // 5543 echo "\n\t<td> </td>\n</tr>"; // 6499 echo "\n\t</td>" 500 ."\n\t<td> </td>\n</tr>"; 544 501 $j++; 545 502 } … … 552 509 } 553 510 554 // H i n w e i s auf Bodenneuordnung oder eine strittige Grenze 555 $sql_boden ="SELECT b.artderfestlegung AS wert, a.beschreibung AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, 511 // H i n w e i s 512 // auf "Bau-, Raum- oder Bodenordnungsrecht" (Baulast, Flurbereinigung) oder eine "strittige Grenze" 513 514 // Gemeinsame FlÀche suchen: entweder (ST_Intersects and not ST_Touches) oder (2xST_Within OR ST_Overlaps), ST_Intersects liefert auch angrenzende 515 $sql_boden="SELECT b.artderfestlegung AS wert, a.beschreibung AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, 556 516 b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key 557 FROM ax_bauraumoderbodenordnungsrecht b 558 LEFT JOIN ax_artderfestlegung_bauraumoderbodenordnungsrecht a ON b.artderfestlegung = a.wert 517 FROM ax_flurstueck f 518 JOIN ax_bauraumoderbodenordnungsrecht b ON ST_Within(b.wkb_geometry, f.wkb_geometry) OR ST_Within(f.wkb_geometry, b.wkb_geometry) OR ST_Overlaps(b.wkb_geometry, f.wkb_geometry) 519 LEFT JOIN ax_artderfestlegung_bauraumoderbodenordnungsrecht a ON b.artderfestlegung=a.wert 559 520 LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle 560 WHERE b.endet IS NULL AND d.endet IS NULL 561 AND (ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL ), wkb_geometry) 562 OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL), wkb_geometry));"; 521 WHERE f.gml_id = $1 AND f.endet IS NULL AND b.endet IS NULL AND d.endet IS NULL"; 563 522 564 523 pg_prepare($con, "bodeneuordnung", $sql_boden); … … 566 525 if (!$res_bodeneuordnung) { 567 526 echo "\n<p class='err'>Fehler bei Bau-, Raum- oder Bodenordnungsrecht</p>"; 568 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>". $sql_boden."<br>$1 = gml_id = '".$gmlid."'</p>";}527 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_boden)."</p>";} 569 528 } 570 529 $sql_str="SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) … … 575 534 if (!$res_strittigeGrenze) { 576 535 echo "\n<p class='err'>Fehler bei strittige Grenze</p>"; 577 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>". $sql_str."<br>$1 = gml_id = '".$gmlid."'</p>";}536 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_str)."</p>";} 578 537 } 579 538 if (pg_num_rows($res_bodeneuordnung) > 0 OR pg_num_rows($res_strittigeGrenze) > 0) { … … 599 558 ."\n</tr>"; 600 559 $dstell=$row['stelle_key']; // Zeile 2 601 if ($dstell != "") { // Kann auch leer sein560 if ($dstell != '') { 602 561 echo "\n<tr title='Flurbereinigungsbehörde'>" 603 562 ."\n\t<td> </td>" // 1 … … 612 571 $vbez=$row['verf_bez']; // Zeile 3, ist nicht immer gefÃŒllt 613 572 $vnam=$row['verf_name']; // noch seltener 614 if ($vbez != "") {573 if ($vbez != '') { 615 574 echo "\n<tr title='Verfahrensbezeichnung'>" 616 575 ."\n\t<td> </td>" … … 619 578 if ($vnam == "") { 620 579 echo $vbez; // nur die Nummer 621 } else { 580 } else { // Name oder beides 622 581 if ($showkey) {echo "<span class='key'>(".$vbez.")</span> ";} 623 582 echo $vnam; … … 640 599 $bartgrp=""; // Buchungsart 641 600 $barttypgrp=""; // Buchungsart Typ 642 if ($gml_buchungsstelle == '') {echo "\n<p class='err'>Keine Buchungstelle zum Flurstück gefunden.</p>";} 643 echo "\n<table class='outer'>"; // ALLE Buchungen und EigentÃŒmer in 4 Spalten EINER Tabelle ausgeben 601 if ($gml_buchungsstelle === '') { 602 echo "\n<p class='err'>Keine Buchungstelle zum Flurstück gefunden.</p>"; // keine Verweis vorhanden? 603 } else { 604 echo "\n<table class='outer'>"; // ALLE Buchungen und EigentÃŒmer in 4 Spalten EINER Tabelle ausgeben 605 644 606 $stufe=1; // SchleifenzÀhler Tiefe 645 $gezeigt=buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid, 1); // die ("dienende") Buchung anzeigen, wenn nicht fiktiv. Liefert true/false646 647 $anzber=ber_bs_zaehl($gml_buchungsstelle); 648 $verf_next = array($gml_buchungsstelle); 649 //if ($debug > 2) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";}607 $gezeigt=buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid, 1); // die ("dienende") Buchung anzeigen, wenn nicht fiktiv. Liefert 1/0 608 609 $anzber=ber_bs_zaehl($gml_buchungsstelle); // Anzahl berechtigte Buchungen (nÀchste Stufe) zu dieser Buchung ermitteln 610 $verf_next = array($gml_buchungsstelle); // Start Recursion mit einem Element 611 //if ($debug > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 650 612 651 613 while ($anzber > 0 ) { // Stufe - recursiv in die Tiefe, solange es was zu verfolgen gibt … … 666 628 } // Ende Buchungs-Array in der Stufe 667 629 $anzber=count($verf_next); // Sammlung auf Stufe zÀhlen, Steuert die Schleife. 668 //if ($debug > 2) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";}630 //if ($debug > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 669 631 } // Ende Stufe 670 echo "\n</table>\n\n"; 632 633 echo "\n</table>\n\n"; 634 //if ($debug > 1) {echo "<p class='dbg'>Buchung gezeigt = ".$gezeigt."</p>";} 635 636 // Fehler aus "ModellschwÀche" erkennen. 637 // Wenn der Verweis der Buchungsstelle auf ein Grundbuch ins Leere lÀuft, weil das Grundbuch 638 // nicht im SekundÀrbestand vorhanden ist, dann könnte das am NBA-Verfahren liegen. 639 if ( $gezeigt === 0 and $stufe === 1 ) { // and $anzber === 0 640 // Fehlt die Buchung oder das Grundbuch? 641 echo "<p class='err'>Das Grundbuch zur Buchung '".$gml_buchungsstelle."' fehlt in der Datenbank.</p>"; 642 643 if ($debug > 1) { // fehlt die Buchung?? 644 echo "<p class='dbg'>Suchen mit SQL: SELECT * FROM ax_buchungsstelle WHERE gml_id='".$gml_buchungsstelle."'; </p>"; 645 } 646 // Buchung verlinken fÃŒr weitere Suche: alkisgsnw.php?gkz=320&gmlid=DENW18AL0000SEbl 647 // Aber das Modul zeigt nichts an (inner join ?) 648 // +++ ZunÀchst: Auch im Modul alkisgsnw.php den Fall berÃŒcksichtigen, dass die Buchung vorhanden ist, aber das GB nicht ?! 649 } 650 } 671 651 672 652 pg_close($con); … … 679 659 echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport(\"" . $gmlid . "\")'><img src='ico/download_fs.png' width='32' height='16' alt='Export'></a> \n</div>"; 680 660 681 footer($gmlid, $_SERVER['PHP_SELF']."?", "&eig=".$eig);661 footer($gmlid, selbstverlinkung()."?", "&eig=".$eig); 682 662 ?> 683 663 </body>
Note: See TracChangeset
for help on using the changeset viewer.