Changeset 402 for trunk/info/info/alkisn/alkisfkt.php
- Timestamp:
- 04/23/18 15:33:39 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkisn/alkisfkt.php
r398 r402 14 14 2017-11-03 neue function werteliste() 15 15 2017-12-20 Default Anzeigewert "EigentÃŒmer" im Link fÃŒr leere EigentÃŒmerart, JÃŒngste Adresse zur Person verwenden. 16 2018-04-23 Berechtigte Buchungen im FS-Nachw. verbessern. Neue Spalte statt Ãberschriften fÃŒr "EigentÃŒmer" und "Berechtigte Buchungen". 17 18 ++ ToDo: 19 ++ Parameter $lnkclass in eigentuemer() und $jfenster in buchung_anzg() vereinheitlichen 16 20 */ 17 21 … … 21 25 // Den URL-Parameter "&showkey=j/n" umschalten lassen. 22 26 // $append wird angehaengt wenn gefuellt. Anwendung: &eig=j bei FS-NW, <yp=m/p/o bei Lage 23 global $gkz, $showkey, $hilfeurl, $auth ;27 global $gkz, $showkey, $hilfeurl, $auth, $debug; 24 28 25 29 // S c r e e n - Foot … … 38 42 echo "\n\t\t<td title='Konfiguration'>"; 39 43 $mylink ="\n\t\t\t<a class='keyswitch' href='".$link."gkz=".$gkz."&gmlid=".$gmlid.$append; 40 41 44 if ($showkey) { // Umschalten SchlÃŒssel ein/aus 42 45 echo $mylink."&showkey=n' title='Verschlüsselungen ausblenden'>Schlüssel aus</a>"; 43 46 } else { 44 47 echo $mylink."&showkey=j' title='Verschlüsselungen anzeigen'>Schlüssel ein</a>"; 48 } 49 // TemporÀr eine Ansicht ohne Entwicklungsumgebung 50 if ($debug > 0) { 51 echo " | ".$mylink."&nodebug=j' title='Debug-Ausgaben temporär abschalten'>Ansicht ohne Testausgaben</a>"; 45 52 } 46 53 echo "\n\t\t</td>"; … … 57 64 echo "\n<p class='onlyprint'><i>Mapbender-Benutzer: ".$customer."</i></p>"; 58 65 } 59 60 66 return 0; 61 67 } 62 68 63 function ber_bs_hinw($gmls, $gmlf) { 64 // Berechtigte Buchungs-Stellen - Hinweis. 65 // Unter dem Grundbuch-Link den Hinweis auf "berechtigte Buchungssstellen" anzeigen und einen Umschalter. 66 global $gkz, $debug, $showkey, $berbu, $eig; 69 function ber_bs_zaehl($gmls) { 70 // Berechtigte Buchungs-Stellen zaehlen. 67 71 68 72 // Buchungstelle dienend <(Recht)an< Buchungstelle herrschend 69 $sql ="SELECT count(sh.gml_id) AS anz, sh.buchungsart, a.v " 70 ."FROM ax_buchungsstelle sd JOIN ax_buchungsstelle sh ON sd.gml_id=ANY(sh.an) " 71 ."LEFT JOIN alkis_wertearten a ON sh.buchungsart=cast(a.k AS integer) " 72 ."WHERE sd.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND a.element='ax_buchungsstelle' and a.bezeichnung='buchungsart' " 73 ."GROUP BY sh.buchungsart, a.v;"; 74 73 $sql ="SELECT count(sh.gml_id) AS anz FROM ax_buchungsstelle sd JOIN ax_buchungsstelle sh ON sd.gml_id=ANY(sh.an) " 74 ."WHERE sd.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL;"; 75 75 $v = array($gmls); // GML dienende Buchungs-Stelle 76 76 $resan = pg_prepare("", $sql); 77 77 $resan = pg_execute("", $v); 78 if (!$resan) { 79 echo "\n<p class='err'>Fehler bei 'berechtigte Buchungsstellen'.</p>"; 80 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmls."'</p>";} 81 } 82 $zeile=0; // Vesrchiedene Arten 83 $cnt=0; // Summe der Buchugen 84 while($rowan = pg_fetch_array($resan)) { 85 $anz=$rowan["anz"]; 86 87 // Einleitung 88 if ($zeile == 0) { // vor. 1. Zeile 89 // Diese Hinweise sollen mit gedruckt werden. Also KEIN "noprint"! 90 echo "\n\t\t<br>\n\t\t<p class='nwlink' title='Andere Grundstücke mit Rechten an diesem.'>\n\t\t\tBerechtigte Buchungen "; 91 if ($berbu=="j") { // wechselndes Symbol 92 echo "<img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''>"; 93 } else { 94 echo "<img src='ico/Grundbuch.png' width='16' height='16' alt=''>"; 95 } 96 echo "\n\t\t\t<b>"; 97 } 98 99 // Eine Zeile je Buchungs-Typ 100 echo "<br>".$anz." ".htmlentities($rowan["v"], ENT_QUOTES, "UTF-8"); 101 if ($showkey) {echo " <span class='key'>(".$rowan["buchungsart"].")</span>";} 102 $zeile++; 103 $cnt = $cnt + $anz; 104 } // Ende Result 78 if (!$resan) {echo "\n<p class='err'>Fehler bei 'berechtigte Buchungsstellen zaehlen'.</p>";} 79 $rowan = pg_fetch_assoc($resan); 80 $anz=$rowan["anz"]; 105 81 pg_free_result($resan); 106 107 // Ergebnis 108 if ($zeile == 0) { // kein Schleifen-Durchlauf 109 echo "\n\t<p class='nwlink' title='Kein anderes Grundstück hat ein Recht an diesem.'>Keine berechtigte Buchung</p>"; 110 } else { // Schleife wurde durchlaufen, 111 echo "</b>\n\t\t</p>"; 112 113 // Umschalter nicht drucken 114 echo "\n\t\t<p class='nwlink noprint'>" 115 ."\n\t\t\t<a href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&gmlid=".$gmlf."&eig=".$eig; // GML FlurstÃŒck 116 if ($showkey) {echo "&showkey=j";} 117 // Der FS-Nachweis ruft sich selbst mit geaendertem Parameter auf. 118 if ($berbu=="j") { 119 echo "&berbu=n' title='ohne berechtigte Buchungen'>nicht Anzeigen"; // Position: Top 120 } else { 121 echo "&berbu=j#berbu' title='mit berechtigten Buchungen'>Anzeigen"; // Positionierung auf Marke #berbu 122 } 123 echo "</a>\n\t\t</p>"; 124 } 125 return $cnt; // Funktionswert = Anzahl der berechtigten Buchungen 126 } 127 128 function ber_bs_anz($gmls, $eig) { 129 // Berechtigte Buchungsstellen (+ BlÀtter, EigentÃŒmer) anzeigen innerhalb eines FS-Nachw. 130 // Im FS-Nachweis werden auch die berechtigten GrundbÃŒcher mit ihren EigentÃŒmern angezeigt. 131 // Also z.B. zu einem "fiktiven Blatt" auch die GrundbuÃŒcher mit dem "Wohnungs-/Teileigentum" 132 global $gkz, $debug, $showkey, $idanzeige; 133 134 // Herrschende (berechtigte) Buchungsstellen ausgeben - Beginn 135 // sd=Buchungstelle herrschend >(Recht)an> sd=Buchungstelle dienend >istBestandteilVon> BLATT -> Bezirk 136 $sql="SELECT sd.gml_id AS s_gml, " // Buchungs-Stelle dienend 137 ."sh.buchungsart, sh.laufendenummer as lfd, sh.zaehler, sh.nenner, sh.nummerimaufteilungsplan as nrpl, sh.beschreibungdessondereigentums as sond, " // Buchungs-Stelle herrschend 138 ."b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.v AS bart, w.v AS blattartv " 139 ."FROM ax_buchungsstelle sd " 140 ."JOIN ax_buchungsstelle sh ON sd.gml_id=ANY(sh.an) " 82 return $anz; // Funktionswert = Anzahl der berechtigten Buchungen 83 } 84 85 function buchung_anzg($gmlbs, $eig, $jsfenster, $gml_fs) { 86 // In einem FS-Nachw. EINE Buchungsstelle anzeigen. 87 // Parameter: 88 // $gmlbs: GML-ID der anzuzeigenden Buchungs-Stelle 89 // $eig: EigentÃŒmer ausgeben j/n 90 // $jsfenster: Javascript-Funktion zum Verlassen des Feature-Info-Fensters verwenden (bool) 91 // $gml_fs: GML-ID des FlurstÃŒcke (nur bei erstem Aufruf in einem FS-Nachweis notwendig) 92 global $gkz, $debug, $showkey, $bartgrp, $barttypgrp, $stufe; 93 94 $sqlbs="SELECT sh.gml_id AS hgml, sh.buchungsart, sh.laufendenummer as lfd, sh.zaehler, sh.nenner, sh.nummerimaufteilungsplan as nrpl, sh.beschreibungdessondereigentums as sond, " // Buchungs-Stelle herrschend 95 ."b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.v AS bart, a.d AS barttitle, w.v AS blattartv " 96 ."FROM ax_buchungsstelle sh " 141 97 ."JOIN ax_buchungsblatt b ON b.gml_id=sh.istbestandteilvon " 142 98 ."LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk " 143 ."LEFT JOIN alkis_wertearten a ON sh.buchungsart=cast(a.k AS integer) AND a.element='ax_buchungsstelle' and a.bezeichnung='buchungsart' " // entschlÃŒsseln Buchungsart 144 ."LEFT JOIN alkis_wertearten w ON b.blattart=w.k AND w.element='ax_buchungsblatt' and w.bezeichnung='blattart' " // entschlÃŒsseln Blatt-Art 145 ."WHERE sd.gml_id= $1 AND sd.endet IS NULL AND sh.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL " 146 ."ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 147 148 $v = array($gmls); // id dienende Buchungsstelle 99 ."LEFT JOIN alkis_wertearten a ON sh.buchungsart=cast(a.k AS integer) AND a.element='ax_buchungsstelle' and a.bezeichnung='buchungsart' " // entschl. Buchungsart 100 ."LEFT JOIN alkis_wertearten w ON b.blattart=w.k AND w.element='ax_buchungsblatt' and w.bezeichnung='blattart' " // entschl. Blatt-Art 101 ."WHERE sh.gml_id= $1 AND sh.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL;"; 102 103 $v = array($gmlbs); // ID dienende Buchungs-Stelle 104 $resbs = pg_prepare("", $sqlbs); 105 $resbs = pg_execute("", $v); 106 if (!$resbs) { 107 echo "\n<p class='err'>Fehler bei 'Buchungsstelle ausgeben'.</p>"; 108 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sqlbs, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlbs."'</p>";} 109 } 110 $gezeigt=false; // Funktionswert 111 if ($rowbs = pg_fetch_assoc($resbs)) { // ein Treffer 112 $blattkeyber=$rowbs["blattart"]; // Schluessel von Blatt-Art des GB 113 if ($blattkeyber != '5000' or $debug > 1) { // "Fiktives Blatt" nur bei Entwicklung anzeigen 114 $gezeigt=true; // Funktionswert 115 $hgml=$rowbs["hgml"]; // GML-ID der (herrschenden) BuchungsStelle 116 $bartkey=$rowbs["buchungsart"]; // Buchungsart SchlÃŒssel 117 $beznam=$rowbs["bezeichnung"]; // Bezirk 118 $blattartber=$rowbs["blattartv"]; // Wert von Blatt-Art des GB 119 $nrpl=$rowbs["nrpl"]; // Nr im Auft.plan 120 $sond=$rowbs["sond"]; // Beschr. d.Sondereigentums 121 $gbgml=$rowbs["g_gml"]; // GML-ID des Grundbuch-Blattes 122 $blatt=ltrim($rowbs["blatt"], "0"); 123 $lfd=ltrim($rowbs["lfd"], "0"); 124 if ($bartkey != $bartgrp) { // Wechsel der Buchungsart 125 $bart=$rowbs["bart"]; // Buchungsart Text 126 $barttitle=$rowbs["barttitle"]; // Buchungsart ErklÀrung 127 switch (true) { // Die Buchungsart einem Typ (Gruppierung) zuweisen 128 case ($bartkey <= 1999): $barttyp = "E"; break; // Eigentum/GrundstÃŒck 129 case ($bartkey >= 2000): $barttyp = "R"; break; // GrundstÃŒcksgleiches Recht, z.B. 2101 "Erbbaurecht" 130 default: $barttyp = "E"; break; 131 } 132 if ($barttypgrp != $barttyp) { // Wenn der Typ wechselt, neue Ãberschrift in Tabelle 133 switch ($barttyp) { // Text der Ãberschrift 134 case "E": 135 if ($eig == 'j') {$h3txt = "Buchung und Eigentum";} 136 else {$h3txt = "Buchung";} 137 break; 138 case "R": $h3txt = "Grundstücksgleiche Rechte"; break; 139 } 140 if ($barttypgrp == "" and $gml_fs != "") { // die erste Ãberschrift mit ID und Umschalter 141 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 142 echo "\n\t\t<td>\n\t\t\t<p class='nwlink noprint'>" // 4 143 ."\n\t\t\t\t<a href='".$_SERVER['PHP_SELF']. "?gkz=".$gkz."&gmlid=".$gml_fs; 144 if ($showkey) {echo "&showkey=j";} 145 if ($eig=="j") { // Umschalter: FS-Nachweis ruft sich selbst mit geaendertem Parameter auf. Positionierung auf Marke "#gb" 146 echo "&eig=n#gb' title='Umschalter: Flurstücksnachweis'>ohne Eigentümer</a>"; 147 } else { 148 echo "&eig=j#gb' title='Umschalter: Flurstücks- und Eigentümernachweis'>mit Eigentümer " 149 ."<img src='ico/EigentuemerGBzeile.png' width='16' height='16' alt=''></a>"; 150 } 151 echo "\n\t\t\t</p>\n\t\t</td>"; 152 } else { 153 echo "\n\t<tr>\n\t\t<td colspan='3'>\n\t\t\t<h3>".$h3txt."</h3>\n\t\t</td>\n\t\t<td> </td>"; // 1-4 154 } 155 echo "\n\t</tr>"; 156 $barttypgrp = $barttyp; 157 } 158 159 // +++ mehr Abstand oben zur Zeile in .css, oder farbig hinterlegen? 160 echo "\n\t<tr>" // Buchungsart als Zwischenzeile 161 ."\n\t\t<td class='ll'><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Buchungsart:</td>" // 1 162 ."\n\t\t<td colspan='2' title='".$barttitle."'>"; // 2-3 163 if ($showkey) {echo "<span class='key'>(".$bartkey.")</span> ";} 164 echo "<span class='wichtig'>".$bart."</span>" 165 ."</td>" 166 ."\n\t\t<td></td>" // 4 167 ."\n\t</tr>"; 168 $bartgrp=$bartkey; // Gruppe merken 169 } // Ende Wechsel der Buchungsart 170 171 echo "\n\t<tr>" // Tabelle mit 4 Spalten fÃŒr Buchung und EigentÃŒmer 172 ."\n\t\t<td class='ll'><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Buchung:"; // 1 173 if ($showkey and $debug > 2) {echo "<br><span class='key'>Stufe ".$stufe."<br>".$hgml."</span> ";} 174 echo "</td>\n\t\t<td colspan='2'>"; // 2-3 175 176 // innere Tabelle: Rahmen mit GB-Kennz. 177 if ($blattkeyber == 1000) { 178 echo "\n\t\t\t<table class='kennzgb' title='Bestandskennzeichen'>"; 179 } else { 180 echo "\n\t\t\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted 181 } 182 echo "\n\t\t\t<tr>" 183 ."\n\t\t\t\t<td class='head'>Bezirk</td>" 184 ."\n\t\t\t\t<td class='head'>"; 185 if ($showkey) {echo "<span class='key'>".$blattkeyber."</span> ";} 186 echo $blattartber."</td>" 187 ."\n\t\t\t\t<td class='head'>Lfd-Nr</td>" 188 ."\n\t\t\t</tr>"; 189 echo "\n\t\t\t<tr>" 190 ."\n\t\t\t\t<td title='Grundbuchbezirk'>"; 191 if ($showkey) {echo "<span class='key'>".$rowbs["bezirk"]."</span><br>";} 192 echo $beznam."</td>" 193 ."\n\t\t\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$blatt."</span></td>" 194 ."\n\t\t\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundstück)'>".$lfd."</td>" 195 ."\n\t\t\t</tr>" 196 ."\n\t\t\t</table>"; 197 198 if ($rowbs["zaehler"] <> "") { 199 echo "\n\t\t\t<p class='ant'>".$rowbs["zaehler"]."/".$rowbs["nenner"]." Anteil am Flurstück</p>"; 200 } 201 if ($nrpl != "") { 202 echo "\n\t\t\t<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$nrpl."</span> im Aufteilungsplan.</p>"; 203 } 204 if ($sond != "") { 205 echo "\n\t\t\t<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum: ".$sond."</p>"; 206 } 207 echo "\n\t\t</td>"; // 2-3 208 209 echo "\n\t\t<td>"; // 4 210 echo "\n\t\t\t<p class='nwlink noprint'>"; 211 if ($showkey) {echo "<span class='key'>".$blattkeyber."</span> ";} 212 $url="alkisbestnw.php?gkz=".$gkz."&gmlid=".$gbgml; 213 if ($showkey) {$url.="&showkey=j";} 214 if ($jsfenster) {$url="javascript:imFenster(\"".$url."\")";} // Sonderfall "Inlay" aus Feature-Info 215 echo "\n\t\t\t\t<a href='".$url."' title='Grundbuchnachweis mit Eigentümerangabe'>".$blattartber 216 ." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>" 217 ."</a>"; 218 // if ($showkey and $debug > 2) {echo "<br><span class='key'>GML-ID = ".$gbgml."</span> ";} 219 echo "\n\t\t\t</p>" 220 ."\n\t\t</td>" // 4 221 ."\n\t</tr>"; 222 if ($eig == "j") { 223 if ($jsfenster) {$lnkclass = "imFenster";} else {$lnkclass = "";} 224 $n = eigentuemer($gbgml, true, $lnkclass); // mit Adresse 225 } 226 } 227 } 228 pg_free_result($resbs); 229 return $gezeigt; // true wenn eine Buchung ausgegeben wurde 230 } 231 232 function ber_bs_anzg($gmls, $eig, $gml_fs) { 233 // In einem FS-Nachw. die berechtigten (herrschenden) Buchungsstellen anzeigen z.B. "Wohnungs-/Teileigentum". 234 // Parameter: 235 // $gmls: GML-ID der dienenden Buchungs-Stelle. Im ersten Durchlauf also, die BS auf der das FS gebucht ist. 236 // $eig: EigentÃŒmer ausgeben j/n 237 global $debug, $stufe; 238 239 // sh=Buchungstelle herrschend >(Recht)an> sd=Buchungstelle dienend >istBestandteilVon> BLATT -> Bezirk 240 $sql="SELECT sh.gml_id AS hgml, sh.buchungsart, sh.laufendenummer as lfd, sh.zaehler, sh.nenner, sh.nummerimaufteilungsplan as nrpl, sh.beschreibungdessondereigentums as sond, " 241 ."b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart " 242 ."FROM ax_buchungsstelle sh JOIN ax_buchungsblatt b ON b.gml_id=sh.istbestandteilvon " 243 ."WHERE $1 = ANY(sh.an) AND sh.endet IS NULL AND b.endet IS NULL " 244 ."ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer;"; 245 246 $v = array($gmls); // ID dienende BuchungsStelle 149 247 $resber = pg_prepare("", $sql); 150 248 $resber = pg_execute("", $v); … … 153 251 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmls."'</p>";} 154 252 } 155 156 253 $an=0; 157 while($rowan = pg_fetch_array($resber)) { 158 $beznam=$rowan["bezeichnung"]; 159 $bart=$rowan["bart"]; // Buchungsart 160 $blattkeyber=$rowan["blattart"]; // Schluessel von Blatt-Art des berechtigten GB 161 $blattartber=$rowan["blattartv"]; // Wert von Blatt-Art des berechtigten GB 162 $nrpl=$rowan["nrpl"]; // Nummer im Aufteilungsplan 163 $sond=$rowan["sond"]; // Beschreibung des Sondereigentums 164 165 echo "\n<table class='outer'>" // \n<hr> 166 ."\n<tr>" // 1 row only 167 ."\n<td>"; // outer linke Spalte - Daten 168 // Rahmen mit Kennzeichen GB 169 if ($blattkeyber == 1000) { 170 echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>"; 171 } else { 172 echo "\n\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted 173 } 174 echo "\n\t<tr>" 175 ."\n\t\t<td class='head'>Bezirk</td>" 176 ."\n\t\t<td class='head'>".$blattartber."</td>" 177 ."\n\t\t<td class='head'>Lfd-Nr,</td>" 178 ."\n\t\t<td class='head'>Buchungsart</td>" 179 ."\n\t</tr>"; 180 echo "\n\t<tr>" 181 ."\n\t\t<td title='Grundbuchbezirk'>"; 182 if ($showkey) {echo "<span class='key'>".$rowan["bezirk"]."</span><br>";} 183 echo $beznam."</td>" 184 ."\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$rowan["blatt"]."</span></td>" 185 ."\n\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundstück)'>".$rowan["lfd"]."</td>" 186 ."\n\t\t<td title='Buchungsart'>"; 187 if ($showkey) {echo "<span class='key'>".$rowan["buchungsart"]."</span><br>";} 188 echo $rowan["bart"] 189 ."</td>" 190 ."\n\t</tr>" 191 ."\n\t</table>"; 192 if ($rowan["zaehler"] <> "") { 193 echo "\n\t<p class='ant'>".$rowan["zaehler"]."/".$rowan["nenner"]." Anteil am Flurstück</p>"; 194 } 195 echo "\n</td>"; 196 197 echo "\n<td>"; // outer rechte Spalte 198 if ($idanzeige) { 199 linkgml($gkz, $rowan["s_gml"], "Buchungsstelle", "ax_buchungsstelle"); 200 echo "<br>"; 201 linkgml($gkz, $rowan["g_gml"], "Buchungsblatt", ""); 202 } 203 echo "\n\t<br>" 204 ."\n\t<p class='nwlink noprint'>"; 205 if ($showkey) {echo "<span class='key'>".$blattkeyber."</span> ";} 206 echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&gmlid=".$rowan["g_gml"]; 207 if ($idanzeige) {echo "&id=j";} 208 if ($showkey) {echo "&showkey=j";} 209 echo "' title='Grundbuchnachweis mit Eigentümerangabe'>".$blattartber 210 ." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>" 211 ."</a>"; 212 echo "\n\t</p>" 213 ."\n\t</td>" 214 ."\n</tr>" 215 ."\n</table>"; 216 217 if ($blattkeyber != 1000) { 218 echo "\n<p>Blattart: ".$blattartber." (".$blattkeyber.").<br>"; 219 } 220 221 if ($nrpl != "") { 222 echo "\n<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$nrpl."</span> im Aufteilungsplan.</p>"; 223 } 224 225 if ($sond != "") { 226 echo "\n<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$sond."</p>"; 227 } 228 229 if ($eig == "j") { 230 $n = eigentuemer($rowan["g_gml"], true, ""); // mit Adresse 231 } 232 $an++; 254 $verfolg=array(); // Ein (zunÀchst leeres) Array fÃŒr weitere GML-IDs anlegen 255 while($rowan = pg_fetch_assoc($resber)) { // Loop durch Result von berechtigte BS 256 $hgml=$rowan["hgml"]; // GML-ID der berechtigten Buchungs-Stelle 257 $gezeigt = buchung_anzg($hgml, $eig, false, $gml_fs); // Die herrschende Buchung anzeigen wenn nicht fiktiv 258 $an++; 259 260 $weitere=ber_bs_zaehl($hgml); 261 if ($weitere > 0) { // gibt es WEITERE berechtigte Buchungen dazu? 262 // if ($debug > 2) {echo "<p class='dbg'>Weitere ".$weitere." zu verfolgende Buchungen gefunden. Füge an:<br>Vorher ".count($verfolg)."</p>";} 263 264 $verfolg[] = $hgml; // neuen Wert fÃŒr weitere Verfolgung in Array anfÃŒgen 265 266 // if ($debug > 2) {echo "<p class='dbg'>Nachher ".count($verfolg)."</p>";} 267 268 // } else { 269 // if ($debug > 2) {echo "<p class='dbg'>Auf Stufe ".$stufe." untersucht. Keine weitere abhÀngigen Buchungen zu ".$hgml.".</p>";} 270 } 233 271 } 234 272 pg_free_result($resber); 235 return; 236 } 237 273 return $verfolg; // weitere zu verfolgende GML-ID zurÃŒck geben 274 } 238 275 239 276 function kurz_namnr($lang) { … … 241 278 $kurz=str_replace(".00","",$lang); // leere Stufen (nur am Ende) 242 279 $kurz=str_replace("0000","",$kurz); // ganz leer (am Anfang) 243 $kurz=ltrim($kurz, "0"); // fuehr ende Nullen am Anfang244 $kurz=str_replace(".0",".",$kurz); // fuehr endeNull jeder Stufe280 $kurz=ltrim($kurz, "0"); // fuehr. Nullen 281 $kurz=str_replace(".0",".",$kurz); // fuehr. Null jeder Stufe 245 282 $kurz=rtrim($kurz); // Leerzeichen hinten 246 283 // echo "/n<p class='dbg'> lang='".$lang."'</p>/n<p class='dbg'> kurz='".$kurz."'</p>"; … … 279 316 $altbvnr=""; 280 317 $j=0; 281 while($rowf = pg_fetch_array($resf)) { 282 $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT); 318 while($rowf = pg_fetch_assoc($resf)) { 319 // $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT); 320 $flur= $rowf["flurnummer"]; 283 321 $fskenn=$rowf["zaehler"]; 284 322 if ($rowf["nenner"] != "") { // Bruch … … 334 372 function eigentuemer($gmlid, $mitadresse, $lnkclass) { 335 373 // Tabelle mit Eigentuemerdaten zu einem Grundbuchblatt ausgeben 336 // Sp.1 = Namennummer, Sp. 2 = Name / Adresse, Sp. 3 =Link374 // Sp.1="EigentÃŒmer" Sp.2=NamNr, Sp.3=Name/Adresse, Sp.4=Link 337 375 // Parameter: 338 376 // $gmlid = ID GB-Blattes … … 344 382 global $debug, $gkz, $showkey; 345 383 346 // Link ÃŒber Java-Class? (Ja in alkisinlayausk.php, sonst normal)347 384 if ($lnkclass == "") { 348 385 $lnkvor = ""; 349 386 $lnknach = ""; 350 } else { 387 } else { // Link ÃŒber Java-Class "imFenster" aus alkisinlayausk.php 351 388 $lnkvor = "javascript:".$lnkclass."(\""; 352 389 $lnknach = "\")"; 353 } // Beispiel-Link href='javascript:imFenster(\"alkislage.php?gkz= ... ."\")'>xxx ";390 } 354 391 355 392 $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.v AS adrv, we.v AS eiartv " … … 358 395 ."LEFT JOIN alkis_wertearten we ON cast(n.eigentuemerart AS character varying)=we.k AND we.element='ax_namensnummer' AND we.bezeichnung='eigentuemerart' " 359 396 ."WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;"; 360 361 $v = array($gmlid); // 16 Stellen bei Relationen 397 // +++ LEFT JOIN bis ax_Person statt Person als Schleife zu holen, 398 // VerknÃŒpfungsfeld "benennt" ist leer bei "Beschrieb der Rechtsgemeinschaft". 399 400 $v = array($gmlid); // GB-Blatt 362 401 $resn = pg_prepare("", $sqln); 363 402 $resn = pg_execute("", $v); 364 403 365 404 if (!$resn) { 366 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; 367 // kein Fehler bei Blattarten > 1000 405 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; // kein Fehler bei Blattarten > 1000 368 406 //if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqln."<br>$1=gml= '".$gmlid."'</p>";} 369 407 } 370 408 371 409 $n=0; // Z.NamNum. 372 while($rown = pg_fetch_array($resn)) { 373 if($n == 0) { // Die Ãberschrift nur, wenn auch ein Inhalt folgt 374 echo "\n\n<h3><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Angaben zum Eigentum</h3>" 375 ."\n<table class='eig'>"; 376 } 410 while($rown = pg_fetch_assoc($resn)) { 377 411 $gmlnn=$rown["gml_id"]; 378 412 $namnum=kurz_namnr($rown["lfd"]); 379 413 $rechtsg=$rown["adr"]; 380 echo "\n<tr>" 381 ."\n\t<td class='nanu' title='Namens-Nummer'>\n\t\t<p>" // Sp. 1 382 .$namnum." " // VOR die Tabelle: "EigentÃŒmer" 383 ."</p>\n\t</td>" 384 . "\n\t<td>"; // Sp. 2 385 if ($rechtsg != "" ) { 414 echo "\n\t<tr>"; 415 if($n == 0) { // erste EigentÃŒmer-Zeile zu einer Buchung 416 echo "\n\t\t<td class='ll'><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Eigentümer:</td>"; // 1 417 } else { // Folgezeile 418 echo "\n\t\t<td class='ll'> </td>"; // 1 419 } 420 421 if ($rechtsg != "" ) { // Erbengemeinschaft usw. 422 echo "\n\t\t<td colspan='2'>"; // 2-3 386 423 if ($rechtsg == 9999) { // sonstiges 387 echo "\n\t\t <p class='zus' title='Beschrieb der Rechtsgemeinschaft'>".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")."</p>";424 echo "\n\t\t\t<p class='zus' title='Beschrieb der Rechtsgemeinschaft'>".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")."</p>"; 388 425 } else { 389 echo "\n\t\t <p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities($rown["adrv"], ENT_QUOTES, "UTF-8")."</p>";426 echo "\n\t\t\t<p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities($rown["adrv"], ENT_QUOTES, "UTF-8")."</p>"; 390 427 } 391 } 392 //if ($rown["anlass"] > 0 ) {echo "<p>Anlass=".$rown["anlass"]."</p>";} // TEST:393 394 // Schleife Ebene 2: andere Namensnummern 395 // Beziehung ax_namensnummer >bestehtAusRechtsverhaeltnissenZu> ax_namensnummer396 397 // Die Relation 'Namensnummer' besteht aus RechtsverhÀltnissen zu 'Namensnummer' sagt aus, 398 // dass mehrere Namensnummern zu einer Rechtsgemeinschaft gehören können.399 // Die Re chtsgemeinschaft selbst steht unter einer eigenen AX_Namensnummer,400 // die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt.428 } else { // Namensnummer 429 echo "\n\t\t<td class='nanu' title='Namens-Nummer'>\n\t\t\t<p>".$namnum." </p>\n\t\t</td>" // 2 430 . "\n\t\t<td>"; // 3 431 432 } 433 //if ($rown["anlass"] > 0 ) {echo "<p>Anlass=".$rown["anlass"]."</p>";} 434 435 // Andere Namensnummern? Relation: ax_namensnummer >bestehtAusRechtsverhaeltnissenZu> ax_namensnummer 436 // Die Relation 'Namensnummer' besteht aus RechtsverhÀltnissen zu 'Namensnummer' sagt aus, dass mehrere Namensnummern zu einer Rechtsgemeinschaft gehören können. 437 // Die Rechtsgemeinschaft selbst steht unter einer eigenen AX_Namensnummer, die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt. 401 438 402 439 // Schleife 2: P e r s o n 440 // +++ bei SQL Namensnummer oben gleich mit JOIN dazu holen, statt dieser Schleife 403 441 // Beziehung: ax_person <benennt< ax_namensnummer 404 $sqlp="SELECT gml_id,nachnameoderfirma, vorname, geburtsname, to_char(cast(geburtsdatum AS date),'DD.MM.YYYY') AS geburtsdatum, namensbestandteil, akademischergrad "442 $sqlp="SELECT nachnameoderfirma, vorname, geburtsname, to_char(cast(geburtsdatum AS date),'DD.MM.YYYY') AS geburtsdatum, namensbestandteil, akademischergrad " 405 443 ."FROM ax_person WHERE gml_id= $1 AND endet IS NULL;"; 406 $gmlpers=$rown["benennt"]; 444 $gmlpers=$rown["benennt"]; // leer bei RechtsverhÀltnis 407 445 $v = array($gmlpers); // gml_id von ax_person 408 446 $resp = pg_prepare("", $sqlp); … … 414 452 415 453 $i=0; // cnt Person 416 while($rowp = pg_fetch_a rray($resp)) { // Schleife weglassen? nn >benennt> Personist KEIN Array!454 while($rowp = pg_fetch_assoc($resp)) { // Schleife weglassen: "benennt" ist KEIN Array! 417 455 $diePerson=""; //++ Anrede? 418 456 if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";} … … 423 461 if ($rowp["geburtsname"] <> "") {$diePerson.=", geb. ".$rowp["geburtsname"];} 424 462 $diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute 425 426 if ($i > 0) { // Spalte 1 enthÀlt die Namensnummer, nur in Zeile 0427 echo "\n<tr>\n\t<td> </td>\n\t<td>";428 }429 // Spalte 2 = Angaben430 463 $eiartkey=$rown["eigentuemerart"]; // Key 431 464 $eiart=$rown["eiartv"]; // Value 432 echo "\n\t\t<p class='geig' title='Eigentümerart: ".$eiart."'>".$diePerson."</p>\n\t</td>"; 433 434 // Spalte 3 = Link 435 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 436 if ($showkey AND $eiartkey != '') { // oft leer 437 echo "<span class='key' title='Eigentümerart'>".$eiartkey."</span> "; 438 } 439 echo "\n\t\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&gmlid=".$rowp[0]; 465 466 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) 467 echo "\n\t\t<td>\n\t\t\t<p class='nwlink noprint'>"; // 4 468 if ($showkey AND $eiartkey != '') {echo "<span class='key' title='Eigentümerart'>".$eiartkey."</span> ";} 469 echo "\n\t\t\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&gmlid=".$gmlpers; 440 470 if ($showkey) {echo "&showkey=j";} 441 471 if ($eiartkey == "") {$eiart="Eigentümer" ;} // Default. Ersatz-Text, wenn nicht gefÃŒllt 442 472 echo $lnknach."' title='vollständiger Name und Adresse eines Eigentümers'>".$eiart 443 ." <img src='ico/Eigentuemer.png' width='16' height='16' alt=''></a>\n\t\t</p>" 444 ."\n\t</td>\n</tr>"; 473 ." <img src='ico/Eigentuemer.png' width='16' height='16' alt=''></a>\n\t\t\t</p>" 474 ."\n\t\t</td>" // 4 475 ."\n\t</tr>"; 445 476 446 477 if ($mitadresse) { 447 // Schleife 3: A d r e s s e (OPTIONAL)478 // Schleife 3: optional A d r e s s e zur Person 448 479 $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland " 449 480 ."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;"; 450 $gmlp=$rowp["gml_id"]; // Person 451 $v = array($gmlp); 481 $v = array($gmlpers); 452 482 $resa = pg_prepare("", $sqla); 453 483 $resa = pg_execute("", $v); 454 455 484 if (!$resa) { 456 485 echo "\n\t<p class='err'>Fehler bei Adressen</p>"; 457 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sqla."<br>$1=gml= '".$gmlp ."'</p>";}486 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sqla."<br>$1=gml= '".$gmlpers."'</p>";} 458 487 } 459 488 $j=0; 460 while($rowa = pg_fetch_a rray($resa)) {489 while($rowa = pg_fetch_assoc($resa)) { 461 490 $j++; 462 491 if ($j == 1) { // erste ("jÃŒngste") Adresse anzeigen … … 473 502 $land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8"); 474 503 475 echo "\n<tr>\n\t<td> </td>"; //Sp. 1 476 echo "\n\t<td><p class='gadr'>"; //Sp. 2 477 if ($str.$hsnr != "") {echo $str." ".$hsnr."<br>";} 478 if ($plz.$ort != "") {echo $plz." ".$ort;} 479 if ($land != "" and $land != "DEUTSCHLAND") {echo ", ".$land;} 480 echo "</p></td>\n\t<td>"; // Sp. 3 481 echo " </td>\n</tr>"; 504 echo "\n\t<tr>" 505 ."\n\t\t<td class='ll'> </td>" // 1 506 ."\n\t\t<td> </td>" // 2 507 ."\n\t\t<td><p class='gadr'>"; // 3 508 if ($str.$hsnr != "") {echo $str." ".$hsnr."<br>";} 509 if ($plz.$ort != "") {echo $plz." ".$ort;} 510 if ($land != "" and $land != "DEUTSCHLAND") {echo ", ".$land;} 511 echo "</p></td>" // 3 512 ."\n\t\t<td> </td>\n\t</tr>"; // 4 482 513 } else { // manchmal doppelte Angaben 483 echo "\n<tr>\n\t<td> </td>\n\t<td><p class='dbg' title='Siehe Auskunft zur Person'>weitere Adresse</p></td>\n\t<td> </td>\n</tr>"; 484 } 485 } 514 echo "\n\t<tr>" 515 ."\n\t\t<td class='ll'> </td>" // 1 516 ."\n\t\t<td> </td>" // 2 517 ."\n\t\t<td><p class='dbg' title='Siehe Auskunft zur Person'>weitere Adresse</p></td>" // 3 518 ."\n\t\t<td> </td>\n\t</tr>"; // 4 519 } 520 } // Ende Loop Adresse zur Person 486 521 pg_free_result($resa); 487 522 } … … 489 524 $i++; // cnt Person 490 525 491 // Anteil als eigene Tab-Zeile:492 526 $zaehler=$rown["zaehler"]; 493 if ($zaehler != "") { 527 if ($zaehler != "") { // Anteil als eigene Tab-Zeile 494 528 $zaehler=str_replace(".", ",", $zaehler); // Dezimal-KOMMA wenn dem Notar der Bruch nicht reicht 495 529 $nenner=str_replace(".", ",", $rown["nenner"]); 496 530 $comnt="Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (Grundstück oder Recht)."; 497 echo "\n<tr>\n\t<td> </td>" // Sp. 1 498 ."\n\t<td><p class='avh' title='".$comnt."'>".$zaehler."/".$nenner." Anteil</p></td>" 499 ."\n\t<td> </td>\n</tr>"; // Sp. 3 531 echo "\n\t<tr>" 532 ."\n\t\t<td class='ll'> </td>" // 1 533 ."\n\t\t<td> </td>" // 2 534 ."\n\t\t<td><p class='avh' title='".$comnt."'>".$zaehler."/".$nenner." Anteil</p></td>" // 3 535 ."\n\t\t<td> </td>\n\t</tr>"; // 4 500 536 } 501 537 } // End Loop Person 502 if ($i == 0) { // Keine Person. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler 503 if ($rechtsg != 9999) { 538 pg_free_result($resp); 539 540 if ($i == 0) { // KEINE Person. benennt ist leer. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler 541 if ($rechtsg == 9999) { 542 if ($debug > 1) {echo "\n\t\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";} 543 } else { 504 544 echo "\n<p class='err'>(Die Person mit der ID '".$gmlpers."' fehlt im Datenbestand)</p>"; 505 } else { 506 if ($debug > 1) { // nur bei Entwicklung 507 echo "\n\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>"; 508 } 509 } 510 echo "</td>\n\t<td> </td>\n</tr>"; 545 } 546 echo "</td>\n\t\t<td> </td>\n\t</tr>"; 511 547 } 512 548 $n++; // cnt NamNum 513 549 } // End Loop NamNum 514 if($n > 0) { 515 echo "\n</table>"; 516 } else { // $n == 0, bei "Fiktives Blatt" KEIN Fehler 517 if ($debug > 1) { 518 echo "\n<p class='dbg'>keine Namensnummern zum Blatt</p>"; 519 //if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";} 520 } 521 } 550 522 551 pg_free_result($resn); 523 552 return $n; … … 539 568 } 540 569 $i=0; 541 while($row = pg_fetch_a rray($res)) {570 while($row = pg_fetch_assoc($res)) { 542 571 echo " ".$row["v"]; 543 572 $i++;
Note: See TracChangeset
for help on using the changeset viewer.