Changeset 427 for trunk/info/info/alkisn/alkisfkt.php
- Timestamp:
- 02/24/22 16:24:19 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkisn/alkisfkt.php
r425 r427 1 1 <?php 2 /* Modul: alkisfkt.php 3 4 ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo). 5 F u n c t i o n s 2 /* alkisfkt.php 3 4 ALKIS-Auskunft 5 Author: Frank JÀger, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo) 6 7 F u n c t i o n s , die von mehreren Modulen verwendet werden. 6 8 7 9 Version: … … 15 17 Footer: Umschalter fÃŒr SchlÃŒssel und Debug unabhÀngig benutzbar. Authentifizierung aus QWC2 nicht hier behandeln. 16 18 2021-12-30 Bestandsnachweis recursiv ÃŒber alle Buchungs-Ebenen 17 18 ++ ToDo: 19 - Parameter $lnkclass in eigentuemer() und $jfenster in buchung_anzg() vereinheitlichen 19 2022-01-13 Functions in Fach-Modul verschoben, wenn nur von einem verwendet. Neue Functions LnkStf(), DsKy() 20 20 */ 21 21 … … 67 67 68 68 function footer($gmlid, $link, $append) { 69 70 71 72 69 // Einen Seitenfuà ausgeben. 70 // Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor 71 // Den URL-Parameter "&showkey=j/n" umschalten lassen. 72 // $append wird angehÀngt wenn gefÃŒllt. Anwendung: &eig=j bei FSNW, <yp=m/p/o bei Lage 73 73 global $gkz, $showkey, $hilfeurl, $debug, $dbg, $customer; 74 74 … … 78 78 ."\n\t\t<table class='outer'>\n\t\t<tr>"; 79 79 80 // Sp alte1: Info Benutzerkennung80 // Sp.1: Info Benutzerkennung 81 81 if (isset($customer) and $customer != '') { // ÃŒber global von fkt. darf_ich() 82 82 echo "\n\t\t\t<td title='Info'><i>Benutzer: ".$customer."</i></td>"; … … 85 85 } 86 86 87 // Spalte 2: Umschalter 87 // Sp.2: Umschalter 88 // +++ ToDo: Texte eindeutiger machen, z.B. Anzeige der SchlÃŒssel ist an >> aus // Anzeige der SchlÃŒssel ist aus >> an 89 // oder als Formular / Option-Element 88 90 echo "\n\t\t\t<td title='Konfiguration'>"; 89 91 $mylink ="\n\t\t\t\t<a class='keyswitch' href='".$link."gkz=".$gkz."&gmlid=".$gmlid.$append; … … 111 113 echo "\n\t\t\t</td>"; 112 114 113 // Sp alte3: Dokumentation115 // Sp.3: Dokumentation 114 116 echo "\n\t\t\t<td title='Hilfe'>" 115 117 ."\n\t\t\t\t<p class='nwlink'>\n\t\t\t\t\t<a target='_blank' href='".$hilfeurl."' title='Dokumentation'>Hilfe zur ALKIS-Auskunft</a>\n\t\t\t\t</p>\n\t\t\t</td>" … … 128 130 function UnqKatAmt($t1, $t2){ 129 131 // Wenn der Datenbestand aus NBA-Verfahren mehrerer KatasterÀmter gemixt wurde, dann muss beim SQL-JOIN auf einige SchlÃŒsseltabellen 130 // zusÀtzlich dafÃŒr gesort werden, dass nur die SchlÃŒssel des gleichen Katasteramtes verwendet werden. Son t bekommt man redundante Treffer.132 // zusÀtzlich dafÃŒr gesort werden, dass nur die SchlÃŒssel des gleichen Katasteramtes verwendet werden. Sonst bekommt man redundante Treffer. 131 133 // Benötigt den Alias der zu verbindenden Tabellen. 132 134 // Liefert einen String zum EinfÃŒgen hinter "JOIN .. ON". … … 139 141 } 140 142 143 function LnkStf(){ 144 // Link-Staffeltab - Die Parameter showkey und nodebug im href eines <a>-Tag an ein anderes Modul weiter geben. 145 // Gibt einen String zurÃŒck, der im href eingefÃŒgt wird. 146 global $debug, $dbg, $showkey; 147 148 if ($showkey) { // SchlÃŒssel anzeigen 149 $ret="&showkey=j"; 150 } else { 151 $ret=""; 152 } 153 154 // Nur relevant in einer Entwicklungsumgebung: 155 // Falls debug-Ausgaben erlaubt sind (conf) kann man das temporÀr einschrÀnken, umgekehrt nicht. 156 // $dbg = aktueller Arbeitswert, $debug = aus Conf. 157 if ($dbg === 0 AND $debug > 0){ 158 $ret.="&nodebug=j"; 159 } 160 return $ret; 161 } 162 163 function DsKy($derKey, $Tipp){ 164 // Display Key - Optional einen ALKIS-internen SchlÃŒsselwert vor dem entschlÃŒsselten Wert ausgeben. 165 // Die Option wird gesteuert durch einen Schalter im SeitenfuÃ. 166 // Liefert einen HTML-Text zur Verwendung in einem Echo-Befehl. Zur Verkettung mit Literalen. 167 global $showkey; 168 $Tipp = str_replace("*", "Schlüssel", $Tipp); // hÀufig verwendet 169 if ($showkey and $derKey != "") { 170 $html="<span class='key' title='".$Tipp."'>(".$derKey.") </span>"; 171 } else { 172 $html=""; 173 } 174 return $html; 175 } 176 141 177 function ber_bs_zaehl($gmls) { 142 // Berechtigte Buchungs-Stellen zaehlen.178 // Berechtigte Buchungs-Stellen zÀhlen. 143 179 144 180 // Buchungstelle dienend <(Recht)an< Buchungstelle herrschend … … 148 184 $resan = pg_prepare("", $sql); 149 185 $resan = pg_execute("", $v); 150 if (!$resan) {echo "\n<p class='err'>Fehler bei 'berechtigte Buchungsstellen z aehlen'.</p>";}186 if (!$resan) {echo "\n<p class='err'>Fehler bei 'berechtigte Buchungsstellen zählen'.</p>";} 151 187 $rowan = pg_fetch_assoc($resan); 152 188 $anz=$rowan["anz"]; … … 156 192 157 193 function buchung_anzg($gmlbs, $eig, $jsfenster, $gml_fs, $trtyp) { 158 159 160 161 162 163 164 194 // In einem FS-Nachw. EINE Buchungsstelle anzeigen. 195 // Parameter: 196 // $gmlbs: GML-ID der anzuzeigenden Buchungs-Stelle 197 // $eig: EigentÃŒmer ausgeben j/n 198 // $jsfenster: Javascript-Funktion zum Verlassen des Feature-Info-Fensters verwenden (bool) 199 // $gml_fs: GML-ID des FlurstÃŒcke (nur bei erstem Aufruf in einem FS-Nachweis notwendig) 200 // $trtyp: Tabellen-Zeilen-Typ. Werte: 1="mit GS-Link", 2="ohne GS-Link", 3="ohne GS-Link +Zeile einfÀrben" 165 201 global $gkz, $dbg, $showkey, $bartgrp, $barttypgrp, $stufe, $katAmtMix; 166 202 … … 190 226 } 191 227 if ($rowbs = pg_fetch_assoc($resbs)) { // EIN Treffer 192 $blattkeyber=$rowbs["blattart"]; // Schl uessel von Blatt-Art des GB228 $blattkeyber=$rowbs["blattart"]; // SchlÃŒssel von Blatt-Art des GB 193 229 if ($blattkeyber != '5000' or $dbg > 1) { // "Fiktives Blatt" nur bei Entwicklung anzeigen 194 230 $gezeigt = 1; // Funktionswert nach Treffer … … 203 239 $blatt=ltrim($rowbs["blatt"], "0"); 204 240 $lfd=ltrim($rowbs["lfd"], "0"); 205 if ($bartkey != $bartgrp) { // Wechsel derBuchungsart241 if ($bartkey != $bartgrp) { // Wechsel Buchungsart 206 242 $barttitle=$rowbs["barttitle"]; // Buchungsart ErklÀrung 207 243 switch (true) { // Die Buchungsart einem Typ (Gruppierung) zuweisen … … 221 257 echo "\n\t<tr>\n\t\t<td colspan='3'>\n\t\t\t<h3 id='gb'>".$h3txt."</h3>\n\t\t</td>"; // 1-3 222 258 echo "\n\t\t<td>\n\t\t\t<p class='nwlink noprint'>" // 4 223 ."\n\t\t\t\t<a href='".selbstverlinkung()."?gkz=".$gkz."&gmlid=".$gml_fs; 224 if ($showkey) {echo "&showkey=j";} 225 if ($eig=="j") { // Umschalter: FS-Nachweis ruft sich selbst mit geaendertem Parameter auf. Positionierung auf Marke "#gb" 259 ."\n\t\t\t\t<a href='".selbstverlinkung()."?gkz=".$gkz."&gmlid=".$gml_fs.LnkStf(); 260 if ($eig=="j") { // Umschalter: FS-Nachweis ruft sich selbst mit geÀndertem Param. auf. Pos. auf Marke "#gb" 226 261 echo "&eig=n#gb' title='Umschalter: Flurstücksnachweis'>ohne Eigentümer</a>"; 227 262 } else { … … 236 271 $barttypgrp = $barttyp; 237 272 } 238 239 // ++ mehr Abstand oben zur Zeile in .css?240 273 echo "\n\t<tr>" // Buchungsart als Zwischenzeile 241 ."\n\t\t<td class='ll'><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Buchungsart:</td>" // 1 242 ."\n\t\t<td colspan='2' title='".$barttitle."'>"; // 2-3 243 if ($showkey) {echo "<span class='key' title='Buchungsart'>(".$bartkey.")</span> ";} 244 echo "<span class='wichtig'>".$bart."</span>" 245 ."</td>" 246 ."\n\t\t<td></td>" // 4 274 ."\n\t\t<td class='ll'><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Buchungsart:</td>" 275 ."\n\t\t<td colspan='2' title='".$barttitle."'>".DsKy($bartkey, 'Buchungsart')."<span class='wichtig'>".$bart."</span>" 276 ."</td>\n\t\t<td></td>" // 4 247 277 ."\n\t</tr>"; 248 278 $bartgrp=$bartkey; // Gruppe merken … … 261 291 } 262 292 echo "\n\t\t\t<tr>" 263 ."\n\t\t\t\t<td class='head'>Bezirk</td>" 264 ."\n\t\t\t\t<td class='head'>"; 265 if ($showkey) {echo "<span class='key' title='Blattart'>(".$blattkeyber.")</span> ";} 266 echo $blattartber."</td>" 267 ."\n\t\t\t\t<td class='head'>Lfd-Nr</td>" 293 ."\n\t\t\t\t<td class='head'>Bezirk</td>" 294 ."\n\t\t\t\t<td class='head'>".DsKy($blattkeyber, 'Blattart-*').$blattartber."</td>" 295 ."\n\t\t\t\t<td class='head'>Lfd-Nr</td>" 268 296 ."\n\t\t\t</tr>"; 269 297 … … 273 301 echo "\n\t\t\t<tr>"; 274 302 } 275 echo "\n\t\t\t\t<td title='Grundbuchbezirk'>"; 276 if ($showkey) {echo "<span class='key' title='GB-Bezirk-Schlüssel'>".$rowbs["bezirk"]."</span><br>";} 277 echo $beznam."</td>" 278 ."\n\t\t\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$blatt."</span></td>" 279 ."\n\t\t\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundstück)'>".$lfd."</td>" 303 echo "\n\t\t\t\t<td title='Grundbuchbezirk'>".DsKy($rowbs["bezirk"], 'GB-Bezirk-*').$beznam."</td>" 304 ."\n\t\t\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$blatt."</span></td>" 305 ."\n\t\t\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundstück)'>".$lfd."</td>" 280 306 ."\n\t\t\t</tr>" 281 307 ."\n\t\t\t</table>"; … … 293 319 294 320 echo "\n\t\t<td>"; // 4 295 echo "\n\t\t\t<p class='nwlink noprint'>" ;321 echo "\n\t\t\t<p class='nwlink noprint'>".DsKy($blattkeyber, 'Blattart-*'); 296 322 // Bestand 297 if ($showkey) {echo "<span class='key' title='Blattart'>(".$blattkeyber.")</span> ";} 298 $url="alkisbestnw.php?gkz=".$gkz."&gmlid=".$gbgml; 299 if ($showkey) {$url.="&showkey=j";} 323 $url="alkisbestnw.php?gkz=".$gkz."&gmlid=".$gbgml.LnkStf(); 300 324 if ($jsfenster) {$url="javascript:imFenster(\"".$url."\")";} // Sonderfall "Inlay" aus Feature-Info 301 325 echo "\n\t\t\t\t<a href='".$url."' title='Grundbuchnachweis'>".$blattartber 302 ." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>" 303 ."</a>"; 326 ." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>"; 304 327 // Buchung 305 328 if ($trtyp === 1) { 306 echo "<br>"; 307 if ($showkey) {echo "<span class='key' title='Buchungsart'>(".$bartkey.")</span> ";} 308 $url="alkisgsnw.php?gkz=".$gkz."&gmlid=".$hgml; 309 if ($showkey) {$url.="&showkey=j";} 329 echo "<br>".DsKy($bartkey, 'Buchungsart'); 330 $url="alkisgsnw.php?gkz=".$gkz."&gmlid=".$hgml.LnkStf(); 310 331 if ($jsfenster) {$url="javascript:imFenster(\"".$url."\")";} 311 332 echo "\n\t\t\t\t<a href='".$url."' title='GrundstÃŒcksnachweis: ".$bart."'>Buchung" 312 ." <img src='ico/Grundstueck_Link.png' width='16' height='16' alt=''>" 313 ."</a>"; 333 ." <img src='ico/Grundstueck_Link.png' width='16' height='16' alt=''></a>"; 314 334 } 315 335 echo "\n\t\t\t</p>" 316 ."\n\t\t</td>" // 4336 ."\n\t\t</td>" 317 337 ."\n\t</tr>"; 318 338 if ($eig === "j") { 319 if ($jsfenster) {$lnkclass = "imFenster";} else {$lnkclass = "";} 320 $n = eigentuemer($gbgml, true, $lnkclass); // mit Adresse 339 $n = eigentuemer($gbgml, true, $jsfenster); // mit Adresse 321 340 } 322 341 } 323 342 } 324 343 pg_free_result($resbs); 325 326 //if ($dbg > 1) {echo "\n<p class='dbg'>Ende function buchung_anzg(), Return = ". $gezeigt ."</p>";}327 328 344 return $gezeigt; // 1 wenn eine Buchung ausgegeben wurde 329 345 } 330 346 331 347 function ber_bs_anzg($gmls, $eig, $jsfenster, $gml_fs, $gsanfrd) { 332 333 334 335 336 337 338 348 // In einem FS-Nachw. die berechtigten (herrschenden) Buchungsstellen anzeigen z.B. "Wohnungs-/Teileigentum". 349 // Parameter: 350 // $gmls: GML-ID der dienenden Buchungs-Stelle. Im ersten Durchlauf also, die BS auf der das FS gebucht ist. 351 // $eig: EigentÃŒmer ausgeben j/n 352 // $jsfenster: Javascript-Funktion zum Verlassen des Feature-Info-Fensters verwenden (bool) 353 // $gml_fs: GML-ID des FlurstÃŒcke (nur bei erstem Aufruf in einem FS-Nachweis notwendig) 354 // $gsanfrd: In einem GS-Nachw. die GML-ID der in de URL angeforderten Buchungsstelle (-> Hervorhebung) 339 355 global $dbg, $gezeigt; 340 356 … … 379 395 380 396 function kurz_namnr($lang) { 381 397 // Namensnummer kÃŒrzen. Nicht benötigte Stufen der Dezimalklassifikation abschneiden 382 398 $kurz=str_replace(".00","",$lang); // leere Stufen (nur am Ende) 383 399 $kurz=str_replace("0000","",$kurz); // ganz leer (am Anfang) 384 $kurz=ltrim($kurz, "0"); // f uehr. Nullen385 $kurz=str_replace(".0",".",$kurz); // f uehr. Null jeder Stufe400 $kurz=ltrim($kurz, "0"); // fÃŒhrd. Nullen 401 $kurz=str_replace(".0",".",$kurz); // fÃŒhrd. Null jeder Stufe 386 402 $kurz=rtrim($kurz); // Leerzeichen hinten 387 // echo "/n<p class='dbg'> lang='".$lang."'</p>/n<p class='dbg'> kurz='".$kurz."'</p>";388 403 return $kurz; 389 404 } 390 405 391 function bnw_bszeile_h() { 392 /* Bestandsnachweis - Buchungs-Stellen-Zeile ausgeben - herrschend. 393 Die GB-Daten hierzu stehen bereits im Kopf und bleiben in der Tab. leer */ 394 global $dbg, $gkz, $showkey, $trclass, $lfdnr, $bartkey, $bart, $bartstory, $anteil; 395 396 $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 397 echo "\n<tr class='".$trclass."'>" 398 ."\n\t<td id='bvnr".$bvnr."'><span class='wichtig'>".$bvnr."</span></td>" // Sprungmarke=BVNR auf dem GB-Blatt 399 ."\n\t<td class='dien' title='".$bartstory."'>"; 400 if ($showkey) {echo "<span class='key'>".$bartkey."</span> ";} 401 echo $bart."</td>" 402 ."\n\t<td class='dien'>".$anteil."</td>" 403 ."\n\t<td> </td>" 404 ."\n\t<td> </td>" 405 ."\n\t<td> </td>" 406 ."\n\t<td> </td>" 407 ."\n\t<td> </td>\n</tr>"; 408 } 409 410 function bnw_bszeile_d($bezkey, $beznam, $blatt, $blattartkey, $blattart, $lfdnran, $gbgml, $gml_bsan, $ebene, $und) { 411 /* Bestandsnachweis - Buchungsstellen-Zeile ausgeben - dienend 412 Eine Folge-Zeile fÃŒr eine dienende Buchung ausgeben. */ 413 global $gkz, $showkey, $trclass, $bartkey, $bart, $bartstory, $anteil; 414 415 $bvnr=str_pad($lfdnran, 4, "0", STR_PAD_LEFT); 416 $filler=str_repeat(" ", $ebene - 2); // 3 und 4 EinrÃŒcken 417 if ($und){$filler.="und ";}; // Unterscheidung Hierarchie (Ebene wechselt) von Liste (gleiche Ebene) 418 echo "\n<tr class='".$trclass."'>" 419 ."\n\t<td title='Ebene ".$ebene."'>".$filler."an</td>" 420 ."\n\t<td class='dien' title='".$bartstory."'>"; // Sp.2 Buchungsart 421 if ($showkey) {echo "<span class='key'>".$bartkey."</span> ";} 422 echo $bart."</td>" 423 ."\n\t<td class='dien'>".$anteil."</td>"; // Sp.3 Anteil 424 425 // Sp.4 GB-Bezirk 426 echo "\n\t<td class='dien' title='Grundbuch-Bezirk'>"; 427 if ($showkey) {echo "<span class='key'>".$bezkey."</span> ";} 428 echo htmlentities($beznam, ENT_QUOTES, "UTF-8") 429 ."</td>" 430 ."\n\t<td class='dien' title='".$blattart."'>".$blatt."</td>" // Sp.5 431 ."\n\t<td class='dien' title='Bestandsverzeichnis-Nummer'>".$bvnr."</td>" // Sp.6 432 ."\n\t<td class='dien'></td>"; 433 434 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; // Sp.8 Link 435 436 // Link Bestand Blatt 437 if ($showkey) {echo "<span class='key'>".$blattartkey."</span>";} // Blatt-Art 438 echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&gmlid=".$gbgml; 439 if ($showkey) {echo "&showkey=j";} 440 echo "#bvnr".$lfdnran."' title='Zum Grundbuchnachweis des dienenden Blattes'>".$blattart 441 ." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>"; 442 443 if ($bartkey < 2000){ 444 // Link Buchung BVNR nur fÃŒr GrundstÃŒck usw. 445 echo "<br>\n\t\t\t<a href='alkisgsnw.php?gkz=".$gkz."&gmlid=".$gml_bsan; 446 if ($showkey) {echo "&showkey=j";} 447 echo "' title='Grundstücksnachweis'>Buchung <img src='ico/Grundstueck_Link.png' width='16' height='16' alt=''></a>"; 448 } 449 450 echo "\n\t\t</p>" 451 ."\n\t</td>\n</tr>"; 452 } 453 454 function bnw_bsdaten($gml_h, $ebene) { 455 /* Bestandsnachweis - Buchungsstellen-Daten 456 "dienende" Buchungsstellen suchen. Miteigentumsanteil, Erbbaurecht usw. 457 Return: gml_id der dienenden Buchungsstelle wenn gefunden? Sonst Leerstring */ 458 global $dbg, $bartkey, $bart, $bartstory, $anteil; 459 460 // dann "dienende" Buchungsstellen 461 // sh=herrschend sd=dienend 462 // ax_buchungsstelle >zu> ax_buchungsstelle (des gleichen Blattes) 463 // ax_buchungsstelle >an> ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an) 464 // - "zu" kommt in der Praxis (NRW) nicht vor, wird hier nicht berÃŒcksichtigt 465 466 if ($ebene > 5) {echo "\n<p class='err'>Ungewöhnlich tiefe Schachtelung ".$ebene." der Buchungs-Stellen.</p>";} 467 468 $sql ="SELECT sd.gml_id, sd.buchungsart, sd.zaehler, sd.nenner, sd.laufendenummer AS lfd, sd.beschreibungdesumfangsderbuchung AS udb, " 469 ."sd.nummerimaufteilungsplan AS nrap, sd.beschreibungdessondereigentums AS sond, " 470 ."wb.beschreibung AS bart, wb.dokumentation, " 471 ."b.gml_id as gbgml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, b.blattart, " 472 ."bb.beschreibung AS blattartv, z.bezeichnung AS beznam " 473 ."FROM ax_buchungsstelle sh " 474 ."JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) " 475 ."JOIN ax_buchungsblatt b ON b.gml_id=sd.istbestandteilvon " 476 ."LEFT JOIN ax_buchungsart_buchungsstelle wb ON sd.buchungsart = wb.wert " 477 ."LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk ".UnqKatAmt("b","z") 478 ."LEFT JOIN ax_blattart_buchungsblatt bb ON b.blattart = bb.wert " 479 ."WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL " 480 ."ORDER BY sd.laufendenummer;"; 481 $v=array($gml_h); // gml_id "herrschende" B-Stelle 482 $resan=pg_prepare("", $sql); 483 $resan=pg_execute("", $v); 484 if (!$resan) { 485 echo "\n<p class='err'>Fehler bei 'dienende Buchungsstelle'.</p>"; 486 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gml_bs."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 487 } 488 $zeianz=pg_num_rows($resan); // Zeilen-Anzahl = Returnwert 489 //if ($dbg > 0) {echo "\n<p class='dbg'>Auf Ebene ".$ebene.": Anzahl diennende Buchungs-Stellen = ".$zeianz.".</p>";} 490 $und = false; // mehrfaches "Recht an" auf gleicher Ebene 491 while($row= pg_fetch_assoc($resan)) { 492 $gml_bsan=$row["gml_id"]; // id der dien. BS 493 $blatt=ltrim($row["blatt"], "0"); 494 495 // als Global-Var zur Sub-Function: 496 $bartkey=$row["buchungsart"]; 497 $bart=$row["bart"]; // Buchungsart, entschlÃŒsselt 498 $bartstory=htmlentities($row["dokumentation"], ENT_QUOTES, "UTF-8"); 499 if ($row["zaehler"] == "") {$anteil = "";} 500 else {$anteil = $row["zaehler"]."/".$row["nenner"];} 501 502 // Zeile ausgeben Buchungsstelle dienend 503 bnw_bszeile_d($row["bezirk"], $row["beznam"], $blatt, $row["blattart"], $row["blattartv"], $row["lfd"], $row["gbgml"], $gml_bsan, $ebene, $und); 504 $und = true; 505 if ($row["nrap"] != "") { // Nr im Auft.Plan 506 echo "\n<tr>\n\t<td colspan=3></td><td class='nrap' colspan=4>Nummer <span class='wichtig'>".$row["nrap"]."</span> im Aufteilungsplan.</td><td></td>\n</tr>"; 507 } 508 if ($row["sond"] != "") { // Sondereigentumsbeschreibung 509 echo "\n<tr>\n\t<td></td><td class='sond' colspan=6 title='Sondereigentums-Beschreibung'>Verbunden mit dem Sondereigentum an: ".$row["sond"]."</td><td></td>\n</tr>"; 510 } 511 512 // Rekursiver Aufruf der gleichen Function, weitere Ebene dienend? 513 $tiefer = bnw_bsdaten($gml_bsan, ($ebene + 1)); 514 If ($tiefer == 0) { // Wenn nicht, dann kann es FlurstÃŒcke dazu geben 515 $fscnt= bnw_fsdaten($gml_bsan, false); // FlurstÃŒcksdaten 516 } 517 } 518 pg_free_result($resan); 519 return $zeianz; 520 } 521 522 function bnw_fsdaten($gml_bs, $mit_buchung_link) { 523 /* Bestandsnachweis - FlurstÃŒcksdaten 524 Die Tabellenzeilen mit den FlurstÃŒcksdaten zu EINER Buchungsstelle im Bestandsnachweis ausgeben. 525 Die Funktion wird entweder aufgerufen fÃŒr die Buchungen direkt auf dem GB (Normalfall) 526 oder bei Erbbaurecht fÃŒr die mit "an" verknÃŒpften Buchungsstellen der untersten Ebene (dienende Buchung). 527 Der Tabellenkopf wird im aufrufenden Programm ausgegeben. 528 Return: Anzahl der ausgegebenen FlurstÃŒcke */ 529 global $dbg, $gkz, $showkey, $filtkreis, $filtgem, $trclass, $katAmtMix, $lfdnr, $altlfdnr, $bartkey, $bart, $bartstory, $anteil; 530 531 $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche " 532 ."FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 533 ."WHERE f.endet IS NULL AND g.endet IS NULL AND f.istgebucht = $1 "; 534 if ($filtgem === '') { // ungefiltert 535 $v=array($gml_bs); 536 } else { 537 $sql.="AND f.gemeindezugehoerigkeit_kreis = $2 AND f.gemeindezugehoerigkeit_gemeinde = $3 "; // ZustÀndiges Gebiet 538 $v=array($gml_bs, $filtkreis, $filtgem); 539 } 540 $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 541 $resf = pg_prepare("", $sql); 542 $resf = pg_execute("", $v); 543 if (!$resf) {echo "\n<p class='err'>Fehler bei Flurstück</p>";} 544 $zeianz=pg_num_rows($resf); 545 while($rowf = pg_fetch_assoc($resf)) { 546 $fskenn=$rowf["zaehler"]; 547 if ($rowf["nenner"] != "") { // Bruch 548 $fskenn.="/".$rowf["nenner"]; 549 } 550 $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m²"; 551 552 echo "\n<tr class='".$trclass."'>"; // eine Zeile je Flurstueck 553 554 // Sp. 1-3 der Tab. Daten aus Buchungsstelle, nicht aus FS 555 if($lfdnr === $altlfdnr) { // gleiches GrundstÃŒck, leer lassen 556 echo "\n\t<td> </td>" 557 ."\n\t<td> </td>" 558 ."\n\t<td> </td>"; 559 } else { // Sprungmarke, BVNR 560 $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 561 echo "\n\t<td id='bvnr".$bvnr."'>"; // Sprungmarke 562 echo "<span class='wichtig'>".$bvnr."</span>" 563 ."\n\t</td>"; 564 echo "\n\t<td title ='".$bartstory."'>"; // Buchungsart 565 if ($showkey) {echo "<span class='key'>".$bartkey."</span> ";} 566 echo $bart; 567 echo "</td>" 568 ."\n\t<td> </td>"; // Anteil 569 $altlfdnr=$lfdnr; 570 } 571 572 // Sp. 4-7 aus FlurstÃŒck 573 echo "\n\t<td>"; 574 if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";} 575 echo $rowf["bezeichnung"]."</td>" 576 ."\n\t<td>".$rowf["flurnummer"]."</td>\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span></td>" 577 ."\n\t<td class='fla'>".$flae."</td>"; 578 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 579 580 // Buchung BVNR 581 If ($mit_buchung_link == true) { // nur bei GrundstÃŒck 582 echo "\n\t\t\t<a href='alkisgsnw.php?gkz=".$gkz."&gmlid=".$gml_bs; 583 if ($showkey) {echo "&showkey=j";} 584 echo "' title='Grundstücksnachweis'>Buchung <img src='ico/Grundstueck_Link.png' width='16' height='16' alt=''></a> "; 585 $mit_buchung_link = false; // nur in erster Zeile 586 } 587 // Flurstk. 588 echo "\n\t\t\t<a href='alkisfsnw.php?gkz=".$gkz."&gmlid=".$rowf["gml_id"]."&eig=n"; 589 if ($showkey) {echo "&showkey=j";} 590 echo "' title='Flurstücksnachweis'>Flurstück " 591 ."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>" 592 ."\n\t\t</p>\n\t</td>\n</tr>"; 593 } 594 pg_free_result($resf); 595 return $zeianz; 596 } 597 598 function eigentuemer($gmlid, $mitadresse, $lnkclass) { 599 // Tabelle mit Eigentuemerdaten zu einem Grundbuchblatt ausgeben 600 // Sp.1="EigentÃŒmer" Sp.2=NamNr, Sp.3=Name/Adresse, Sp.4=Link 601 // Parameter: 602 // $gmlid = ID GB-Blattes 603 // $mitadresse = Option (true/false) ob die Adresszeile ausgegeben werden soll 604 // Return = Anzahl Namensnummern 605 606 // Schleife 1: N a m e n s n u m m e r 607 // Beziehung: ax_namensnummer >istBestandteilVon> ax_buchungsblatt 406 function eigentuemer($gmlid, $mitadresse, $jsfenster) { 407 /* Tabelle mit EigentÃŒmerdaten zu einem Grundbuchblatt ausgeben 408 Sp.1="EigentÃŒmer" Sp.2=NamNr, Sp.3=Name/Adresse, Sp.4=Link 409 Parameter: 410 $gmlid: ID GB-Blatt 411 $mitadresse: Option (t/f) ob die Adresszeile ausgegeben werden soll 412 $jsfenster: Beim Link mit Javascript ein neues Fenster öffnen 413 Return = Anzahl Namensnummern */ 608 414 global $dbg, $gkz, $showkey; 609 610 if ($lnkclass == "") { 415 if ($jsfenster) { // beim Link aus iFrame ausbrechen 416 $lnkvor = "javascript:imFenster(\""; 417 $lnknach = "\")"; 418 } else { 611 419 $lnkvor = ""; 612 420 $lnknach = ""; 613 } else { // Link ÃŒber Java-Class "imFenster" aus alkisinlayausk.php 614 $lnkvor = "javascript:".$lnkclass."(\""; 615 $lnknach = "\")"; 616 } 617 618 $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass, n.benennt, wn.beschreibung AS adrv, we.beschreibung AS eiartv " 421 } 422 423 // N a m e n s n u m m e r 424 // ax_namensnummer >istBestandteilVon> ax_buchungsblatt 425 $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass, n.benennt, " 426 ."wn.beschreibung AS adrv, we.beschreibung AS eiartv, " 427 ."p.gml_id AS gmlpers, p.nachnameoderfirma, p.vorname, p.geburtsname, to_char(cast(p.geburtsdatum AS date),'DD.MM.YYYY') AS geburtsdatum, p.namensbestandteil, p.akademischergrad " 619 428 ."FROM ax_namensnummer n " 620 429 ."LEFT JOIN ax_artderrechtsgemeinschaft_namensnummer wn ON n.artderrechtsgemeinschaft = wn.wert " 621 ."LEFT JOIN ax_eigentuemerart_namensnummer we ON n.eigentuemerart = we.wert " 622 ."WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;"; 623 // VerknÃŒpfungsfeld "benennt" ist leer bei "Beschrieb der Rechtsgemeinschaft". 430 ."LEFT JOIN ax_eigentuemerart_namensnummer we ON n.eigentuemerart = we.wert " 431 ."LEFT JOIN ax_person p ON p.gml_id = n.benennt " 432 ."WHERE n.istbestandteilvon = $1 AND n.endet IS NULL AND p.endet IS NULL " 433 ."ORDER BY n.laufendenummernachdin1421;"; 434 // "benennt" ist leer bei "Beschrieb der Rechtsgemeinschaft". 624 435 625 436 $v = array($gmlid); // GB-Blatt 626 437 $resn = pg_prepare("", $sqln); 627 438 $resn = pg_execute("", $v); 628 629 439 if (!$resn) { 630 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; // kein Fehler bei Blattarten > 1000631 //if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sqln )."</p>";}440 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; 441 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sqln )."</p>";} 632 442 } 633 443 … … 637 447 $namnum=kurz_namnr($rown["lfd"]); 638 448 $rechtsg=$rown["adr"]; 449 $beschr=htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8"); 450 $adrv=htmlentities($rown["adrv"], ENT_QUOTES, "UTF-8"); 639 451 $eiartkey=$rown["eigentuemerart"]; // Key 640 452 $eiart=$rown["eiartv"]; // Value 641 // if ($dbg > 1) {echo "\n<p class='dbg'>Eigentü:merart = '".$eiartkey."' = '".$eiart."'</p>";} 453 $anlass=$rown["anlass"]; // ??? 454 $gmlpers=$rown["gmlpers"]; // leer bei RechtsverhÀltnis 455 $akadem=$rown["akademischergrad"]; 456 $nachnam=$rown["nachnameoderfirma"]; 457 $vorname=$rown["vorname"]; 458 $nbest=$rown["namensbestandteil"]; 459 $gebdat=$rown["geburtsdatum"]; 460 $gebnam=$rown["geburtsname"]; 461 $zaehler=str_replace(".", ",", $rown["zaehler"]); // Dezimal-KOMMA wenn dem Notar der Bruch nicht reicht 462 $nenner=str_replace(".", ",", $rown["nenner"]); 642 463 643 464 echo "\n\t<tr>"; 644 if($n === 0) { // erste EigentÃŒmer-Zeile zu einer Buchung 645 echo "\n\t\t<td class='ll'><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Eigentümer:</td>"; // 1 646 } else { // Folgezeile 647 echo "\n\t\t<td class='ll'> </td>"; // 1 648 } 649 650 if ($rechtsg != "" ) { // Erbengemeinschaft usw. 651 echo "\n\t\t<td colspan='2'>"; // 2-3 652 if ($rechtsg == 9999) { // sonstiges 653 echo "\n\t\t\t<p class='zus' title='Beschrieb der Rechtsgemeinschaft'>".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")."</p>"; 654 } else { 655 echo "\n\t\t\t<p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities($rown["adrv"], ENT_QUOTES, "UTF-8")."</p>"; 465 if($n === 0) { // 1. Zeile zum GB 466 echo "\n\t\t<td class='ll'><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Eigentümer:</td>"; // 1 467 } else { // Folgezeile 468 echo "\n\t\t<td class='ll'> </td>"; 469 } 470 if ($rechtsg != "" ) { // Erbengemeinschaft usw. 471 echo "\n\t\t<td colspan='2'>"; 472 if ($rechtsg == 9999) { // sonstiges 473 echo "\n\t\t\t<p class='zus' title='Beschrieb der Rechtsgemeinschaft'>".$beschr."</p>"; 474 } else { 475 echo "\n\t\t\t<p class='zus' title='Art der Rechtsgemeinschaft'>".$adrv."</p>"; 476 } 477 } else { // Namensnummer 478 echo "\n\t\t<td class='nanu' title='Namens-Nummer'>\n\t\t\t<p>".$namnum." </p>\n\t\t</td>" 479 . "\n\t\t<td>"; 480 } 481 if ($anlass > 0 ) {echo "<p>Anlass=".$anlass."</p>";} 482 // Andere Namensnummern? Relation: ax_namensnummer >bestehtAusRechtsverhaeltnissenZu> ax_namensnummer 483 // Die Relation 'Namensnummer' besteht aus RechtsverhÀltnissen zu 'Namensnummer' sagt aus, dass mehrere Namensnummern zu einer Rechtsgemeinschaft gehören können. 484 // Die Rechtsgemeinschaft selbst steht unter einer eigenen AX_Namensnummer, die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt. 485 486 $diePerson=""; 487 if ($akadem != "") {$diePerson=$akadem." ";} 488 $diePerson.=$nachnam; 489 if ($vorname != "") {$diePerson.=", ".$vorname;} 490 if ($nbest != "") {$diePerson.=". ".$nbest;} 491 if ($gebdat != "") {$diePerson.=", geb. ".$gebdat;} 492 if ($gebnam != "") {$diePerson.=", geb. ".$gebnam;} 493 $diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); 494 495 if ($eiartkey == "") {$eiart="Eigentümer" ;} // Default 496 echo "\n\t\t\t<p class='geig' title='Eigentümerart: ".$eiart."'>".$diePerson."</p>\n\t\t</td>" 497 ."\n\t\t<td>\n\t\t\t<p class='nwlink noprint'>".DsKy($eiartkey, 'Eigentümerart-*') 498 ."\n\t\t\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&gmlid=".$gmlpers.LnkStf() 499 .$lnknach."' title='vollständiger Name und Adresse eines Eigentümers'>".$eiart 500 ." \n\t\t\t\t\t<img src='ico/Eigentuemer.png' width='16' height='16' alt=''>\n\t\t\t\t</a>\n\t\t\t</p>" 501 ."\n\t\t</td>\n\t</tr>"; 502 503 if ($mitadresse) { // optional 504 // A d r e s s e zur Person 505 $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland " 506 ."FROM ax_anschrift a JOIN ax_person p ON a.gml_id=ANY(p.hat) " 507 ."WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL " 508 ."ORDER BY a.beginnt DESC LIMIT 2;"; 509 $v = array($gmlpers); 510 $resa = pg_prepare("", $sqla); 511 $resa = pg_execute("", $v); 512 if (!$resa) { 513 echo "\n\t<p class='err'>Fehler bei Adressen</p>"; 514 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqla)."</p>";} 515 } 516 $j=0; 517 while($rowa = pg_fetch_assoc($resa)) { 518 $j++; 519 if ($j === 1) { // erste ("jÃŒngste") Adresse anzeigen 520 $gmla=$rowa["gml_id"]; 521 $plz=$rowa["plz"]; // integer 522 if($plz === 0) { 523 $plz=""; 524 } else { 525 $plz=str_pad($plz, 5, "0", STR_PAD_LEFT); 526 } 527 $ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8"); 528 $str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8"); 529 $hsnr=$rowa["hausnummer"]; 530 $land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8"); 531 532 echo "\n\t<tr>\n\t\t<td class='ll'> </td>\n\t\t<td> </td>" 533 ."\n\t\t<td><p class='gadr'>"; 534 if ($str.$hsnr != "") {echo $str." ".$hsnr."<br>";} 535 if ($plz.$ort != "") {echo $plz." ".$ort;} 536 if ($land != "" and $land != "DEUTSCHLAND") {echo ", ".$land;} 537 echo "</p></td>" 538 ."\n\t\t<td> </td>\n\t</tr>"; 539 } else { // manchmal mehrere Angaben 540 echo "\n\t<tr>\n\t\t<td class='ll'> </td>\n\t\t<td> </td>" 541 ."\n\t\t<td><p class='dbg' title='Siehe Auskunft zur Person'>weitere Adresse</p></td>" 542 ."\n\t\t<td> </td>\n\t</tr>"; 656 543 } 657 } else { // Namensnummer 658 echo "\n\t\t<td class='nanu' title='Namens-Nummer'>\n\t\t\t<p>".$namnum." </p>\n\t\t</td>" // 2 659 . "\n\t\t<td>"; // 3 660 661 } 662 //if ($rown["anlass"] > 0 ) {echo "<p>Anlass=".$rown["anlass"]."</p>";} 663 664 // Andere Namensnummern? Relation: ax_namensnummer >bestehtAusRechtsverhaeltnissenZu> ax_namensnummer 665 // Die Relation 'Namensnummer' besteht aus RechtsverhÀltnissen zu 'Namensnummer' sagt aus, dass mehrere Namensnummern zu einer Rechtsgemeinschaft gehören können. 666 // Die Rechtsgemeinschaft selbst steht unter einer eigenen AX_Namensnummer, die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt. 667 668 // Schleife 2: P e r s o n 669 // Beziehung: ax_person <benennt< ax_namensnummer 670 $sqlp="SELECT nachnameoderfirma, vorname, geburtsname, to_char(cast(geburtsdatum AS date),'DD.MM.YYYY') AS geburtsdatum, namensbestandteil, akademischergrad " 671 ."FROM ax_person WHERE gml_id= $1 AND endet IS NULL;"; 672 $gmlpers=$rown["benennt"]; // leer bei RechtsverhÀltnis 673 $v = array($gmlpers); // gml_id von ax_person 674 $resp = pg_prepare("", $sqlp); 675 $resp = pg_execute("", $v); 676 if (!$resp) { 677 echo "\n\t<p class='err'>Fehler bei Person</p>"; 678 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqlp)."</p>";} 679 } 680 681 $i=0; // cnt Person 682 while($rowp = pg_fetch_assoc($resp)) { // Schleife weglassen: "benennt" ist KEIN Array! 683 $diePerson=""; //++ Anrede? 684 if ($rowp["akademischergrad"] != "") {$diePerson=$rowp["akademischergrad"]." ";} 685 $diePerson.=$rowp["nachnameoderfirma"]; 686 if ($rowp["vorname"] != "") {$diePerson.=", ".$rowp["vorname"];} 687 if ($rowp["namensbestandteil"] != "") {$diePerson.=". ".$rowp["namensbestandteil"];} 688 if ($rowp["geburtsdatum"] != "") {$diePerson.=", geb. ".$rowp["geburtsdatum"];} 689 if ($rowp["geburtsname"] != "") {$diePerson.=", geb. ".$rowp["geburtsname"];} 690 $diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute 691 692 echo "\n\t\t\t<p class='geig' title='Eigentümerart: ".$eiart."'>".$diePerson."</p>\n\t\t</td>"; // 3 - Person in Sp.3 hinter NamNum (Sp.2) 693 echo "\n\t\t<td>\n\t\t\t<p class='nwlink noprint'>"; // 4 694 if ($showkey AND $eiartkey != '') {echo "<span class='key' title='Eigentümerart'>(".$eiartkey.")</span> ";} 695 echo "\n\t\t\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&gmlid=".$gmlpers; 696 if ($showkey) {echo "&showkey=j";} 697 if ($eiartkey == "") {$eiart="Eigentümer" ;} // Default. Ersatz-Text, wenn nicht gefÃŒllt 698 echo $lnknach."' title='vollständiger Name und Adresse eines Eigentümers'>".$eiart 699 ." \n\t\t\t\t\t<img src='ico/Eigentuemer.png' width='16' height='16' alt=''>\n\t\t\t\t</a>\n\t\t\t</p>" 700 ."\n\t\t</td>" // 4 701 ."\n\t</tr>"; 702 703 if ($mitadresse) { 704 // Schleife 3: optional A d r e s s e zur Person 705 $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland " 706 ."FROM ax_anschrift a JOIN ax_person p ON a.gml_id=ANY(p.hat) WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL ORDER BY a.beginnt DESC LIMIT 2;"; 707 $v = array($gmlpers); 708 $resa = pg_prepare("", $sqla); 709 $resa = pg_execute("", $v); 710 if (!$resa) { 711 echo "\n\t<p class='err'>Fehler bei Adressen</p>"; 712 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqla)."</p>";} 713 } 714 $j=0; 715 while($rowa = pg_fetch_assoc($resa)) { 716 $j++; 717 if ($j === 1) { // erste ("jÃŒngste") Adresse anzeigen 718 $gmla=$rowa["gml_id"]; 719 $plz=$rowa["plz"]; // integer 720 if($plz === 0) { 721 $plz=""; 722 } else { 723 $plz=str_pad($plz, 5, "0", STR_PAD_LEFT); 724 } 725 $ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8"); 726 $str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8"); 727 $hsnr=$rowa["hausnummer"]; 728 $land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8"); 729 730 echo "\n\t<tr>" 731 ."\n\t\t<td class='ll'> </td>" // 1 732 ."\n\t\t<td> </td>" // 2 733 ."\n\t\t<td><p class='gadr'>"; // 3 734 if ($str.$hsnr != "") {echo $str." ".$hsnr."<br>";} 735 if ($plz.$ort != "") {echo $plz." ".$ort;} 736 if ($land != "" and $land != "DEUTSCHLAND") {echo ", ".$land;} 737 echo "</p></td>" // 3 738 ."\n\t\t<td> </td>\n\t</tr>"; // 4 739 } else { // manchmal doppelte Angaben 740 echo "\n\t<tr>" 741 ."\n\t\t<td class='ll'> </td>" // 1 742 ."\n\t\t<td> </td>" // 2 743 ."\n\t\t<td><p class='dbg' title='Siehe Auskunft zur Person'>weitere Adresse</p></td>" // 3 744 ."\n\t\t<td> </td>\n\t</tr>"; // 4 745 } 746 } // Ende Loop Adresse zur Person 747 pg_free_result($resa); 748 } 749 // 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG" 750 $i++; // cnt Person 751 752 $zaehler=$rown["zaehler"]; 753 if ($zaehler != "") { // Anteil als eigene Tab-Zeile 754 $zaehler=str_replace(".", ",", $zaehler); // Dezimal-KOMMA wenn dem Notar der Bruch nicht reicht 755 $nenner=str_replace(".", ",", $rown["nenner"]); 756 $comnt="Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (Grundstück oder Recht)."; 757 echo "\n\t<tr>" 758 ."\n\t\t<td class='ll'> </td>" // 1 759 ."\n\t\t<td> </td>" // 2 760 ."\n\t\t<td><p class='avh' title='".$comnt."'>".$zaehler."/".$nenner." Anteil</p></td>" // 3 761 ."\n\t\t<td> </td>\n\t</tr>"; // 4 762 } 763 } // End Loop Person 764 pg_free_result($resp); 765 766 if ($i === 0) { // KEINE Person. benennt ist leer. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler 544 } 545 pg_free_result($resa); 546 } // 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG" 547 548 if ($zaehler != "") { // Anteil als eigene Tab-Zeile 549 $comnt="Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (Grundstück oder Recht)."; 550 echo "\n\t<tr>\n\t\t<td class='ll'> </td>\n\t\t<td> </td>" 551 ."\n\t\t<td><p class='avh' title='".$comnt."'>".$zaehler."/".$nenner." Anteil</p></td>" 552 ."\n\t\t<td> </td>\n\t</tr>"; 553 } 554 if ($gmlpers == "") { // KEINE Person. benennt ist leer. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler 767 555 if ($dbg > 1) {echo "\n\t\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";} 768 556 if ($rechtsg !== '9999') { … … 771 559 echo "</td>\n\t\t<td> </td>\n\t</tr>"; 772 560 } 773 $n++; // cnt NamNum 774 } // End Loop NamNum 775 561 $n++; 562 } 776 563 pg_free_result($resn); 777 564 return $n; 778 565 } 779 566 780 function werteliste ($bez ,$sqlin) {781 // Eine oder mehrere EntschlÃŒsselungen in eine Zeile ausgeben.782 // Dient dazu, SchlÃŒssel-ARRAYs auflösen ohne die Zeile im JOIN mehrfach aufzulisten783 // Anwendung: FS-Nachweis BodenschÀtzung784 global $dbg;785 786 if ($bez === 'e') {$tabelle = 'ax_entstehungsartoderklimastufewasserverhaeltnisse_bodensc';}787 elseif ($bez === 's') {$tabelle = 'ax_sonstigeangaben_bodenschaetzung';}788 789 $sql="SELECT wert, beschreibung FROM ".$tabelle." WHERE wert IN (".$sqlin.") ORDER BY wert LIMIT $1 ;";790 $v = array('9');791 $res = pg_prepare("", $sql);792 $res = pg_execute("", $v);793 if (!$res) {794 echo "\n<p class='err'>Fehler bei Werteliste.</p>";795 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";}796 return;797 }798 $i=0;799 while($row = pg_fetch_assoc($res)) {800 echo " ".$row["beschreibung"];801 $i++;802 }803 pg_free_result($res);804 if ($i === 0) {805 echo "(kein Treffer)";806 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";}807 }808 return;809 }810 811 567 function fortfuehrungen($entsteh, $dbzeart, $dbzename) { 812 568 // Tabelle im Kopf von FlurstÃŒck und FS-Historie. 2 Z./Sp. Entstehung/FortfÃŒhrung 813 // Parameter: Die DB-Spalten "zeitpunktderentstehung" , "zeigtaufexternes_art" und "zeigtaufexternes_name"569 // Parameter: Die DB-Spalten "zeitpunktderentstehung"[], "zeigtaufexternes_art"[] und "zeigtaufexternes_name"[] 814 570 global $dbg, $showkey; 815 571 816 // if ($dbg > 2) {echo "<p class='dbg'>function fortfuehrungen<br>1: ".$dbzeart."<br>2: ".$dbzename."</p>";}817 818 572 echo "\n\t<table class='fsd'>" // FS-Daten 2 Spalten 819 ."\n\t\t<tr>\n\t\t\t<td>Entstehung</td>" 820 ."\n\t\t\t<td title='Zeitpunkt der Enstehung'>".$entsteh."</td>\n\t\t</tr>"; 821 echo "\n\t<tr>" 822 ."\n\t\t\t<td>"; 573 ."\n\t\t<tr>\n\t\t\t<td>Entstehung</td>" 574 ."\n\t\t\t<td title='Zeitpunkt der Enstehung'>".$entsteh."</td>\n\t\t</tr>"; 575 echo "\n\t<tr>\n\t\t\t<td>"; 823 576 $arrart=explode(",", trim($dbzeart, "{}")); 824 foreach($arrart AS $artval) { // Zeile fÃŒr jedes Element577 foreach($arrart AS $artval) { // Eine Zeile fÃŒr jedes Element von "zeigtaufexternes_art" 825 578 $artval=trim($artval, '"'); 826 // ibR: {"Entstehung des FlurstÃŒcks/5200","Letzte FortfÃŒhrung des FlurstÃŒcks/5300",urn:adv:fachdatenverbindung:AA_Antrag}827 // AED: {http://geoportal.kreis-herford.de/alkis/alkis.html#5200,http://geoportal.kreis-herford.de/alkis/alkis.html#5300,urn:adv:fachdatenverbindung:AA_Antrag}828 829 579 $artpos=strpos($artval, '#'); 830 580 if ($artpos > 0) { // AED 831 581 $artkey=substr($artval, $artpos + 1); 832 582 switch ($artkey) { // keine SchlÃŒsseltabelle? 833 case '5100': $arttxt="Grundstückshinweis (aus ALB-Historie)"; break; 834 case '5200': $arttxt="Entstehung des Flurstücks"; break; 835 case '5300': $arttxt="Letzte Fortführung des Flurstücks"; break; 836 default: $arttxt=$artval; 837 } 838 if ($showkey) {echo "<span class='key'><a target='_blank' href='".$artval."'>".$artkey."</a></span> ";} 583 case '5100': 584 $arttxt="Grundstückshinweis (aus ALB-Historie)"; 585 $artinfo=""; 586 break; 587 case '5200': 588 $arttxt="Entstehung des Flurstücks"; 589 $artinfo="'Entstehung des FlurstÃŒcks' enthÀlt das Jahr der Entstehung, die lfd. Nr. der FortfÃŒhrung und den SchlÃŒssel der FortfÃŒhrungsart zur manuellen Recherche in den Grundbuchakten."; 590 break; 591 case '5300': 592 $arttxt="Letzte Fortführung des Flurstücks"; 593 $artinfo="'Letzte FortfÃŒhrung' enthÀlt das Jahr der letzten FortfÃŒhrung, die lfd. Nr. der FortfÃŒhrung und den SchlÃŒssel der FortfÃŒhrungsart zur manuellen Recherche in den Grundbuchakten."; 594 break; 595 default: 596 $arttxt=$artval; 597 $artinfo=""; 598 } 599 if ($showkey) {echo "<span class='key'><a target='_blank' title='".htmlentities($artinfo, ENT_QUOTES, "UTF-8")."' href='".$artval."'>(".$artkey.")</a></span> ";} 839 600 echo $arttxt."<br>"; 840 601 } else { … … 843 604 $artkey=substr($artval, $artpos + 1); 844 605 $arttxt=substr($artval, 0, $artpos); 845 if ($showkey) {echo "<span class='key'>".$artkey."</span> ";} 846 echo $arttxt."<br>"; 847 } 848 } 849 } 850 echo "</td>" 851 ."\n\t\t\t<td title='Jahrgang / Fortführungsnummer - Fortführungsart'>"; 852 $arrname=explode(",", trim($dbzename, "{}")); 853 foreach($arrname AS $val) { 854 echo trim($val, '"')."<br>"; 855 } 856 echo "</td>" 857 ."\n\t\t</tr>" 858 ."\n\t</table>"; 859 } 860 861 function fskenn_dbformat ($fskennz) { 862 // Erzeugt, wenn notwendig, aus dem Bindetrich-getrennten FlurstÃŒckskennzeichen "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz" 863 // das ALKIS-DB-interne Format des FlurstÃŒckskennzeichens. 606 echo DsKy($artkey, 'Fortführungsart').$arttxt."<br>"; 607 } 608 } 609 } 610 echo "</td>\n\t\t\t<td title='Jahrgang / Fortführungsnummer - Fortführungsart'>"; 611 $arrname=explode(",", trim($dbzename, "{}")); // Eine Zeile fÃŒr jedes Element von "zeigtaufexternes_name" 612 foreach($arrname AS $val) {echo trim($val, '"')."<br>";} 613 echo "</td>\n\t\t</tr>\n\t</table>"; 614 } 615 616 function fskenn_dbformat($fskennz) { 617 // Erzeugt aus dem Bindetrich-getrennten FlurstÃŒckskennzeichen "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz" 618 // das ALKIS-DB-interne Format des FlurstÃŒckskennzeichens. 864 619 global $defland; 865 620 $arr=explode("-", $fskennz, 4); // zerlegen … … 875 630 } 876 631 $zflur=str_pad($arr[1], 3 , "0", STR_PAD_LEFT); // Flur-Nr 877 $zfsnr=trim($arr[2]); // FlurstÃŒck e-Nr632 $zfsnr=trim($arr[2]); // FlurstÃŒcks-Nr 878 633 $zn=explode("/", $zfsnr, 2); // Bruch? 879 634 $zzaehler=str_pad(trim($zn[0]), 5 , "0", STR_PAD_LEFT); … … 894 649 return $fskzdb; 895 650 } 896 897 651 ?>
Note: See TracChangeset
for help on using the changeset viewer.