Changeset 425 for trunk/mapbender/http/nav/alkisnav_grd.php
- Timestamp:
- 12/30/21 17:49:00 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_grd.php
r420 r425 10 10 2018-11-12 Full-Schema 11 11 2019-02-12 Sortierung FlurstÃŒcksnummer repariert 12 2021-11-24 Neue Var. $katamtmix (Kataster-Amt-Mix). 13 SchlÃŒsseltabellen sind mehrfach belegt. Dadurch doppelte Treffer bei der Suche. 12 14 */ 13 15 … … 107 109 $linelimit=40; 108 110 109 $sql="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle "111 $sql="SELECT DISTINCT stelle, bezeichnung AS ag FROM ax_dienststelle " 110 112 ."WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL ORDER BY bezeichnung LIMIT $1 ;"; 111 113 $res = pg_prepare("", $sql); … … 138 140 // Auch wenn BlÀtter vorhanden sind, kann es eine "Sackgasse" sein. 139 141 // Manchmal haben die BlÀtter keine FlurstÃŒcke im Filter-Bereich (Gemeinde). 140 global $debug ;142 global $debug, $katamtmix; 141 143 $linelimit=100; // Bezirke/AG 142 144 … … 146 148 // Body 147 149 // Die Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten 148 $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle " 149 ."WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL " 150 $sql ="SELECT DISTINCT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle "; 151 if ($katamtmix){$sql.="AND substr(g.gml_id,1,6) = substr(a.gml_id,1,6) ";} 152 $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL " 150 153 ."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 " 151 154 ."ORDER BY g.bezeichnung LIMIT $2 ;"; … … 180 183 // Zu einem Grundbuchbezirks-SchlÃŒssel die Zeilen "AG" und "Bezirk" ausgeben 181 184 // Parameter = SchlÃŒssel des Bezirks 182 #global $debug;185 global $katamtmix; 183 186 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g " 184 ."JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 187 ."JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle "; 188 if ($katamtmix){$sql.="AND substr(g.gml_id,1,6) = substr(a.gml_id,1,6) ";} 189 $sql.="WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 185 190 $v=array($gbbez); 186 191 $res=pg_prepare("", $sql); … … 209 214 function SuchGBBezName() { 210 215 // Grundbuch-Bezirk suchen nach Name(-nsanfang) 211 global $gkz, $gemeinde, $debug, $gbkennz ;216 global $gkz, $gemeinde, $debug, $gbkennz, $katamtmix; 212 217 $linelimit=80; 213 218 214 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g " 215 ."JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle " 216 ."WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL " 219 $sql ="SELECT DISTINCT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g " 220 ."JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle "; 221 if ($katamtmix){$sql.="AND substr(g.gml_id,1,6) = substr(a.gml_id,1,6) ";} 222 $sql.="WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL " 217 223 ."ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; // "AND a.stellenart=1000 " Amtsgericht 218 224 if ( $gbkennz == "") { … … 307 313 function gml_blatt() { 308 314 // Kennzeichen "Bezirk + Blatt" eingegeben. Dazu die gml_id des Blattes ermitteln. 309 // 2018-10: Sonderfall Buchstabe: Auch finden wenn der nicht eingegeben wurde.310 315 global $debug, $zgbbez, $zblatt, $zblattn, $zblattz; 311 316 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b " … … 380 385 $gef_blatt=$row["blatt"]; // gefunden ggf. mit Buchstabe (Wildcard) 381 386 if ($zblatt != $gef_blatt) { 382 echo "\n<p class='dbg'>Blatt mit Buchstabenerweiterung gefunden.</p>";387 // echo "\n<p class='dbg'>Blatt mit Buchstabenerweiterung gefunden.</p>"; 383 388 $zblatt=$gef_blatt; 384 389 $zblattz=substr($zblatt, strlen($zblatt)-1, 1); … … 397 402 // Die gml_id der Buchungsstelle (BVNR, GrundstÃŒck) ist bekannt = $buchunggml 398 403 // Die gebuchten FlurstÃŒcke und dienende/herrschenden Buchungen werden ausgegeben. 399 global $debug, $gemeinde, $epsg, $buchunggml, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter ;404 global $debug, $gemeinde, $epsg, $buchunggml, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter, $katamtmix; 400 405 // NoLimit? 401 406 … … 409 414 echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>"; 410 415 } // ++ suchen! 411 // zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz, false, true);412 416 zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblatt, false, true); // $zblatt wird aktualisiert, wenn Buchstabe gefunden wurde 413 417 } … … 445 449 // Direkte Buchungen (Flurst.) 446 450 $sql =$sqlanf."FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 451 if ($katamtmix){$sql.="AND substr(g.gml_id,1,6) = substr(f.gml_id,1,6) ";} 447 452 $sql.="WHERE f.istgebucht = $1 AND f.endet IS NULL ".$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, cast(f.zaehler AS integer), cast(f.nenner AS integer);"; 448 453 … … 482 487 ."FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) " 483 488 ."JOIN ax_flurstueck f ON f.istgebucht=sd.gml_id " 484 ."JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer " 485 ."JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id " 486 ."JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk " 487 ."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 AND gd.endet IS NULL " 489 ."JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 490 if ($katamtmix){$sql.="AND substr(f.gml_id,1,6) = substr(g.gml_id,1,6) ";} 491 $sql.="JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id " 492 ."JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk "; 493 if ($katamtmix){$sql.="AND substr(bd.gml_id,1,6) = substr(gd.gml_id,1,6) ";} 494 $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 AND gd.endet IS NULL " 488 495 489 496 .$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, cast(f.zaehler AS integer), cast(f.nenner AS integer);"; … … 494 501 if (!$res) { 495 502 echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, Recht an).</p>"; 496 if ($debug >= 3) { 497 echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>"; 498 } 503 if ($debug >= 3) {echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>";} 499 504 } 500 505 $zfs2=0; … … 544 549 } 545 550 546 // ===========547 551 // Start hier! 548 // ===========549 552 550 553 // Validation: Eingabefeld aus Formular.
Note: See TracChangeset
for help on using the changeset viewer.