Changeset 278 for trunk/mapbender/http/nav/alkisnav_eig.php
- Timestamp:
- 04/26/13 13:52:56 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_eig.php
r276 r278 1 1 <?php 2 /* Version vom 2 /* Version vom 3 3 24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 4 4 17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster … … 8 8 Format css Person (Rahmen). 9 9 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 10 ToDo: Auf der Stufe 2 "getGBbyPerson" noch Filtern nach Gemeinde 10 2013-04-26 Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung". 11 Stufe 2: GB *und* FS mit einem Klick anzeigen. 12 BlÀtterfunktion (Folgeseiten) fÃŒr lange Listen. 13 Function extern gemeinsam genutzt in _eig und _grd. 14 Dazu Var-Namen harmonisieren: $gb wird $blattgml. 15 ZurÃŒck-Link, Titel der Transaktion anzeigen. 11 16 */ 12 17 $cntget = extract($_GET); 13 include("../../conf/alkisnav_conf.php"); 18 include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 19 include("alkisnav_fkt.php"); // Funktionen 14 20 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 15 21 $con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname.$dbvers.$gkz); 16 ?> 17 22 echo <<<END 18 23 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 19 24 <html> … … 30 35 window.open(link,'','left=10,top=10,width=620,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes'); 31 36 } 37 function transtitle(trans) { 38 document.getElementById('transaktiontitle').innerHTML = trans; 39 } 32 40 </script> 33 41 </head> 34 42 <body> 35 36 <?php 37 38 function getEigByName() { 39 // 1 ============================= 40 // Eigentuemer nach Name(-nsanfang) 41 // =============================== 42 global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $gfilter, $persfilter, $auskpath; 43 $linelimit=120; 44 $arr = explode(",", $name); 45 $name0 = trim($arr[0]); 46 $name1 = trim($arr[1]); 47 if(preg_match("/\*/",$name0)){ 48 $match = trim(preg_replace("/\*/i","%", strtoupper($name0))); 49 } else { 50 $match = trim($name0)."%"; 51 } 52 if(preg_match("/\*/",$name1)){ 53 $match1 = trim(preg_replace("/\*/i","%", strtoupper($name1))); 54 } else { 55 $match1 = trim($name1)."%"; 56 } 57 58 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; 59 60 if ($persfilter and ($gfilter > 0)) { 61 $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; 62 switch ($gfilter) { 63 case 1: // Einzelwert 64 $sql.="g.gemeinde=".$gemeinde." AND "; break; 65 case 2: // Liste 66 $sql.="g.gemeinde in (".$gemeinde.") AND "; break; 67 } 68 } else { 69 $sql.="WHERE "; 70 } 71 if($match1 != '%'){ 72 $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 "; 73 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; 74 $v=array($match, $match1, $linelimit); 75 }else{ 76 $sql.="nachnameoderfirma ILIKE $1 "; 77 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; 78 $v=array($match, $linelimit); 79 } 80 $res=pg_prepare("", $sql); 81 $res=pg_execute("", $v); 82 if (!$res) { 83 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; 84 return; 85 } 86 $cnt = 0; 87 while($row = pg_fetch_array($res)) { 88 $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 89 $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 90 $gml=$row["gml_id"]; 91 // Link zur Auskunft Person +++ Icon differenzieren? Firma/Person 92 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gml."\")'>"; 93 echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 94 echo "\n\t</a> "; 95 echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$gml."&name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>"; 96 $cnt++; 97 } 98 if($cnt == 0){ 99 echo "\n<p class='err'>Keine Person.</p>"; 100 } elseif($cnt >= $linelimit) { 101 echo "\n<p title='Bitte den Namen eindeutiger qualifizieren'>... und weitere</p>"; 102 } elseif($cnt == 1){ // Eindeutig! 103 $person = $gml; 104 } 105 return; 106 } 107 108 function getGBbyPerson() { 109 // 2 ================================= 110 // GrundbÃŒcher zur gewÀhlten Person 111 // =================================== 112 global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $auskpath; 113 $linelimit=120; 43 <a title="zurück" href='javascript:history.back()'> 44 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" /> 45 </a> 46 <dfn class='title' id='transaktiontitle'></dfn> 47 48 END; 49 50 // Einen Link generieren, um nach anderen Personen mit gleichem Familiennamen zu suchen 51 function familiensuche() { 52 global $gkz, $gemeinde, $epsg, $name; // $debug 114 53 if(isset($name)) { // Familiensuche 115 54 echo "\n<div class='back' title='Andere Personen mit diesem Nachnamen'>"; … … 118 57 echo "\n</div>\n<br>"; 119 58 } 120 $sql="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; 59 return; 60 } 61 62 // Adresse und Geburtsdatum der aktuellen Person ausgeben 63 function personendaten() { 64 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug 65 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; 121 66 $sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer "; 122 67 $sql.="FROM ax_person p "; 123 $sql.="JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; 124 $sql.="JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu "; 125 $sql.="WHERE p.gml_id= $1 AND b.beziehungsart='hat';"; 68 $sql.="LEFT JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; 69 $sql.="LEFT JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu "; 70 #sql.="WHERE p.gml_id= $1 AND b.beziehungsart='hat';"; // passt nicht zum LEFT 71 $sql.="WHERE p.gml_id= $1 ;"; 126 72 $v=array($person); 127 73 $res=pg_prepare("", $sql); 128 74 $res=pg_execute("", $v); 129 if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} 130 // Daten der Person 75 if (!$res) { 76 echo "\n<p class='err'>Fehler bei Name</p>\n"; 77 } 131 78 echo "\n\t<table>\n\t<tr>\n\t\t<td valign='top'>"; 132 79 // Sp. 1: Icon, Link zur Auskunft Person … … 148 95 } 149 96 echo "\n\t</p></td></tr>\n\t</table>"; 150 97 return; 98 } 99 100 function getEigByName() { 101 // 1 ============================= 102 // Eigentuemer nach Name(-nsanfang) 103 // =============================== 104 global $gkz, $gemeinde, $epsg, $name, $person, $gfilter, $auskpath; 105 $linelimit=150; 106 107 $arr = explode(",", $name); 108 $name0 = trim($arr[0]); 109 $name1 = trim($arr[1]); 110 if(preg_match("/\*/",$name0)){ 111 $match = trim(preg_replace("/\*/i","%", strtoupper($name0))); 112 } else { 113 $match = trim($name0)."%"; 114 } 115 if(preg_match("/\*/",$name1)){ 116 $match1 = trim(preg_replace("/\*/i","%", strtoupper($name1))); 117 } else { 118 $match1 = trim($name1)."%"; 119 } 120 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; 121 if ($gfilter > 0) { 122 $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; 123 switch ($gfilter) { 124 case 1: // Einzelwert 125 $sql.="g.gemeinde=".$gemeinde." AND "; break; 126 case 2: // Liste 127 $sql.="g.gemeinde in (".$gemeinde.") AND "; break; 128 } 129 } else { 130 $sql.="WHERE "; 131 } 132 if($match1 != '%'){ 133 $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 "; 134 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; 135 $v=array($match, $match1, $linelimit); 136 }else{ 137 $sql.="nachnameoderfirma ILIKE $1 "; 138 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; 139 $v=array($match, $linelimit); 140 } 141 $res=pg_prepare("", $sql); 142 $res=pg_execute("", $v); 143 if (!$res) { 144 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; 145 return; 146 } 147 $cnt = 0; 148 while($row = pg_fetch_array($res)) { 149 $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 150 $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 151 $gml=$row["gml_id"]; 152 // Link zur Auskunft Person +++ Icon differenzieren? Firma/Person 153 echo "\n<br>\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gml."\")'>"; 154 echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 155 echo "\n\t</a> "; 156 echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$gml."&name=".$nnam."'>".$nnam.", ".$vnam."</a>"; 157 $cnt++; 158 } 159 if($cnt == 0){ 160 echo "\n<p class='anz'>Kein Eigentümer gefunden.</p>"; 161 } elseif($cnt >= $linelimit) { // das Limit war zu knapp 162 echo "\n<p class='anz' title='Bitte den Namen eindeutiger qualifizieren'>... und weitere</p>"; 163 } elseif($cnt == 1){ // Eindeutig! 164 $person = $gml; 165 } else { 166 echo "\n<p class='anz'>".$cnt." Eigentümer mit '".$name."'</p>"; // im Limit 167 } 168 return; 169 } 170 171 function getGBbyPerson() { 172 // 2 ================================= 173 // GrundbÃŒcher zur gewÀhlten Person 174 // =================================== 175 // Es wird in dieser Function nicht geprÃŒft, ob die gefundenen GrundbÃŒcher auch FlurstÃŒcke 176 // haben, die im gefilterten Bereich (Gemeinde) liegen. Es können daher Sackgassen entstehen, 177 // also GrundbÃŒcher, die in der nÀchsten Stufe bei Filterung nicht zu Treffern fÃŒhren. 178 // Das Joinen bis zum FS unter BerÃŒcksichtigung von speziellen Buchungen ist zu aufwÀndig. 179 // Dann kann entweder das FS gleich mit ausgegeben werden -> getGBuFSbyPerson. 180 // Alternativ wÃŒrde eine Hilfstabelle benötigt, in der im PostProcessing 181 // das GB-zu-Gemeinde-VerhÀltnis vorbereitet wird. 182 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath, $debug, $bltbez, $bltblatt, $bltseite; 183 $linelimit=150; 184 $linelimit=15; // +++ TEST +++ 185 familiensuche(); 186 personendaten(); 187 #if ($debug > 0) {echo "\n<p>Nur Grundbücher</p>"; } 151 188 // Suche nach GrundbÃŒchern der Person 152 $sql ="SELECT g .gml_id AS gml_g, g.buchungsblattnummermitbuchstabenerweiterung as nr, b.bezeichnung AS beznam ";189 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam "; 153 190 $sql.="FROM alkis_beziehungen bpn "; 154 191 $sql.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id "; 155 192 $sql.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von "; 156 $sql.="JOIN ax_buchungsblatt g ON bng.beziehung_zu=g.gml_id ";157 $sql.="JOIN ax_buchungsblattbezirk b ON g .land = b.land AND g.bezirk = b.bezirk ";193 $sql.="JOIN ax_buchungsblatt gb ON bng.beziehung_zu=gb.gml_id "; 194 $sql.="JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk = b.bezirk "; 158 195 $sql.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' "; 159 $sql.="ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 196 if ($bltbez.$bltblatt != "") { // BlÀttern, Fortsetzen bei ... 197 $sql.="AND ((b.bezeichnung > '".$bltbez."') "; 198 $sql.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung > '".$bltblatt."')) "; 199 } 200 $sql.="ORDER BY b.bezeichnung, gb.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 201 202 if ($bltseite == "") { // Seite 1 203 $bltseite = 1; 204 } else { // Folgeseite 205 echo "\n<p class='ein'>Teil ".$bltseite; 206 } 160 207 $v=array($person, $linelimit); 161 208 $res=pg_prepare("", $sql); … … 169 216 $gml=$row["gml_g"]; 170 217 $beznam=$row["beznam"]; 171 $ nr=$row["nr"];218 $blatt=$row["blatt"]; 172 219 echo "\n<div class='gb'>"; 173 220 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gml."\")'>"; 174 221 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 175 222 echo "\n\t</a> "; 176 echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."& gb=".$gml."&person=".$person."'> Blatt ".$nr." </a>";223 echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$gml."&person=".$person."'> Blatt ".$blatt." </a>"; 177 224 echo "\n</div>"; 178 225 $cnt++; 179 226 } 180 if($cnt == 0) {181 echo "\n<p class=' err'>Kein Grundbuch.</p>";227 if($cnt == 0) { 228 echo "\n<p class='anz'>Kein Grundbuch zum Eigentümer</p>"; 182 229 } elseif($cnt >= $linelimit) { 183 echo "\n<p>... und weitere</p>"; 184 } elseif($cnt == 1){ // Eindeutig! 185 $gb=$gml; // dann Stufe 3 gleich nachschieben 230 echo "\n<p class='blt'>".$cnt." Grundb. zum Eigent."; 231 $nxtbltbez=urlencode($beznam); 232 $nxtbltblatt=urlencode($blatt); 233 $nxtbltseite=$bltseite + 1; 234 echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person."&bltbez=".$nxtbltbez."&bltblatt=".$nxtbltblatt."&bltseite=".$nxtbltseite."' "; 235 echo "title='Blättern ab ".htmlentities($beznam)." Blatt ".$blatt."'>weitere</a>"; 236 echo "</p>"; 237 } elseif($cnt == 1) { // Eindeutig! 238 $blattgml=$gml; // dann Stufe 3 gleich nachschieben 239 } else { 240 echo "\n<p class='anz'>".$cnt." Grundbücher zum Eigentümer</p>"; 186 241 } 187 242 return; 188 243 } 189 244 190 245 function getFSbyGB($backlink) { 191 246 // 3 ================================= 192 247 // FlurstÃŒcke zum gewÀhlten Grundbuch 193 248 // =================================== 194 global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg, $gfilter, $persfilter; 195 $linelimit=120; 196 197 if($backlink) { 249 // Zu einem Grundbuch (gml_id als Parameter) werden alle darauf gebuchten FlurstÃŒcke gesucht. 250 // Im ersten Schritt sind das direkt gebuchten FlurstÃŒcke. 251 // Im zweiten Schritt wird gesucht nach Rechten einer Buchungstelle des durchsuchten Blattes an anderen 252 // Buchungstellen. Es werden dann die FlurstÃŒcke darauf gelistet. 253 global $gkz, $gemeinde, $name, $person, $blattgml, $scalefs, $auskpath, $epsg, $gfilter, $debug; 254 $linelimit=150; 255 if($backlink) { // Erneuter Ansatz bei Person oder GB möglich. 256 257 // Namen ermitteln 258 $sql ="SELECT nachnameoderfirma, vorname FROM ax_person WHERE gml_id = $1 "; 259 $v=array($person); 260 $res=pg_prepare("", $sql); 261 $res=pg_execute("", $v); 262 if (!$res) { 263 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; 264 } 265 $row = pg_fetch_array($res); // nur eine Zeile 266 $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 267 $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 198 268 echo "\n\t<div class='back' title='zurück zur Person'>"; 199 269 echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'> "; 200 270 echo "\n\t<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person."'>"; 201 echo "zurück</a><br>";271 echo $nnam.", ".$vnam."</a><br>"; 202 272 echo "</div>"; 273 274 // Grundbuch-Daten ermitteln 275 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam "; 276 $sql.="FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk = b.bezirk "; 277 $sql.="WHERE gb.gml_id= $1 ;"; 278 $v=array($blattgml); 279 $res=pg_prepare("", $sql); 280 $res=pg_execute("", $v); 281 if (!$res) { 282 echo "\n<p class='err'>Fehler bei Grundbuch</p>"; 283 } 284 $row = pg_fetch_array($res); // nur eine Zeile 285 $gml=$row["gml_g"]; 286 $beznam=$row["beznam"]; 287 $blatt=$row["blatt"]; 203 288 echo "<div class='gb'>"; 204 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$ gb."\")'>";289 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>"; 205 290 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 206 echo "\n\t</a> Grundbuch";291 echo "\n\t</a> ".$beznam." Blatt ".$blatt; 207 292 echo "</div>"; 208 293 } 209 294 295 GB_Buchung_FS($linelimit); // Externe Function: Blatt > GrundstÃŒck > Flurst. 296 297 return; 298 } 299 300 function getGBuFSbyPerson() { 301 // 2 + 3 ========================================= 302 // GrundbÃŒcher UND FlurstÃŒcke zur gewÀhlten Person 303 // =============================================== 304 // Dies ist die Kombination von Stufe 2 (GrundbÃŒcher zur Person) und 3 (FlurstÃŒcke zum Grundbuch) 305 // in einem einzelnen Schritt. Wenn auf Gemeinde gefiltert wird, dann können in Stufe 2 (noch ohne Filter) 306 // auch GrundbÃŒcher gefunden werden, die dann auf Stufe 3 (mit Filter) keine FS liefern ("Sackgasse"!). 307 // Wenn aber per JOIN "GB -> FS -> Gemarkung -> Gemeinde" geprÃŒft wird, dann können 308 // die Daten ja auch gleich ausgegeben werden. 309 // FÃŒr FÀlle in denen nicht nach Gemeinde gefiltert wird (z.B. ganzer Kreis) kann weiter 310 // Stufe 2 und 3 nacheinander verwendet werden. Dies ist wahrscheinlich ÃŒbersichtlicher, 311 // weil "ungefiltert" in "2+3" zu lange Listen entstehen wÃŒrden, die durchblÀttert werden mÃŒssen. 312 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath, $scalefs, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht; 313 $linelimit=80; // als Limit "Anzahl FlurstÃŒcke" in den beiden folgenden Abfragen 314 // darf nun etwas knapper sein, weil man jetzt blÀttern kann 315 familiensuche(); 316 personendaten(); 317 318 // Wenn das Limit ÃŒberschritten wurde: zusÀtzliche Parameter "blt"=BlÀttern 319 // $bltbez = Bezirk-Name 320 // $bltblatt = BlattMitBuchstabe 321 // $bltbvnr = lfd.Nr der Buchungsstelle 322 // $bltseite = fortlaufende Seiten-Nr 323 // $bltrecht = "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung 324 210 325 // SQL-Bausteine vorbereiten 211 $sql1 ="SELECT s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 326 // Direkte Buchungen suchen mit: $sql1 + $sqla1 + $sql2 327 // SonderfÀlle suchen mit: $sql1 + $sqlz + $sqla2 + $sql2 328 329 // Baustein: SQL-Anfang fuer beide Varianten 330 $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam, "; 331 $sql1.="s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemarkung, ot.gemarkungsname, "; 212 332 if($epsg == "25832") { // Transform nicht notwendig 213 333 $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; 214 $sql1.="st_y(st_centroid(f.wkb_geometry)) AS y ,";334 $sql1.="st_y(st_centroid(f.wkb_geometry)) AS y "; 215 335 } else { 216 336 $sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 217 $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 218 } 219 $sql1.="g.gemarkungsnummer, g.bezeichnung "; 220 $sql1.="FROM alkis_beziehungen vbg "; 221 $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id "; 222 223 // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 224 $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 225 $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 226 227 $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 228 $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 229 230 $sql2.="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; 231 $sql2.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 232 233 if ($persfilter and ($gfilter > 0)) { 234 $sql2.="JOIN gemeinde_gemarkung v ON g.land=v.land AND g.gemarkungsnummer=v.gemarkung "; 235 } 236 237 $sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 238 239 if ($persfilter and ($gfilter > 0)) { 240 switch ($gfilter) { 241 case 1: // Einzelwert 242 $sql2.="AND v.gemeinde=".$gemeinde." "; break; 243 case 2: // Liste 244 $sql2.="AND v.gemeinde in (".$gemeinde.") "; break; 245 } 246 } 247 $sql2.="ORDER BY s1.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 248 249 // Blatt <vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< Flurstck. 250 $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 251 252 $v=array($gb, $linelimit); 253 $res=pg_prepare("", $sql); 254 $res=pg_execute("", $v); 255 if (!$res) { 256 echo "\n<p class='err'>Fehler bei Buchung und Flurstück.</p>"; 257 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 258 return; 259 } 260 $zfs1=0; 261 while($row = pg_fetch_array($res)) { 262 $fs_gml=$row["gml_id"]; 263 $bvnr=$row["lfd"]; 264 if ($bvnr > 0) {$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);} else {$bvnr="";} 265 $gmkg=$row["bezeichnung"]; 266 $flur=$row["flurnummer"]; 267 $fskenn=$row["zaehler"]; 268 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 269 $x=$row["x"]; 270 $y=$row["y"]; 271 echo "\n<div class='fs'>"; 272 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 273 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 274 echo "\n\t</a> "; 275 echo "\n\tFlst. <a title='Flurstück positionieren 1:".$scalefs."' href='"; 276 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 277 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 278 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 279 echo "onmouseout='parent.parent.hideHighlight()'>"; 280 echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; 281 echo "\n</div>"; 282 $zfs1++; 283 } 284 285 // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen 286 // buchungsStelle2 < an < buchungsStelle1 287 $sql=$sql1.$sqlz.$sqla2.$sql2; // Rechte an 288 289 $v=array($gb, $linelimit); 290 $res=pg_prepare("", $sql); 291 $res=pg_execute("", $v); 292 if (!$res) { 293 echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 294 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 295 return; 296 } 297 $zfs2=0; 298 while($row = pg_fetch_array($res)) { 299 $fs_gml=$row["gml_id"]; 300 $bvnr=$row["lfd"]; 301 if ($bvnr > 0) {$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);} else {$bvnr="";} 302 $gmkg=$row["bezeichnung"]; 303 $flur=$row["flurnummer"]; 304 $fskenn=$row["zaehler"]; 305 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 306 $x=$row["x"]; 307 $y=$row["y"]; 308 echo "\n<div class='fs'>"; 309 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 310 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 311 echo "\n\t</a> "; 312 echo "\n\tRecht an <a title='Flurstück positionieren 1:".$scalefs."' href='"; 313 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 314 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 315 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 316 echo "onmouseout='parent.parent.hideHighlight()'>"; 317 echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; 318 echo "\n</div>"; 319 $zfs2++; 320 } 321 322 if($zfs1 + $zfs2 == 0) { 323 echo "\n<p class='err'>Kein Flurstück im berechtigten Bereich.</p>"; 324 // echo "\n<p class='hilfe'>Hinweis: Sonderfälle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>"; 325 } elseif($zfs >= $linelimit) { 326 echo "\n<p>... und weitere</p>"; 327 } 337 $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y "; 338 } 339 $sql1.="FROM alkis_beziehungen bpn "; 340 $sql1.="JOIN ax_namensnummer nn ON bpn.beziehung_von=nn.gml_id "; 341 $sql1.="JOIN alkis_beziehungen bng ON nn.gml_id=bng.beziehung_von "; 342 $sql1.="JOIN ax_buchungsblatt gb ON bng.beziehung_zu=gb.gml_id "; 343 $sql1.="JOIN alkis_beziehungen vbg ON gb.gml_id=vbg.beziehung_zu "; 344 $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von=s1.gml_id "; 345 $sql1.="JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; // quer-ab 346 347 // Baustein: Zwischen-JOIN (nur bei zweiter Abfrage) 348 $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von=s1.gml_id "; 349 $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu=s2.gml_id "; 350 351 // Baustein: Auswahl 1 oder 2 352 $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id=vfb.beziehung_zu "; 353 $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id=vfb.beziehung_zu "; 354 355 // Baustein: SQL-Ende fuer beide Varianten 356 $sql2.="JOIN ax_flurstueck f ON vfb.beziehung_von=f.gml_id "; 357 $sql2.="JOIN pp_gemarkung ot ON f.land=ot.land AND f.gemarkungsnummer=ot.gemarkung "; // Ortsteil 358 $sql2.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' "; 359 $sql2.="AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 360 switch ($gfilter) { // Gemeinde-Filter 361 case 1: // Einzelwert 362 $sql2.="AND ot.gemeinde=".$gemeinde." "; break; 363 case 2: // Liste 364 $sql2.="AND ot.gemeinde in (".$gemeinde.") "; break; 365 } 366 $sql3 ="ORDER BY gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 367 // Sortier-Problem: laufendenummer in varchar linksbÃŒndig 368 369 // Die Bausteine in 2 Varianten kombinieren 370 371 // BlÀttern mit folgenden Parametern: $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht 372 if ($bltbez.$bltblatt.$bltbvnr != "") { // BlÀttern, Fortsetzen bei ... 373 $bltwhere ="AND ((b.bezeichnung > '".$bltbez."') "; 374 $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung > '".$bltblatt."') "; 375 $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung = '".$bltblatt."' AND cast(s1.laufendenummer AS integer) >= ".$bltbvnr." )) "; 376 } // FlurstÃŒcke in der BVNR werden ggf. wiederholt 377 378 if ($bltseite == "") { // auf Seite 1 beide Teile ausgegeben 379 $bltseite = 1; 380 } else { // Folgegeseite: nur Teil 1 *oder* 2 381 echo "\n<p class='ein'>Teil ".$bltseite." - "; 382 switch ($bltrecht) { 383 case "nur": 384 echo "nur Rechte an .. Buchungen</p>"; break; 385 case "ohne": 386 echo "nur direkte Buchungen</p>"; break; 387 default: 388 echo "</p>"; break; 389 } 390 } 391 392 // FÀlle ohne "Rechte an" 393 if ($bltrecht != "nur") { // "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung 394 // Blatt <vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< Flurstck. 395 $sql=$sql1.$sqla1.$sql2.$bltwhere.$sql3; // Direkte Buchungen 396 397 $v=array($person, $linelimit); 398 $res=pg_prepare("", $sql); 399 $res=pg_execute("", $v); 400 if (!$res) { 401 echo "\n<p class='err'>Fehler bei Buchung und Flurstück.</p>"; 402 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 403 return; 404 } 405 $zfs1=0; 406 $gwgb=""; 407 while($row = pg_fetch_array($res)) { 408 $gb_gml=$row["gml_g"]; 409 410 // Gruppenwechsel auf Ebene Grundbuch 411 if ($gwgb != $gb_gml) { 412 $beznam=$row["beznam"]; 413 $blatt=$row["blatt"]; 414 echo "\n<div class='gb'>"; // Ausgabe GB - B L A T T 415 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gb_gml."\")'>"; 416 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 417 echo "\n\t</a> "; 418 echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$gb_gml."&person=".$person."'> Blatt ".$blatt." </a>"; 419 echo "\n</div>"; 420 $gwgb = $gb_gml; // Steuerg GW GB 421 $gwbv = ""; // Steuerg GW BVNR 422 } 423 424 // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR) 425 $bvnr=$row["lfd"]; 426 if ($gwbv != $bvnr) { 427 if ($bvnr == 0) { 428 $bvnra = "-"; 429 } else { 430 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 431 } 432 $gwbv = $bvnr; // Steuerg GW BVNR 433 echo "\n<div class='gs' title='Grundstück'>"; 434 echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 435 echo "Buchung ".$bvnra."</div>"; 436 } 437 438 $fs_gml=$row["gml_id"]; 439 $gmkg=$row["gemarkungsname"]; 440 $flur=$row["flurnummer"]; 441 $fskenn=$row["zaehler"]; 442 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr 443 $x=$row["x"]; 444 $y=$row["y"]; 445 echo "\n<div class='fs'>"; // F L U R S T à C K 446 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 447 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 448 echo "\n\t</a> "; 449 echo "\n\t".$gmkg." <a title='Flurstück positionieren 1:".$scalefs."' href='"; 450 echo "javascript:"; 451 echo "transtitle(\"auf Flurstück positioniert\"); "; 452 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 453 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 454 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 455 echo "onmouseout='parent.parent.hideHighlight()'>"; 456 echo " Flur ".$flur." ".$fskenn."</a>"; 457 echo "\n</div>"; 458 $zfs1++; 459 } 460 if($zfs1 == 0) { 461 if ($bltrecht == "ohne") { 462 echo "\n<p class='anz'>Keine direkte Buchung gefunden.</p>"; 463 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 464 } 465 } elseif($zfs1 >= $linelimit) { // das Limit war zu knapp, das B l À t t e r n anbieten 466 echo "\n<p class='blt'>".$zfs1." Flurstücke"; 467 $nxtbltbez=urlencode($beznam); 468 $nxtbltblatt=urlencode($blatt); 469 $nxtbltseite=$bltseite + 1; 470 echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person."&bltbez=".$nxtbltbez."&bltblatt=".$nxtbltblatt."&bltbvnr=".$bvnr."&bltseite=".$nxtbltseite."&bltrecht=ohne' "; 471 echo "title='Blättern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>"; 472 echo "</p>"; 473 } elseif($zfs1 > 1) { // Meldung (Plural) ab 2 474 echo "\n<p class='anz'>".$zfs1." Flurstücke zum Eigentümer</p>"; // im Limit 475 } 476 } 477 478 if ($bltrecht == "" and $zfs1 > 0) { // beides 479 echo "<hr>"; // dann Trenner 480 } 481 482 // FÀlle mit "Rechte an" 483 if ($bltrecht != "ohne") { // "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung 484 // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen 485 // buchungsStelle2 < an < buchungsStelle1 486 $sql=$sql1.$sqlz.$sqla2.$sql2.$bltwhere.$sql3; // Rechte an 487 $v=array($person, $linelimit); 488 $res=pg_prepare("", $sql); 489 $res=pg_execute("", $v); 490 if (!$res) { 491 echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 492 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 493 return; 494 } 495 $zfs2=0; 496 $gwgb=""; 497 while($row = pg_fetch_array($res)) { 498 // Gruppenwechsel auf Ebene Grundbuch 499 $gb_gml=$row["gml_g"]; 500 if ($gwgb != $gb_gml) { 501 $beznam=$row["beznam"]; 502 $blatt=$row["blatt"]; 503 echo "\n<div class='gb'>"; // Ausgabe GB 504 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gb_gml."\")'>"; 505 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 506 echo "\n\t</a> "; 507 echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$gb_gml."&person=".$person."'> Blatt ".$blatt." </a>"; 508 echo "\n</div>"; 509 $gwgb = $gb_gml; // Steuerg GW GB 510 $gwbv = ""; // Steuerg GW BVNR 511 } 512 513 // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR) 514 $bvnr=$row["lfd"]; 515 if ($gwbv != $bvnr) { 516 if ($bvnr == 0) { 517 $bvnra = "-"; 518 } else { 519 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 520 } 521 $gwbv = $bvnr; // Steuerg GW BVNR 522 echo "\n<div class='gs' title='Grundstück'>"; 523 echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 524 echo "Buchung ".$bvnra."</div>"; 525 } 526 527 $fs_gml=$row["gml_id"]; 528 $gmkg=$row["gemarkungsname"]; 529 $flur=$row["flurnummer"]; 530 $fskenn=$row["zaehler"]; 531 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 532 $x=$row["x"]; 533 $y=$row["y"]; 534 echo "\n<div class='fs'>"; 535 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 536 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 537 echo "\n\t</a> "; 538 echo "\n\tRecht an ".$gmkg." <a title='Flurstück positionieren 1:".$scalefs."' href='"; 539 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 540 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 541 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 542 echo "onmouseout='parent.parent.hideHighlight()'>"; 543 echo " Flur ".$flur." ".$fskenn."</a>"; 544 echo "\n</div>"; 545 $zfs2++; 546 } 547 if($zfs2 == 0) { 548 if ($zfs1 == 0 or $bltrecht == "nur") { // keine Meldung wenn schon in Teil 1 eine Ausgabe 549 echo "\n<p class='anz'>Keine Rechte an Buchungen.</p>"; 550 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 551 } 552 } elseif($zfs2 >= $linelimit) { // das Limit war zu knapp, das B l À t t e r n anbieten 553 echo "\n<p class='blt'>".$zfs2." Rechte an Flurst."; 554 $nxtbltbez=urlencode($beznam); 555 $nxtbltblatt=urlencode($blatt); 556 $nxtbltseite=$bltseite + 1; 557 echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person."&bltbez=".$nxtbltbez."&bltblatt=".$nxtbltblatt."&bltbvnr=".$bvnr."&bltseite=".$nxtbltseite."&bltrecht=nur' "; 558 echo "title='Blättern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>"; 559 echo "</p>"; 560 } elseif($zfs2 > 1) { // ab 2 561 echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>"; // im Limit 562 } 563 } // ENDE FÀlle mit "Rechte an" 328 564 return; 329 565 } … … 332 568 // Start hier! 333 569 // =========== 570 334 571 // Parameter: 335 572 // 1. name = Suche nach Namensanfang oder -bestandteil. 336 573 // 2. person = gml_id der Person -> Suche nach GrundbÃŒchern 337 574 // 3. gb = gml_id des Grundbuches -> Suche nach FlurstÃŒcken 575 338 576 if(isset($epsg)) { 339 if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";} // aus MB577 #if ($debug >= 2) {echo "\n<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB 340 578 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 341 579 } else { 342 if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}580 #if ($debug >= 1) {echo "<p class='dbg'>kein EPSG gesetzt</p>";} 343 581 $epsg=$gui_epsg; // aus Conf 344 582 } 345 if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";}583 #if ($debug >= 2) {echo "\n<p class='dbg'>Filter Gemeinde = '".$gemeinde."'</p>";} 346 584 if ($gemeinde == "") { 347 $gfilter = 0; // ungefiltert585 $gfilter = 0; // Gemeinde ungefiltert 348 586 } elseif(strpos($gemeinde, ",") === false) { 349 $gfilter = 1; // Einzelwert587 $gfilter = 1; // Gemeinde Einzelwert 350 588 } else { 351 $gfilter = 2; // Liste352 } 353 354 // Welche Parameter?355 // 3. Stufe: FlurstÃŒcke zum Grundbuch356 if(isset($gb)) { // gml_id 589 $gfilter = 2; // Gemeinde Filter-Liste 590 } 591 592 // Quo Vadis? 593 if(isset($blattgml)) { // 3. Stufe: FlurstÃŒcke zum Grundbuch 594 357 595 // Das Programm hat sich selbst verlinkt aus einer Liste der GB zu einem EigentÃŒmer. 358 596 // Wenn Parameter mitgegeben wurden, können diese fÃŒr einen "Link zurÃŒck" verwendet werden. 359 getFSbyGB(true); 360 } elseif(isset($person)) { // gml_id - 2. Stufe: GrundbÃŒcher zur Person 597 $trans="Flurstücke zum Grundbuch"; 598 getFSbyGB(true); // mit BackLink 599 600 } elseif(isset($person)) { // 2. Stufe: GrundbÃŒcher zur Person 361 601 // Das Programm hat sich selbst verlinkt aus einer Liste der Personen zu einer Suchmaske. 362 getGBbyPerson(); 363 if(isset($gb) ) { getFSbyGB(false);} // Es wurde nur EIN Grundbuch zu der Person gefunden. 364 } elseif(isset($name)) { // Suchbegriff aus Form - 1. Stufe: Suche nach Name 365 getEigByName(); 366 if(isset($person)) { getGBbyPerson();} 602 if ($debug >= 2) {echo "\n<p class='dbg'>Gemeinde-Filter-Steuerung = '".$gfilter."'</p>";} 603 604 // Die Filtereinstellung beeinflusst die Such-Strategie: 605 if ($gfilter == 0) { // Keine Filterung auf "Gemeinde": groÃe Datenmenge 606 607 $trans="Grundbücher zum Eigentümer"; 608 getGBbyPerson(); 609 // Also schrittweise erst mal Stufe 2 = GrundbÃŒcher zur Person suchen. 610 // Diese Function hat auch noch keine Gemeinde-Filter-Funktion auf GB-Ebene. 611 612 if(isset($blattgml) ) { // Es wurde nur EIN Grundbuch zu der Person gefunden. 613 $trans="1 Blatt zum Eigentümer"; 614 getFSbyGB(false); // Dann dazu auch gleich die Stufe 3 hinterher, aber ohne Backlink. 615 } 616 617 } else { // mit Filter auf Gemeinde: weniger Daten? 618 619 $trans="Grundb. und Flurst. zum Eigentümer"; 620 getGBuFSbyPerson(); // Schritte 2+3 gleichzeitig, dabei Gemeinde-Filter auf Stufe 3 621 } 622 623 } elseif(isset($name)) { // Suchbegriff aus Form - 1. Stufe: Suche nach Name 624 625 $trans="Namensuche \"".$name."\""; 626 getEigByName(); // Suchen nach Namensanfang 627 628 if(isset($person)) { // genau EIN Treffer 629 $trans="1 Grundbuch zum Namen"; 630 getGBbyPerson(); // Dann gleich das Grundbuch hinterher 631 } 632 367 633 } elseif ($debug >= 2) { 368 echo "\n<p>Parameter?</p>"; // Programmfehler 369 } 634 echo "\n<p class='dbg'>Parameter?</p>"; // Programmfehler, soll nicht vorkommen 635 } 636 // Titel im Kopf anzeigen 637 echo "\n<script type='text/javascript'>\n\ttranstitle('".$trans."')\n</script>"; 638 370 639 ?> 371 640
Note: See TracChangeset
for help on using the changeset viewer.