Changeset 330 for trunk/mapbender/http/nav/alkisnav_grd.php
- Timestamp:
- 09/10/14 12:08:18 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_grd.php
r306 r330 10 10 2013-05-14 Hervorhebung aktuelles Objekt. Title "Nachweis" auch auf Icon. 11 11 2013-12-12 Limit in EinBlatt von 200 weit hoch gesetzt (bis BlÀttern möglich wird) 12 2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 12 13 */ 13 14 $cntget = extract($_GET); … … 52 53 global $debug; 53 54 $linelimit=40; 54 $sql ="SELECT a.stelle, a.bezeichnung AS ag FROM ax_dienststelle a "; 55 $sql.="WHERE a.stelle IN (".$liste_ag.") AND a.stellenart = 1000 "; // Amtsgerichte aus Liste 56 $sql.="ORDER BY a.bezeichnung LIMIT $1 ;"; 55 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 59 $res = pg_prepare("", $sql); 58 60 $res = pg_execute("", array($linelimit)); 59 61 if (!$res) { 60 62 echo "\n<p class='err'>Fehler bei Amtsgerichte</p>"; 61 #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}63 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 62 64 return 0; 63 65 } … … 93 95 $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 94 96 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 95 $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 ";97 $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL "; 96 98 // Diese Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten: 97 $sql.="AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land and b.bezirk=g.bezirkLIMIT 1) IS NULL ";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 "; 98 100 $sql.="ORDER BY g.bezeichnung LIMIT $2 ;"; 99 101 $v = array($agkey, $linelimit); … … 128 130 #global $debug; 129 131 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 130 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 LIMIT 1;";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;"; 131 133 $v=array($gbbez); 132 134 $res=pg_prepare("", $sql); … … 159 161 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 160 162 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 161 $sql.="WHERE g.bezeichnung ILIKE $1 "; // "AND a.stellenart=1000 " //Amtsgericht163 $sql.="WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL "; // "AND a.stellenart=1000 " Amtsgericht 162 164 $sql.="ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; 163 165 if ( $gbkennz == "") { … … 219 221 // Body 220 222 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b "; 221 $sql.="WHERE b.bezirk= $1 ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;";223 $sql.="WHERE b.bezirk= $1 AND b.endet IS NULL ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 222 224 $v=array($zgbbez, $linelimit); 223 225 $res=pg_prepare("", $sql); … … 253 255 global $debug, $zgbbez, $zblatt, $zblattn, $zblattz; 254 256 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b "; 255 $sql.="WHERE b.bezirk= $1 AND b. buchungsblattnummermitbuchstabenerweiterung ";257 $sql.="WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 256 258 257 259 if ($zblattz == "") { // Ohne Buchstabenerweiterung: Formate '123','000123 ','0000123' … … 290 292 } 291 293 // Body 292 // 2013-12-12 Limit von ursprÃŒnglich 200 weit hoch gesetzt293 294 GB_Buchung_FS(1000, $zgbbez."-".$zblatt); // Blatt -> Buchung -> Flurstueck (Limitiert) 294 // ++ besser Limit wiederrunter und "BlÀttern"-Funktion einfÃŒhren295 // ++ besser Limit runter und "BlÀttern"-Funktion einfÃŒhren 295 296 return; 296 297 } … … 300 301 // Dazu die gml_id der Buchungsstelle ermitteln, um "function EinGrundstueck" benutzen zu können. 301 302 global $debug, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr; 303 302 304 // Blatt -> B u c h u n g s s t e l l e 303 305 $sql ="SELECT s.gml_id FROM ax_buchungsstelle s "; 304 $sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_von "; 305 $sql.="JOIN ax_buchungsblatt b ON b.gml_id=v.beziehung_zu "; 306 $sql.="WHERE v.beziehungsart='istBestandteilVon' "; 307 $sql.="AND b.bezirk= $1 AND b.buchungsblattnummermitbuchstabenerweiterung "; 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 308 309 if ($zblattz == "") { // Ohne Buchstabenerweiterung 309 310 //Formate '123','000123 ','0000123' … … 351 352 zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz, false, true); 352 353 } 353 // SQL-Bausteine 354 354 355 // dienend $1 gml_id von 355 // Buchungsstelle < vs/an< Buchungsstelle sh356 // Buchungsstelle <an< Buchungsstelle sh 356 357 // (dienend) (herrschend) 358 357 359 // direkt $1 gml_id von 358 // Buchungsstelle <vs/istGebucht< FlurstÃŒck > Gemarkung 360 // Buchungsstelle <istGebucht< FlurstÃŒck >> Gemarkung 361 359 362 // Recht $1 gml_id von 360 // Buchungsstelle > vs/an> Buchungsstelle sd <vf/istGebucht< FlurstÃŒck> Gemarkung361 // (herrschend) (dienend) sd >vd/istBestandteilVon> bd> gd363 // Buchungsstelle >an> Buchungsstelle sd <istGebucht< FlurstÃŒck >> Gemarkung 364 // (herrschend) (dienend) sd >istBestandteilVon> bd >> gd 362 365 363 366 // Body … … 373 376 // Filter gleich 374 377 switch ($gfilter) { // Filter Gemeinde 375 case 1: // Einzel wert376 $sqlfitler="AND g.gemeinde= ".$gemeinde.""; break;378 case 1: // Einzel 379 $sqlfitler="AND g.gemeinde='".$gemeinde."' "; break; 377 380 case 2: // Liste 378 $sqlfilter="AND g.gemeinde in (".$gemeinde.") "; break; 379 } 380 381 // Abfrage: Direkte Buchungen (FlurstÃŒcke) 382 $sql =$sqlanf."FROM alkis_beziehungen vs JOIN ax_flurstueck f ON vs.beziehung_von = f.gml_id "; 383 $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 384 $sql.="WHERE vs.beziehung_zu= $1 AND vs.beziehungsart='istGebucht' "; 385 $sql.=$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 381 $sqlfilter="AND g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 382 } 383 384 // Direkte Buchungen (Flurst.) 385 $sql =$sqlanf."FROM ax_flurstueck f JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 386 $sql.="WHERE f.istgebucht = $1 AND f.endet IS NULL ".$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 386 387 387 388 $v=array($buchunggml); … … 415 416 } 416 417 417 // Abfrage: Rechte an (dienende Buchungen und ihre FlurstÃŒcke)418 $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, "; 418 // Recht "an" (dienende Buchungen und ihre Flurst.) 419 $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, "; // Stelle dienend 419 420 $sql.="bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, "; // Blatt dienend 420 $sql.="gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez "; // AG und Bezirk dazu 421 $sql.="FROM alkis_beziehungen vs "; 422 $sql.="JOIN ax_buchungsstelle sd ON vs.beziehung_zu=sd.gml_id "; 423 $sql.="JOIN alkis_beziehungen vf ON vf.beziehung_zu=sd.gml_id "; // sd=Stelle dienend 424 $sql.="JOIN ax_flurstueck f ON vf.beziehung_von = f.gml_id "; 421 $sql.="gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez "; // AG und Bezirk dazu 422 $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 "; 425 425 $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 426 427 // Blatt und Bezirk (dienend) 428 $sql.="JOIN alkis_beziehungen vd ON vd.beziehung_von=sd.gml_id "; 429 $sql.="JOIN ax_buchungsblatt bd ON vd.beziehung_zu=bd.gml_id "; // Blatt dienend 426 $sql.="JOIN ax_buchungsblatt bd ON sd.istbestandteilvon = bd.gml_id "; // Blatt dienend 430 427 $sql.="JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk "; // GB-Bez. dienend 431 $sql.="WHERE vs.beziehung_von = $1 AND vs.beziehungsart='an' AND vf.beziehungsart='istGebucht' AND vd.beziehungsart='istBestandteilVon'";428 $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 "; 432 429 $sql.=$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 433 430 … … 444 441 $gwblatt=""; 445 442 while($row = pg_fetch_array($res)) { 446 $dienstelle=$row["stelle"]; 443 $dienstelle=$row["stelle"]; // Stelle (AG) des dienenden GrundstÃŒcks 447 444 $dienbezgml=$row["dienbezgml"]; // Bezirks des dien. GS: gml, Nr. und Bezeichnung 448 445 $diengbbez=$row["diengbbez"]; // Bezeichnung … … 450 447 $dienbltgml=$row["dienbltgml"]; // dienendes Blatt, gml und Nr 451 448 $dienblatt=$row["dienblatt"]; 452 $diengml=$row["diengml"]; 453 $dienlfd=$row["dienlfd"]; 449 $diengml=$row["diengml"]; // gml_id des dienenden GrundstÃŒcks 450 $dienlfd=$row["dienlfd"]; // BVNR (laufendNr) des dien. GS 454 451 if ($gwblatt != $dienblatt) { // Gruppierung Blatt - dienend 455 452 $gwblatt = $dienblatt; // Steuerg GW Blatt … … 471 468 } 472 469 473 // Teil 3 474 // ++ Wenn nur 1 GrundstÃŒck untersucht wird, dann dazu auch die 475 // berechtigten (herrschenden) GrundbÃŒcher anzeigen und verlinken (ohne FS)) 470 // Teil 3 - noch nicht umgesetzt 471 // ToDo: Wenn nur 1 GrundstÃŒck untersucht wird, dann dazu auch die berechtigten (herrschenden) GrundbÃŒcher anzeigen und verlinken (ohne FS) 476 472 477 473 // Foot … … 499 495 } else { 500 496 $gfilter = 2; // Liste 497 // $gemeinde = "'".str_replace(",", "','", $gemeinde)."'"; // Jedes Element in '' 501 498 } 502 499
Note: See TracChangeset
for help on using the changeset viewer.