[134] | 1 | <?php |
---|
[86] | 2 | /* Version vom |
---|
| 3 | 13.01.2011 |
---|
| 4 | 11.04.2011 epsg in Link, transform nur wenn notwendig |
---|
[105] | 5 | 25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden |
---|
[115] | 6 | 24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight |
---|
[129] | 7 | 17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster |
---|
[134] | 8 | 02.12.2011 Suche nach Vorname Nachname oder Nachname |
---|
| 9 | */ |
---|
| 10 | import_request_variables("PG"); |
---|
| 11 | include("../../conf/alkisnav_conf.php"); |
---|
| 12 | $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; |
---|
| 13 | $con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname.$dbvers.$gkz); |
---|
[68] | 14 | // ToDo: Buchung zwischen Blatt und Flst? |
---|
[66] | 15 | ?> |
---|
| 16 | |
---|
[134] | 17 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
---|
| 18 | <html> |
---|
| 19 | <head> |
---|
| 20 | <meta http-equiv="cache-control" content="no-cache"> |
---|
| 21 | <meta http-equiv="pragma" content="no-cache"> |
---|
| 22 | <meta http-equiv="expires" content="0"> |
---|
| 23 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
---|
| 24 | <title>ALKIS-Suche Eigentümer</title> |
---|
[129] | 25 | <link rel="stylesheet" type="text/css" href="alkisnav.css"> |
---|
| 26 | <script type="text/javascript"> |
---|
| 27 | function imFenster(dieURL) { |
---|
| 28 | var link = encodeURI(dieURL); |
---|
| 29 | window.open(link,'','left=10,top=10,width=620,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes'); |
---|
| 30 | } |
---|
[134] | 31 | </script> |
---|
| 32 | </head> |
---|
[66] | 33 | <body> |
---|
| 34 | |
---|
[68] | 35 | <?php |
---|
[134] | 36 | |
---|
[66] | 37 | function getEigByName() { |
---|
[134] | 38 | // 1 ============================= |
---|
[66] | 39 | // Eigentuemer nach Name(-nsanfang) |
---|
| 40 | // =============================== |
---|
[86] | 41 | global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb; |
---|
[66] | 42 | $linelimit=120; |
---|
[134] | 43 | $arr = explode(" ", $name); |
---|
| 44 | $name0 = trim($arr[0]); |
---|
| 45 | $name1 = trim($arr[1]); |
---|
| 46 | if(preg_match("/\*/",$name0)){ |
---|
| 47 | $match = trim(preg_replace("/\*/i","%", strtoupper($name0))); |
---|
| 48 | } else { |
---|
| 49 | $match = trim($name0)."%"; |
---|
[66] | 50 | } |
---|
[134] | 51 | |
---|
| 52 | if(preg_match("/\*/",$name1)){ |
---|
| 53 | $match1 = trim(preg_replace("/\*/i","%", strtoupper($name1))); |
---|
| 54 | } else { |
---|
| 55 | $match1 = trim($name1)."%"; |
---|
| 56 | } |
---|
[66] | 57 | $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person as p "; |
---|
[134] | 58 | if($match1 != '%'){ |
---|
| 59 | $sql.="WHERE p.vorname ILIKE $1 AND nachnameoderfirma ILIKE $2 "; |
---|
| 60 | $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; |
---|
| 61 | $v=array($match, $match1, $linelimit); |
---|
| 62 | }else{ |
---|
| 63 | $sql.="WHERE nachnameoderfirma ILIKE $1 "; |
---|
| 64 | $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; |
---|
| 65 | $v=array($match, $linelimit); |
---|
| 66 | } |
---|
[66] | 67 | // +++ Adresse der Person zur eindeutigen Bestimmung? |
---|
| 68 | $res=pg_prepare("", $sql); |
---|
| 69 | $res=pg_execute("", $v); |
---|
| 70 | if (!$res) { |
---|
| 71 | echo "\n<p class='err'>Fehler bei Eigentümer</p>"; |
---|
| 72 | return; |
---|
| 73 | } |
---|
[134] | 74 | $cnt = 0; |
---|
[66] | 75 | // einfache Liste ohne div und Icon |
---|
| 76 | while($row = pg_fetch_array($res)) { |
---|
[134] | 77 | $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); |
---|
[66] | 78 | $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); |
---|
[134] | 79 | $gml=$row["gml_id"]; |
---|
[66] | 80 | // +++ Icon mit Link auf Person-Auskunft, ÃŒber gml_id |
---|
| 81 | // Zur Zeit siehe unten: erst nach Auswahl einer einzelnen Person |
---|
[134] | 82 | echo "\n<a class='nam' title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$gml."&name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>"; |
---|
| 83 | $cnt++; |
---|
| 84 | } |
---|
[66] | 85 | if($cnt == 0){ |
---|
| 86 | echo "\n<p class='err'>Keine Person.</p>"; |
---|
| 87 | } elseif($cnt >= $linelimit) { |
---|
| 88 | echo "\n<p title='Bitte den Namen eindeutiger qualifizieren'>... und weitere</p>"; |
---|
| 89 | } elseif($cnt == 1){ // Eindeutig! |
---|
| 90 | $person = $gml; |
---|
| 91 | } |
---|
[134] | 92 | return; |
---|
[66] | 93 | } |
---|
| 94 | |
---|
| 95 | function getGBbyPerson() { |
---|
[134] | 96 | // 2 ================================= |
---|
[66] | 97 | // GrundbÌcher zur gewÀhlten Person |
---|
| 98 | // =================================== |
---|
[86] | 99 | global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $auskpath; |
---|
[66] | 100 | $linelimit=120; |
---|
| 101 | if(isset($name)) { // Familiensuche |
---|
| 102 | echo "\n<div class='back' title='Andere Personen mit diesem Nachnamen'>"; |
---|
| 103 | echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer_2.ico' width='16' height='16' alt='FAM'> "; |
---|
[86] | 104 | echo "\n<a class='back' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&name=".$name."'>\"".$name."\"</a>"; |
---|
[66] | 105 | echo "\n</div>\n<br>"; |
---|
| 106 | } |
---|
| 107 | $sql="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; |
---|
| 108 | $sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer "; |
---|
| 109 | $sql.="FROM ax_person p "; |
---|
| 110 | $sql.="JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; |
---|
| 111 | $sql.="JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu "; |
---|
| 112 | $sql.="WHERE p.gml_id= $1 AND b.beziehungsart='hat';"; |
---|
| 113 | $v=array($person); |
---|
| 114 | $res=pg_prepare("", $sql); |
---|
| 115 | $res=pg_execute("", $v); |
---|
[68] | 116 | if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} |
---|
[66] | 117 | // Daten der Person |
---|
| 118 | echo "\n<div class='nam'>"; |
---|
| 119 | // Link zur Auskunft Person |
---|
[129] | 120 | echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$person."\")'>"; |
---|
[66] | 121 | echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; |
---|
| 122 | echo "\n\t</a> "; |
---|
| 123 | echo "\n\t<p class='nam'>"; |
---|
| 124 | if ($row = pg_fetch_array($res)) { |
---|
| 125 | $namzeil=$row["nachnameoderfirma"].", ".$row["vorname"]; |
---|
| 126 | $gebdat=$row["geburtsdatum"]; |
---|
| 127 | if ($gebdat != "") {$namzeil.= ", geb. ".$gebdat;} |
---|
| 128 | $best=$row["namensbestandteil"]; |
---|
| 129 | if ($best != "") {$namzeil.= ", ".$best;} |
---|
| 130 | echo htmlentities($namzeil, ENT_QUOTES, "UTF-8"); |
---|
| 131 | $namzeil=$row["plz"]." ".$row["ort_post"]; |
---|
| 132 | if (trim($namzeil) != "") {echo "\n\t<br>".htmlentities($namzeil, ENT_QUOTES, "UTF-8");} |
---|
| 133 | $namzeil=$row["strasse"]." ".$row["hausnummer"]; |
---|
| 134 | if (trim($namzeil) != "") {echo "\n\t<br>".htmlentities($namzeil, ENT_QUOTES, "UTF-8");} |
---|
| 135 | } |
---|
| 136 | echo "\n\t</p>"; |
---|
| 137 | echo "\n</div>"; |
---|
| 138 | |
---|
| 139 | // Suche nach GrundbÃŒchern der Person |
---|
| 140 | $sql ="SELECT g.gml_id AS gml_g, g.buchungsblattnummermitbuchstabenerweiterung as nr, b.bezeichnung AS beznam "; |
---|
| 141 | $sql.="FROM alkis_beziehungen bpn "; |
---|
| 142 | $sql.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id "; |
---|
| 143 | $sql.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von "; |
---|
| 144 | $sql.="JOIN ax_buchungsblatt g ON bng.beziehung_zu=g.gml_id "; |
---|
| 145 | $sql.="JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk "; |
---|
| 146 | $sql.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' "; |
---|
[134] | 147 | $sql.="ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; |
---|
[66] | 148 | $v=array($person, $linelimit); |
---|
| 149 | $res=pg_prepare("", $sql); |
---|
| 150 | $res=pg_execute("", $v); |
---|
| 151 | if (!$res) { |
---|
| 152 | echo "\n<p class='err'>Fehler bei Grundbuch</p>"; |
---|
| 153 | return; |
---|
| 154 | } |
---|
| 155 | $cnt = 0; |
---|
| 156 | while($row = pg_fetch_array($res)) { |
---|
| 157 | $gml=$row["gml_g"]; |
---|
| 158 | $beznam=$row["beznam"]; |
---|
[134] | 159 | $nr=$row["nr"]; |
---|
[66] | 160 | echo "\n<div class='gb'>"; |
---|
[129] | 161 | echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gml."\")'>"; |
---|
[66] | 162 | echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; |
---|
| 163 | echo "\n\t</a> "; |
---|
[134] | 164 | echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gb=".$gml."&person=".$person."'> Blatt ".$nr." </a>"; |
---|
[66] | 165 | echo "\n</div>"; |
---|
[134] | 166 | $cnt++; |
---|
| 167 | } |
---|
[66] | 168 | if($cnt == 0){ |
---|
| 169 | echo "\n<p class='err'>Kein Grundbuch.</p>"; |
---|
| 170 | } elseif($cnt >= $linelimit) { |
---|
| 171 | echo "\n<p>... und weitere</p>"; |
---|
| 172 | } elseif($cnt == 1){ // Eindeutig! |
---|
| 173 | $gb=$gml; // dann Stufe 3 gleich nachschieben |
---|
| 174 | } |
---|
| 175 | return; |
---|
| 176 | } |
---|
| 177 | |
---|
| 178 | function getFSbyGB($backlink) { |
---|
[134] | 179 | // 3 ================================= |
---|
[66] | 180 | // FlurstÌcke zum gewÀhlten Grundbuch |
---|
| 181 | // =================================== |
---|
| 182 | global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg; |
---|
| 183 | $linelimit=120; |
---|
| 184 | |
---|
| 185 | if($backlink) { |
---|
| 186 | echo "\n\t<div class='back' title='zurück zur Person'>"; |
---|
| 187 | echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'> "; |
---|
[86] | 188 | echo "\n\t<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person."'>"; |
---|
[66] | 189 | echo "zurück</a><br>"; |
---|
| 190 | echo "</div>"; |
---|
| 191 | echo "<div class='gb'>"; |
---|
[129] | 192 | echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$gb."\")'>"; |
---|
[66] | 193 | echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; |
---|
| 194 | echo "\n\t</a> Grundbuch"; |
---|
| 195 | echo "</div>"; |
---|
| 196 | } |
---|
| 197 | |
---|
| 198 | // Blatt <vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< Flurstck. |
---|
| 199 | $sql ="SELECT s.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; |
---|
[86] | 200 | if($epsg == "25832") { // Transform nicht notwendig |
---|
| 201 | $sql.="x(st_centroid(f.wkb_geometry)) AS x, "; |
---|
| 202 | $sql.="y(st_centroid(f.wkb_geometry)) AS y, "; |
---|
| 203 | } else { |
---|
| 204 | $sql.="x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; |
---|
| 205 | $sql.="y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; |
---|
| 206 | } |
---|
[66] | 207 | $sql.="g.gemarkungsnummer, g.bezeichnung "; |
---|
| 208 | $sql.="FROM alkis_beziehungen vbg "; |
---|
| 209 | $sql.="JOIN ax_buchungsstelle s ON vbg.beziehung_von = s.gml_id "; |
---|
| 210 | $sql.="JOIN alkis_beziehungen vfb ON s.gml_id = vfb.beziehung_zu "; |
---|
| 211 | $sql.="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; |
---|
| 212 | $sql.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; |
---|
| 213 | $sql.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; |
---|
| 214 | $sql.="ORDER BY s.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; |
---|
| 215 | |
---|
| 216 | // +++ Sonderfall Fehlt noch: Blatt -> Buchung -> (Recht an) Buchung -> FlurstÃŒck |
---|
| 217 | // +++ Ebene Buchung dazwischen wie im Teil 'Grundbuch' ? |
---|
| 218 | $v=array($gb, $linelimit); |
---|
| 219 | $res=pg_prepare("", $sql); |
---|
| 220 | $res=pg_execute("", $v); |
---|
| 221 | if (!$res) { |
---|
| 222 | echo "\n<p class='err'>Fehler bei Buchung und Flurstück.</p>"; |
---|
| 223 | if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} |
---|
| 224 | return; |
---|
| 225 | } |
---|
| 226 | $zfs=0; |
---|
| 227 | while($row = pg_fetch_array($res)) { |
---|
| 228 | $fs_gml=$row["gml_id"]; |
---|
| 229 | $bvnr=$row["lfd"]; |
---|
| 230 | if ($bvnr > 0) { |
---|
| 231 | $bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT); |
---|
| 232 | } else { |
---|
| 233 | $bvnr=""; |
---|
| 234 | } |
---|
| 235 | $gmkg=$row["bezeichnung"]; |
---|
| 236 | $flur=$row["flurnummer"]; |
---|
| 237 | $fskenn=$row["zaehler"]; |
---|
| 238 | if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer |
---|
| 239 | $x=$row["x"]; |
---|
| 240 | $y=$row["y"]; |
---|
| 241 | echo "\n<div class='fs'>"; |
---|
[129] | 242 | echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; |
---|
[66] | 243 | echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; |
---|
| 244 | echo "\n\t</a> "; |
---|
| 245 | echo "\n\tFlst. <a title='Flurstück positionieren 1:".$scalefs."' href='"; |
---|
[134] | 246 | echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; |
---|
[115] | 247 | echo "parent.parent.showHighlight(".$x.",".$y.");' "; |
---|
[134] | 248 | echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; |
---|
[66] | 249 | echo "onmouseout='parent.parent.hideHighlight()'>"; |
---|
| 250 | echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; |
---|
| 251 | echo "\n</div>"; |
---|
| 252 | $zfs++; |
---|
| 253 | } |
---|
| 254 | if($zfs == 0) { |
---|
| 255 | echo "\n<p class='err'>Kein Flurstück.</p>"; |
---|
| 256 | echo "\n<p class='hilfe'>Hinweis: Sonderfälle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>"; |
---|
| 257 | } elseif($zfs >= $linelimit) { |
---|
| 258 | echo "\n<p>... und weitere</p>"; |
---|
| 259 | } |
---|
| 260 | return; |
---|
| 261 | } |
---|
| 262 | |
---|
| 263 | // =========== |
---|
| 264 | // Start hier! |
---|
| 265 | // =========== |
---|
| 266 | // Parameter: |
---|
| 267 | // 1. name = Suche nach Namensanfang oder -bestandteil. |
---|
| 268 | // 2. person = gml_id der Person -> Suche nach GrundbÃŒchern |
---|
| 269 | // 3. gb = gml_id des Grundbuches -> Suche nach FlurstÃŒcken |
---|
| 270 | if(isset($epsg)) { |
---|
| 271 | if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";} // aus MB |
---|
[86] | 272 | $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); |
---|
[66] | 273 | } else { |
---|
[86] | 274 | if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";} |
---|
[66] | 275 | $epsg=$gui_epsg; // aus Conf |
---|
| 276 | } |
---|
| 277 | if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";} |
---|
| 278 | |
---|
| 279 | // Welche Parameter? |
---|
| 280 | // 3. Stufe: FlurstÃŒcke zum Grundbuch |
---|
| 281 | if(isset($gb)) { // gml_id |
---|
| 282 | // Das Programm hat sich selbst verlinkt aus einer Liste der GB zu einem EigentÃŒmer. |
---|
| 283 | // Wenn Parameter mitgegeben wurden, können diese fÌr einen "Link zurÌck" verwendet werden. |
---|
| 284 | getFSbyGB(true); |
---|
| 285 | } elseif(isset($person)) { // gml_id - 2. Stufe: GrundbÃŒcher zur Person |
---|
| 286 | // Das Programm hat sich selbst verlinkt aus einer Liste der Personen zu einer Suchmaske. |
---|
| 287 | getGBbyPerson(); |
---|
| 288 | if(isset($gb) ) { getFSbyGB(false);} // Es wurde nur EIN Grundbuch zu der Person gefunden. |
---|
| 289 | } elseif(isset($name)) { // Suchbegriff aus Form - 1. Stufe: Suche nach Name |
---|
| 290 | getEigByName(); |
---|
| 291 | if(isset($person)) { getGBbyPerson();} |
---|
| 292 | } elseif ($debug >= 2) { |
---|
| 293 | echo "\n<p>Parameter?</p>"; // Programmfehler |
---|
| 294 | } |
---|
| 295 | ?> |
---|
[134] | 296 | |
---|
| 297 | </body> |
---|
[66] | 298 | </html> |
---|