Changeset 282 for trunk/mapbender/http/nav/alkisnav_grd.php
- Timestamp:
- 05/08/13 09:04:34 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_grd.php
r280 r282 1 1 <?php 2 2 /* Version vom 3 2011-10-24 Nach Pos-Klick Highlight erneuern statt hideHighlight4 2011-11-17 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster5 2011-12-14 "window.open(..,width=680"6 2012-01-16 Blattnummer in 2 Varianten suchen7 2012-01-17 Blattnummer ohne Buchstabe in 3 Varianten suchen8 3 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 9 4 2013-04-26 Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" … … 12 7 ZurÃŒck-Link, Titel der Transaktion anzeigen. 13 8 2013-04-29 Test mit IE 9 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 14 10 */ 15 11 $cntget = extract($_GET); 16 17 12 include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 18 13 include("alkisnav_fkt.php"); // Funktionen … … 38 33 document.getElementById('transaktiontitle').innerHTML = trans; 39 34 } 35 function formular_belegung(suchMich) { 36 parent.GrdGazetteerFrame.gbkennz.value=suchMich; 37 } 40 38 </script> 41 39 </head> 42 40 <body> 43 41 <a href='javascript:history.back()'> 44 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück" />42 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück"> 45 43 </a> 46 44 <dfn class='title' id='transaktiontitle'></dfn> 47 45 48 46 END; 47 48 function suchfeld($suchstring) { // Suchstring Ausgeben UND das Eingabeformular damit belegen 49 $out="<a title='Dies als Suchbegriff setzen' href='javascript:formular_belegung(\"".$suchstring."-\")'>".$suchstring."</a>"; 50 return $out; 51 } 49 52 50 53 function is_ne_zahl($wert) { … … 69 72 return 2; // Such Bezirk-NUMMER 70 73 } else { // Format von BlattNr pruefen 71 //'19' 72 //'000019 ' 73 //'000019A' 74 //'0300001' 74 //'19' linksbÃŒndig 75 //'000019 ' gefÃŒllt 6 + blank 76 //'000019A' .. mit Zusatzbuchstabe 77 //'0300001' gefÃŒllt 7, bei Blattart 5000 "fiktives Blatt" 75 78 $len=strlen($zblatt); 76 79 if ($len > 0 AND $len < 8) { … … 106 109 107 110 function ListAG($liste_ag) { 108 // Amtsgerichte (Grundbuch) auflisten, dazu als Filter eine AG-Liste aus conf111 // Amtsgerichte (Grundbuch) auflisten, dazu als Filter eine AG-Liste 109 112 global $con, $gkz, $gemeinde, $epsg, $debug, $gbkennz; 110 113 $linelimit=40; … … 122 125 while($row = pg_fetch_array($res)) { // Loop AG 123 126 $anr=$row["stelle"]; 124 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); 125 echo "\n<div class='ga' title='Amtsgricht'>"; 126 echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> "; 127 echo "AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>"; 128 echo $ag."</a> (".$anr.")"; 129 echo "\n</div>"; 127 $ag=$row["ag"]; 128 zeile_ag ($ag, $anr); 130 129 $cnt++; 131 130 } 132 if($cnt == 0){ // falsch configuriert! 131 // Foot 132 if($cnt == 0){ 133 133 echo "\n<p class='anz'>Kein Amtsgericht aus Liste ".$$liste_ag.".</p>"; 134 134 } elseif ($cnt >= $linelimit) { … … 140 140 } 141 141 142 function ListGBBez($ liste_ag, $mit_ag) {143 // Grundbuch-Bezirke auflisten.144 // +++ auch wenn BlÀtter da sind, kann es eine Sackgasse sein.145 // +++ manchmal haben die BlÀtter keine FlurstÃŒcke.142 function ListGBBez($agkey) { 143 // Grundbuch-Bezirke zu einem Amtsgericht auflisten. 144 // Auch wenn BlÀtter da sind, kann es eine Sackgasse sein. 145 // Manchmal haben die BlÀtter keine FlurstÃŒcke im Filter-Bereich 146 146 global $con, $gkz, $gemeinde, $epsg, $debug, $gbkennz; 147 $linelimit=90; 148 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 147 $linelimit=100; // Bezirke/AG 148 // Head 149 ListAG( "'".$agkey."'" ); // hier nur fÃŒr 1 150 // Body 151 $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 149 152 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 150 $sql.="WHERE a.stelle IN (".$liste_ag.") AND a.stellenart = 1000 "; // Amtsgericht aus Liste151 // Diese Subquery stellt sicher, dass nur Bezirke aufgelistet twerden, die auch BlÀtter enthalten:153 $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 "; 154 // Diese Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten: 152 155 $sql.="AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land and b.bezirk=g.bezirk LIMIT 1) IS NULL "; 153 $sql.="ORDER BY g.bezeichnung LIMIT $1 ;"; 156 $sql.="ORDER BY g.bezeichnung LIMIT $2 ;"; 157 $v = array($agkey, $linelimit); 154 158 $res = pg_prepare("", $sql); 155 $res = pg_execute("", array($linelimit));159 $res = pg_execute("", $v); 156 160 if (!$res) { 157 161 echo "\n<p class='err'>Fehler bei Grundbuch-Bezirk</p>"; 158 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}162 #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 159 163 return 0; 160 164 } 161 165 $cnt = 0; 162 while($row = pg_fetch_array($res)) { // Loop B E Z I RK163 $gnam= htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");166 while($row = pg_fetch_array($res)) { // Loop BEZIRK 167 $gnam=$row["bezeichnung"]; 164 168 $gnr=$row["bezirk"]; 165 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); 166 $anr=$row["stelle"]; 167 echo "\n<div class='gk' title='GB-Bezirk'>"; 168 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Gemkg'> "; 169 echo "Bezirk <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$gnr."'>"; 170 echo $gnam."</a> (".$gnr.")"; 171 if ($mit_ag) { 172 echo " AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>".$ag."</a>"; 173 } 174 echo "\n</div>"; 169 zeile_gbbez($gnam, $gnr); 175 170 $cnt++; 176 171 } 172 // Foot 177 173 if($cnt == 0){ 178 174 echo "\n<p class='anz'>Kein Bezirk mit Blättern.</p>"; 179 175 } elseif ($cnt >= $linelimit) { 180 echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Bezirke ... und weitere</p>";176 echo "\n<p class='anz' title='Bitte Name des Bezirks suchen lassen'>".$cnt." Bezirke ... und weitere</p>"; 181 177 } elseif($cnt > 1) { 182 178 echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit 183 179 } 184 return 0; 180 return; 181 } 182 183 function ag_bez_head($gbbez) { 184 // Zu einem Grundbuchbezirks-SchlÃŒssel die Zeilen AG und Bezirk ausgeben 185 // Parameter = SchlÃŒssel des Bezirks 186 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 187 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 LIMIT 1;"; 188 $v=array($gbbez); 189 $res=pg_prepare("", $sql); 190 $res=pg_execute("", $v); 191 if (!$res) { 192 echo "\n<p class='err'>Fehler bei Amtsgericht und Grundbuchbezirk.</p>"; 193 #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 194 } 195 $row = pg_fetch_array($res); 196 if ($row) { 197 $gnam=$row["bezeichnung"]; // GB-Bezirk Bezeichnung 198 $ag=$row["ag"]; // AG Bezeichnung 199 $anr=$row["stelle"]; // AG Key 200 zeile_ag($ag, $anr); // Amtsgericht 201 zeile_gbbez($gnam, $gbbez); // Bezirk 202 } else { 203 echo "\n<div class='gk' title='Grundbuchbezirk'>"; 204 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'>"; 205 echo " Bezirk '".$gbbez."' ist unbekannt.</p>"; 206 echo "\n</div>"; 207 return; 208 } 209 return; 185 210 } 186 211 … … 188 213 // Grundbuch-Bezirk suchen nach Name(-nsanfang) 189 214 global $con, $gkz, $gemeinde, $debug, $gbkennz; 190 $linelimit= 50;215 $linelimit=80; 191 216 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 192 217 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 193 218 $sql.="WHERE g.bezeichnung ILIKE $1 "; // "AND a.stellenart=1000 " // Amtsgericht 194 $sql.="ORDER BY g.bezeichnung LIMIT $2 ;";219 $sql.="ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; 195 220 if ( $gbkennz == "") { 196 221 $match = "%"; … … 207 232 if (!$res) { 208 233 echo "\n<p class='err'>Fehler bei Grundbuch-Bezirk</p>"; 209 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 210 return 0; 211 } 212 $cnt = 0; 213 // Loop B E Z I R K 214 while($row = pg_fetch_array($res)) { 215 $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 234 return 1; 235 } 236 $cnt=0; 237 $gwag=""; 238 while($row = pg_fetch_array($res)) { // Loop BEZIRK 239 $anr=$row["stelle"]; // Gruppierung AG 240 if ($gwag != $anr) { 241 $gwag = $anr; 242 $ag=$row["ag"]; 243 zeile_ag($ag, $anr); 244 } 245 $gnam=$row["bezeichnung"]; 216 246 $gnr=$row["bezirk"]; 217 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); 218 $anr=$row["stelle"]; 219 echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 220 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Gemkg'> "; 221 echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$gnr."'>"; 222 echo $gnam."</a> (".$gnr.")"; 223 echo " AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>".$ag."</a>"; 224 echo "\n</div>"; 247 zeile_gbbez ($gnam, $gnr); 225 248 $cnt++; 226 249 } 250 // Foot 227 251 if($cnt == 0){ 228 252 echo "\n<p class='anz'>Kein Grundbuchbezirk.</p>"; … … 234 258 echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit 235 259 } 236 return 0;260 return; 237 261 } 238 262 … … 240 264 // Kennzeichen bestehend nur aus GB-Bezirk-SchlÃŒssel wurde eingegeben 241 265 global $con, $gkz, $gemeinde, $epsg, $debug, $zgbbez, $auskpath; 242 $linelimit= 250; // max. Blatt je Bezirk266 $linelimit=300; // max. Blatt je Bezirk 243 267 // Dies Limit ist nicht ausreichend fÃŒr alle BlÀtter eines Bezirks, aber ... 244 268 // Wenn man die Blatt-Nr nicht kennt, kommt man hier sowieso nicht weiter. 245 269 // Es nutzt also nichts, hier tausende Nummern aufzulisten. 246 270 // +++ BlÀtter-Funktion einfÃŒhren analog Modul _eig 271 272 // Head 247 273 if ($showParent) { 248 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 249 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 ;"; 250 $v=array($zgbbez); 251 $res=pg_prepare("", $sql); 252 $res=pg_execute("", $v); 253 if (!$res) { 254 echo "\n<p class='err'>Fehler bei Brundbuchbezirk.</p>"; 255 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 256 } 257 $zgmk=0; 258 while($row = pg_fetch_array($res)) { 259 $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 260 $gnr=$row["bezirk"]; 261 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); 262 $anr=$row["stelle"]; 263 $zgmk++; 264 } 265 if ($zgmk == 0) { 266 echo "\n<div class='gk' title='Grundbuchbezirk'>"; 267 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'>"; 268 echo " Bezirk ".$zgbbez." ist unbekannt.</p>"; 269 echo "\n</div>"; 270 return; 271 } 272 273 // AG-Knoten davor setzen 274 echo "\n<div class='ga' title='Amtsgricht'>"; 275 echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> "; 276 echo "AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>"; 277 echo $ag."</a> (".$anr.")"; 278 echo "\n</div>"; 279 echo "\n<div class='gk' title='GB-Bezirk'>"; 280 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 281 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."'>"; 282 echo $gnam."</a> (".$zgbbez.")"; 283 // alternativ AG-Link hinter dem Bezirk 284 // echo " des AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>".$ag."</a>"; 285 echo "\n</div>"; 286 } 274 ag_bez_head($zgbbez); // AG und BEZ ausgeben 275 } 276 // Body 287 277 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b "; 288 278 $sql.="WHERE b.bezirk= $1 ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; … … 292 282 if (!$res) { 293 283 echo "\n<p class='err'>Fehler bei Bezirk.</p>"; 294 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}284 #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 295 285 } 296 286 $cntbl=0; // Counter Blatt/Bezirk 297 // Loop B L A T T 298 while($row = pg_fetch_array($res)) { 287 while($row = pg_fetch_array($res)) { // Loop BLATT 299 288 $blatt=$row["blatt"]; 300 $blattd=ltrim($blatt, "0"); 301 $gml=$row["gml_id"]; 302 echo "\n<div class='gb' title='GB-Blatt'>"; 303 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$gml."\")'>"; 304 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 305 echo "\n\t</a> "; 306 echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$gml."&gbkennz=".$zgbbez."-".$blatt."'> ".$blattd." </a>"; 307 echo "\n</div>"; 289 $blattgml=$row["gml_id"]; 290 zeile_blatt($zgbbez, $gnam, $blattgml, $blatt, false, ""); 308 291 $cntbl++; 309 292 } 293 // Foot 310 294 if($cntbl == 0) { 311 295 echo "\n<p class='anz'>Kein Blatt im Bezirk.</p>"; … … 314 298 // +++ Hier oft ÃŒberschritten! BlÀtter-Funktion einfÃŒhren 315 299 echo "\n<p>Geben sie ein: '".$zgbbez."-999A'<br>wobei '999A' = gesuchtes GB-Blatt</p>"; 300 301 // Vorbelegen des Eingabefeldes fÃŒr neue Suche? 302 echo "<script type='text/javascript'>parent.GrdGazetteerFrame.gbkennz.value='".$zgbbez."-??';</script>"; 303 316 304 } elseif ($cntbl > 1) { 317 305 echo "\n<p class='anz'>".$cntbl." Blätter</p>"; // im Limit … … 352 340 } 353 341 354 /* 355 function EinBlatt_ALT($showParent) { 356 // Kennzeichen Bezirk + Blatt wurde eingegeben 357 // UrsprÃŒngliche Version bis 2013-04-24 358 global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $blattgml, $zbvnr; 359 342 function EinBlatt($showParent) { 343 // Kennzeichen Bezirk + Blatt wurde eingegeben oder verlinkt 344 global $con, $gkz, $debug, $gemeinde, $epsg, $zgbbez, $zblatt, $blattgml, $gbbeznam; 345 // Head 360 346 if ($showParent) { 361 // +++ nur der Schluessel ist bekannt. Bezirks-Namen und Amtsgericht noch ermitteln ++++ 362 echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 363 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 364 echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."'>"; 365 echo $zgbbez."</a>"; 366 echo "\n</div>"; 367 echo "\n<div class='gb' title='GB-Blatt'>"; 368 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>"; 369 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 370 echo "\n\t</a> "; 371 echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$blattgml."&gbkennz=".$zgbbez."-".$zblatt."'> ".$zblattn.$zblattz." </a>"; 372 echo "\n</div>"; 373 } 374 // Blatt -> B u c h u n g s s t e l l e 375 $sql ="SELECT s.gml_id, s.laufendenummer AS lfd FROM ax_buchungsstelle s "; 376 $sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_von "; 377 $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id "; 378 $sql.="WHERE v.beziehungsart='istBestandteilVon' AND b.gml_id= $1 ORDER BY s.laufendenummer;"; 379 // +++ Buchungen ohne FLST weglassen? 380 // +++ Counter FLST ausgeben, Buchungen mit 0 weglassen 381 $v=array($blattgml); 382 $res=pg_prepare("", $sql); 383 $res=pg_execute("", $v); 384 if (!$res) { 385 echo "\n<p class='err'>Fehler bei Blatt.</p>"; 386 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 387 } 388 $cntbu=0; // Counter Buchung/Blatt 389 while($row = pg_fetch_array($res)) { 390 $bs_gml=$row["gml_id"]; 391 $lfd=$row["lfd"]; 392 echo "\n<div class='gs'>"; 393 echo "\n\t\t<img class='nwlink' title='Grundstück' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 394 echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbuchung=".$bs_gml."&gbkennz=".$zgbbez."-".$zblatt."-".$lfd."'> ".$lfd." </a>"; 395 echo "\n</div>"; 396 $cntbu++; 397 } 398 if($cntbu == 0) { 399 echo "\n<p class='anz'>Keine Buchung gefunden.</p>"; 400 } elseif($cntbu == 1) { 401 $zbvnr=$lfd; // mit dieser BVNR gleich weiter machen 402 // Blatt zerteilen (benoetigt in gml_buchungsstelle) 403 if (trim($zblatt, "0..9") == "") { // Normalfall: nur Zahlen 404 $zblattn= ltrim($zblatt, "0"); 405 $zblattz=""; 406 } else { // Sonderfall: Zusatz-Buchstabe am Ende 407 $zblattn=ltrim(substr($zblatt,0,$len-1), "0"); // ohne fuehrende Nullen 408 $zblattz=strtoupper(substr($zblatt,$len-1,1)); 409 } 410 } else { 411 echo "\n<p class='anz'>".$cntbu."Buchungen.</p>"; 412 } 413 return $cntbu; 414 } 415 */ 416 417 function EinBlatt($showParent) { 418 // Kennzeichen Bezirk + Blatt wurde eingegeben 419 global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $blattgml, $zbvnr; 420 421 if ($showParent) { 422 // +++ nur der Schluessel ist bekannt. Bezirks-Namen und Amtsgericht noch ermitteln ++++ 423 echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 424 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 425 echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."'>"; 426 echo $zgbbez."</a>"; 427 echo "\n</div>"; 428 echo "\n<div class='gb' title='GB-Blatt'>"; 429 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>"; 430 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 431 echo "\n\t</a> "; 432 echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$blattgml."&gbkennz=".$zgbbez."-".$zblatt."'> ".$zblattn.$zblattz." </a>"; 433 echo "\n</div>"; 434 } 435 436 // Blatt -> Buchungsstelle -> Flurstueck 437 $linelimit = 200; // Max. Anzahl FS 438 GB_Buchung_FS($linelimit); // Externe Function 439 440 return 0; 441 347 ag_bez_head($zgbbez); // AG + BEZ 348 zeile_blatt ($zgbbez, $gbbeznam, $blattgml, $zblatt, false, ""); 349 } 350 // Body 351 GB_Buchung_FS(200); // Blatt -> Buchung -> Flurstueck (max. 200) 352 return; 442 353 } 443 354 444 355 function gml_buchungsstelle() { 445 // Kennzeichen "Bezirk + Blatt + BVNR" eingegeben. Dazu die gml_id der Buchungsstelle ermitteln. 356 // Kennzeichen "Bezirk + Blatt + BVNR" wurde eingegeben. 357 // Dazu die gml_id der Buchungsstelle ermitteln, um "function EinGrundstueck" benutzen zu können. 446 358 global $con, $gkz, $debug, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr; 447 359 // Blatt -> B u c h u n g s s t e l l e … … 474 386 echo "\n<p class='err'>Buchung ".$zgbbez."-".$zblattn.$zblattz."-".$zbvnr." nicht gefunden.</p>"; 475 387 return; 476 } elseif($zbs > 1) { // nur TEST477 echo "\n<p class='err'>Buchungsstelle mehrfach gefunden.</p>";478 return;479 388 } else { 480 389 return $bs_gml; … … 483 392 484 393 function EinGrundstueck($showParent) { 485 // Die gml_id der Buchungsstelle ist bekannt. 486 global $con, $gkz, $debug, $gemeinde, $epsg, $scalefs, $epsg, $auskpath, $gbuchung, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter; 394 // Die gml_id der Buchungsstelle (BVNR, GrundstÃŒck) ist bekannt = $buchunggml 395 // Die gebuchten FlurstÃŒcke und dienende/herrschenden Buchungen werden ausgegeben. 396 global $con, $gkz, $debug, $gemeinde, $epsg, $scalefs, $epsg, $auskpath, $buchunggml, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter; 487 397 // NoLimit? 488 398 if ($showParent) { // wenn Kennzeichen bekannt ist, dann auch Blatt ausgeben 489 490 399 if ($zgbbez.$zblatt != "") { 491 // +++ SchlÃŒssel ist bekannt. Namen und Amtsgericht dazu ermitteln 492 // +++ oder Namen als &bez= ÃŒbermitteln? 493 echo "\n<div class='gk' title='GB-Bezirk'>"; 494 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 495 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."'>"; 496 echo "Bezirk ".$zgbbez."</a>"; 497 echo "\n</div>"; 498 echo "\n<div class='gb' title='GB-Blatt'>"; 499 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt.ico' width='16' height='16' alt='Blatt'> "; 500 echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."-".$zblatt."'> ".$zblattn.$zblattz." </a>"; 501 echo "\n</div>"; 400 ag_bez_head($zgbbez); // AG + BEZ 401 zeile_blatt ($zgbbez, $gnam, "", $zblatt, false, ""); 402 // $gnam leer lassen Knoten "Bezirk" steht drÃŒber 502 403 } else { 503 404 echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>"; 504 } 505 506 echo "\n<div class='gs'>"; 507 echo "\n\t\t<img class='nwlink' title='Grundstück' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 508 echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbuchung=".$gbuchung."&gbkennz=".$zgbbez."-".$zblattn.$zblattz."-".$zbvnr."'> ".$zbvnr." </a>"; 509 echo "\n</div>"; 510 } 511 // +++ Ermitteln anderer Buchungsstellen mit Rechten an dieser 512 // +++ Ermitteln anderer Buchungsstellen wo diese Rechte hat 513 // +++ Filter "Gemeinde" berÃŒcksichtigt!! Wenn gesetzt. 514 515 // SQL-Bausteine 516 $sql1 ="SELECT g.gemeinde, g.gemarkungsname, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 405 // +++ Dann suche sie !! 406 } 407 zeile_buchung ($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz."-".$zbvnr, false); 408 } 409 410 // SQL-Bausteine 411 // dienend $1 gml_id von 412 // Buchungsstelle <vs/an< Buchungsstelle sh 413 // (dienend) (herrschend) 414 // 415 // direkt $1 gml_id von 416 // Buchungsstelle <vs/istGebucht< FlurstÃŒck > Gemarkung 417 // 418 // Recht $1 gml_id von 419 // Buchungsstelle >vs/an> Buchungsstelle sd <vf/istGebucht< FlurstÃŒck > Gemarkung 420 // (herrschend) (dienend) 421 // sd >vd/istBestandteilVon> bd > gd 422 423 // Anfang gleich (Select-Liste) 424 $sqlanf ="SELECT g.gemeinde, g.gemarkungsname, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 517 425 if($epsg == "25832") { // Transform nicht notwendig 518 $sql 1.="st_x(st_Centroid(f.wkb_geometry)) AS x, ";519 $sql 1.="st_y(st_Centroid(f.wkb_geometry)) AS y ";426 $sqlanf.="st_x(st_Centroid(f.wkb_geometry)) AS x, "; 427 $sqlanf.="st_y(st_Centroid(f.wkb_geometry)) AS y "; 520 428 } else { 521 $sql1.="st_x(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS x, "; 522 $sql1.="st_y(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS y "; 523 } 524 $sql1.="FROM "; 525 526 $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 527 $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 528 529 // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 530 $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 531 $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 532 533 $sql2 ="JOIN ax_flurstueck f ON .... "; 534 $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 535 $sql2.="WHERE v.beziehungsart='istGebucht' AND v.beziehung_zu= $1 "; // id buchungsstelle 429 $sqlanf.="st_x(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS x, "; 430 $sqlanf.="st_y(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS y "; 431 } 432 // Filter gleich 536 433 switch ($gfilter) { // Filter Gemeinde 537 434 case 1: // Einzelwert 538 $sql 2.="AND g.gemeinde=".$gemeinde." "; break;435 $sqlfitler="AND g.gemeinde=".$gemeinde." "; break; 539 436 case 2: // Liste 540 $sql2.="AND g.gemeinde in (".$gemeinde.") "; break; 541 } 542 $sql2.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 543 544 $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 545 $v=array($gbuchung); 437 $sqlfilter="AND g.gemeinde in (".$gemeinde.") "; break; 438 } 439 440 // Abfrage: Direkte Buchungen (FlurstÃŒcke) 441 $sql =$sqlanf."FROM alkis_beziehungen vs JOIN ax_flurstueck f ON vs.beziehung_von = f.gml_id "; 442 $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 443 $sql.="WHERE vs.beziehung_zu= $1 AND vs.beziehungsart='istGebucht' "; 444 $sql.=$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 445 446 $v=array($buchunggml); 546 447 $res=pg_prepare("", $sql); 547 448 $res=pg_execute("", $v); 548 449 if (!$res) { 549 echo "\n<p class='err'>Fehler bei Buchungsstelle (gml).</p>"; 550 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 551 } 552 $zfs=0; 450 echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, direkt).</p>"; 451 if ($debug >= 3) { 452 echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>"; 453 } 454 } 455 $zfs1=0; 553 456 while($row = pg_fetch_array($res)) { 554 457 $fs_gml=$row["gml_id"]; … … 557 460 $flur=$row["flurnummer"]; 558 461 $fskenn=$row["zaehler"]; 559 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 560 $x=$row["x"]; 561 $y=$row["y"]; 562 563 // FILTER OBEN, IN SQL - nicht HIER 564 if($gemeinde > 0 and $gemeinde != $gemei and $gfilter == 1) { // ex-territorial 565 if ($debug >= 2) { 566 echo "<p class='dbg'>Gemkg ".$gmkg." liegt in Gemeinde '".$gemei."' nicht '".$gemeinde."'</p>"; 567 } 568 echo "\n<div class='fs' title='Kein Zugriff! Liegt außerhalb des Gebietes.'>"; 569 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Leer.ico' width='16' height='16' alt='FS'> (".$gmkg." ".$flur."-".$fskenn." )"; 570 echo "\n</div>"; 571 } else { 572 echo "\n<div class='fs'>"; 573 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 574 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 575 echo "\n\t</a> "; 576 echo "\n\t".$gmkg." <a title='Flurstück positionieren 1:".$scalefs."' href='"; 577 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 578 echo "parent.parent.showHighlight(".$x.",".$y.")' "; 579 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 580 echo "onmouseout='parent.parent.hideHighlight()'> "; 581 echo $flur."-".$fskenn." </a>"; 582 echo "\n</div>"; 583 } 584 $zfs++; 585 } 586 if($zfs == 0) { 587 echo "\n<p class='anz'>Kein Flurstück.</p>"; 588 } elseif($zfs > 1) { 589 echo "\n<p class='anz'>".$zfs." Flurstück.</p>"; 462 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr 463 zeile_flurstueck ($fs_gml, $fskenn, $row["x"], $row["y"], $gmkg, $flur ); 464 $zfs1++; 465 } 466 if($zfs1 == 0) { 467 echo "\n<p class='anz'>Kein Flurstück direkt</p>"; 468 } elseif($zfs1 > 1) { 469 echo "\n<p class='anz'>".$zfs1." Flurstücke</p>"; 470 } 471 if($zfs1 > 0) { // wenn's was zu trennen gibt 472 echo "<hr>"; // Trennen 473 } 474 475 // Abfrage: Rechte an (dienende Buchungen und ihre FlurstÃŒcke) 476 $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, "; // Stelle dienend 477 $sql.="bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, "; // Blatt dienend 478 $sql.="gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez "; // AG und Bezirk dazu 479 $sql.="FROM alkis_beziehungen vs "; 480 $sql.="JOIN ax_buchungsstelle sd ON vs.beziehung_zu=sd.gml_id "; 481 $sql.="JOIN alkis_beziehungen vf ON vf.beziehung_zu=sd.gml_id "; // sd=Stelle dienend 482 $sql.="JOIN ax_flurstueck f ON vf.beziehung_von = f.gml_id "; 483 $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 484 485 // Blatt und Bezirk (dienend) 486 $sql.="JOIN alkis_beziehungen vd ON vd.beziehung_von=sd.gml_id "; 487 $sql.="JOIN ax_buchungsblatt bd ON vd.beziehung_zu=bd.gml_id "; // Blatt dienend 488 $sql.="JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk "; // GB-Bez. dienend 489 $sql.="WHERE vs.beziehung_von = $1 AND vs.beziehungsart='an' AND vf.beziehungsart='istGebucht' AND vd.beziehungsart='istBestandteilVon' "; 490 $sql.=$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 491 492 $v=array($buchunggml); 493 $res=pg_prepare("", $sql); 494 $res=pg_execute("", $v); 495 if (!$res) { 496 echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, Recht an).</p>"; 497 if ($debug >= 3) { 498 echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>"; 499 } 500 } 501 $zfs2=0; 502 $gwblatt=""; 503 while($row = pg_fetch_array($res)) { 504 $dienstelle=$row["stelle"]; // Stelle (AG) des dienenden GrundstÃŒcks 505 $dienbezgml=$row["dienbezgml"]; // Bezirks des dien. GS: gml, Nr. und Bezeichnung 506 $diengbbez=$row["diengbbez"]; // Bezeichnung 507 $dienbezirk=$row["bezirk"]; // Key 508 $dienbltgml=$row["dienbltgml"]; // dienendes Blatt, gml und Nr 509 $dienblatt=$row["dienblatt"]; 510 $diengml=$row["diengml"]; // gml_id des dienenden GrundstÃŒcks 511 $dienlfd=$row["dienlfd"]; // BVNR (laufendNr) des dien. GS 512 if ($gwblatt != $dienblatt) { // Gruppierung Blatt - dienend 513 $gwblatt = $dienblatt; // Steuerg GW Blatt 514 zeile_blatt ($dienbezirk, $diengbbez, $dienbltgml, $dienblatt, true, ""); 515 $gwbvnr=""; 516 } 517 if ($gwbvnr != $dienlfd) { // Gruppierung Buchung (BVNR) - dienend 518 $gwbvnr = $dienlfd; // Steuerg GW BVNR 519 zeile_buchung($diengml, $dienlfd, $dienbezirk."-".$dienblattlnk."-".$dienlfd, true); 520 } // ++ Buchungsart? Welches Recht? 521 $fs_gml=$row["gml_id"]; 522 $gemei=$row["gemeinde"]; 523 $gmkg=$row["gemarkungsname"]; 524 $flur=$row["flurnummer"]; 525 $fskenn=$row["zaehler"]; 526 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr 527 zeile_flurstueck ($fs_gml, $fskenn, $row["x"],$row["y"], $gmkg, $flur ); 528 $zfs2++; 529 } 530 if($zfs2 == 0 AND $zfs1 == 0) { 531 echo "\n<p class='anz'>Kein Recht an Flst.</p>"; 532 } elseif($zfs2 > 1) { 533 echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>"; 590 534 } 591 535 return; … … 596 540 // =========== 597 541 if(isset($epsg)) { 598 #if ($debug >= 2) {echo "<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB599 542 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 600 543 } else { 601 #if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}602 544 $epsg=$gui_epsg; // aus Conf 603 545 } … … 605 547 if ($gemeinde == "") { 606 548 $gfilter = 0; // ungefiltert 607 #if ($debug >= 2) {echo "<p class='dbg'>Kein Filter Gemeinde</p>";}608 549 } elseif(strpos($gemeinde, ",") === false) { 609 550 $gfilter = 1; // Einzelwert 610 #if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde Einzelwert = '".$gemeinde."'</p>";}611 551 } else { 612 552 $gfilter = 2; // Liste 613 #if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde Liste = '".$gemeinde."'</p>";}614 553 } 615 554 616 555 // Auch wenn redundant: Das Kennzeichen fÃŒr Anzeige und weitere Links zerlegen 617 556 $kennztyp=ZerlegungGBKennz($gbkennz); 618 #if ($debug >= 2) {echo "<p class='dbg'>GB-Kennzeichen Typ=".$kennztyp."</p>";}619 557 620 558 // Wurde eine gml_id (internes Kennzeichen) aus einem Self-Link verwendet? 621 559 // Dann hat das Prioritaet, also *nicht* nach $gbkennz suchen. 622 if ($ gbuchung!= "") { // gml der Buchungsstelle623 $trans=" Buchungsstelle";560 if ($buchunggml != "") { // gml der Buchungsstelle 561 $trans="Flurst. zur Buchungsstelle (Link)"; 624 562 EinGrundstueck(true); 625 563 626 564 } elseif($blattgml != "") { // gml des GB-Blattes 627 628 // neue Version -> function GB_Buchung_FS629 565 $trans="GB-Blatt mit Buchungen und Flst."; 630 566 EinBlatt(true); 631 567 632 /* alte Version (ohne die Function)) 633 if (EinBlatt(true) == 1) { // darauf genau eine Buchung 634 $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 635 $trans="Grundbuch-Blatt und 1 Buchung"; 636 EinGrundstueck(false); 637 } 638 */ 639 640 } elseif(isset($ag)) { // Key des Amtsgerichtes 641 #if ($debug >= 2) {echo "<p class='dbg'>Link Amtsgericht=".$ag."</p>";} 568 } elseif($ag != "") { // Key des Amtsgerichtes 642 569 $trans="GB-Bezirke zum Amtsgericht"; 643 ListAG( "'".$ag."'" ); // noch mal Kopfzeile 644 ListGBBez("'".$ag."'", false); 645 646 } else { // Kein Self-Link, Eingabe im Formular 570 ListGBBez($ag); 571 572 } else { // Eingabe im Formular 647 573 648 574 switch ($kennztyp) { … … 652 578 break; 653 579 case 1: // Eingabe Bezirk-Name (-Teil) -> gefilterte Liste der Bezirke 654 $trans=" Grundbuchbezirke gefiltert";580 $trans="Bezirke suchen \"".$gbkennz."\""; 655 581 $beznr=SuchGBBezName(); 656 582 if ($beznr > 0) { // eindeutig … … 670 596 if (EinBlatt(true) == 1) { // darauf genau eine Buchung 671 597 $trans="GB-Blatt und 1 Buchung"; 672 $ gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen598 $buchunggml=gml_buchungsstelle(); // gml_id zum Kennzeichen 673 599 EinGrundstueck(false); 674 600 } 675 601 } 676 602 break; 677 case 4: // Eingabe Buchung (Grundstueck) -> Liste der Flurstuecke 678 $trans="Flurst. zur Buchungsstelle"; 679 $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 680 if ($gbuchung != "") { // .. wurde geliefert 681 $trans="Buchungsstelle und 1 Flurst."; 682 EinGrundstueck(true); 603 case 4: // Eingabe Buchung (GrundstÃŒck) -> Liste der FlurstÃŒcke 604 $buchunggml=gml_buchungsstelle(); // gml_id zum Kennzeichen 605 if ($buchunggml != "") { // .. wurde geliefert 606 $trans="Flurst. zur Buchungsstelle (Eingabe)"; 607 EinGrundstueck(true); // mit Backlink 608 } else{ 609 $trans="Suche Buchungsstelle"; 683 610 } 684 611 break;
Note: See TracChangeset
for help on using the changeset viewer.