Changeset 425 for trunk/info/info/alkisn
- Timestamp:
- 12/30/21 17:49:00 (2 years ago)
- Location:
- trunk/info/info/alkisn
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkisn/alkisausk.php
r422 r425 10 10 11 11 Version: 12 2016-02-24 Version f uer norGIS-ALKIS-Import12 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 13 13 .... 14 14 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 15 15 2020-12-15 Input-Validation und Strict Comparisation (===) 16 16 17 17 H i n w e i s : Dies Modul wird beim Entwickler nicht mehr produktiv eingesetzt. 18 18 Statt dessen wird "alkisinlayausk.php" verwendet um von einer WMS-FeatureInfo in ein Fenster ÃŒberzuleiten. 19 19 Mangels Praxis bleiben Fehler möglicherweise unerkannt. … … 45 45 46 46 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 47 $dbg=$debug; // CONF in Arbeits-Variable 47 48 48 49 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisausk.php'"); … … 59 60 if (!$res) { 60 61 echo "\n<p class='err'>Fehler bei Flurstuecksdaten.</p>"; 61 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}62 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 62 63 } 63 64 … … 85 86 if ( ($filtkreis != '' and $filtkreis != $fskrs) or ($filtgem != '' and $filtgem != $fsgem) ) { 86 87 // Einer der gesetzten Filter passt nicht 87 if ($d ebug > 2) {88 if ($dbg > 2) { 88 89 echo "\n<p class='err'>Filter Kreis='".$filtkreis."', Gemeinde='".$filtgem."'</p>"; 89 90 echo "\n<p class='err'>Flstk. Kreis='".$fskrs."', Gemeinde='".$fsgem."'</p>"; … … 156 157 if (!$res) { 157 158 echo "\n<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer.</p>"; 158 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}159 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 159 160 } 160 161 $j=0; … … 196 197 if (!$resg) { 197 198 echo "\n<p class='err'>Keine Buchungen.</p>"; 198 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}199 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 199 200 } 200 201 -
trunk/info/info/alkisn/alkisauszug.css
r422 r425 10 10 2021-03-08 Gruppenwechsel-ZwischenÃŒberschrift 11 11 2021-03-17 Balken von Bauwerk Farbe wie im WMS 12 2021-12-30 Spalte nwlink breiter, Class td.flag entfÀllt, Tabellenkopf Hintergrund 12 13 13 14 https://wiki.selfhtml.org/wiki/Grafik/Farbpaletten#Farbnamen … … 100 101 td.lr {color: black; padding-left: 4px;} /* Liste Rechts */ 101 102 td.re {min-width: 80px; padding-right: 4px; text-align: right;} /* RechtsbÃŒndig */ 102 td.fla {width: 110px; padding-right: 4px; text-align: right;} /* Flaechen rechtsbuendig (stellengerecht) */ 103 td.flag {min-width: 110px; padding-right: 4px; text-align: right;} /* .. im GB-Bestandsnachweis erweiterbar */ 103 td.fla {width: 110px; padding-right: 4px; text-align: right;} /* FlÀchen rechtsbuendig (stellengerecht) */ 104 104 td.fsnr {padding-right: 4px; text-align: right;} /* Flst.-Nr. rechtsbuendig */ 105 105 td.key {width: 35px; padding-right: 4px; padding-left: 4px;} 106 /* td.emz {width: 45px; padding-right: 4px; padding-left: 4px; text-align: right;} Ertragsmesszahl der Bodensch aetzung */106 /* td.emz {width: 45px; padding-right: 4px; padding-left: 4px; text-align: right;} Ertragsmesszahl der BodenschÀtzung */ 107 107 td.kurz {width: 26px; padding-left: 4px;} 108 td.nanu {width: 50px;} 108 td.nanu {width: 50px;} /* Namensnummer */ 109 109 td.sond, p.sond {font-size: 9pt; font-style: italic; background-color: white; 110 border: 1px dotted silver; padding: 6px;} 110 border: 1px dotted silver; padding: 6px;} /* Sondereigentumsbeschreibung */ 111 111 td.nrap, p.nrap {font-size: 9pt; font-style: italic; background-color: white;} /* Nummer im Aufteilungsplan */ 112 112 td.fett {font-weight: bold;} 113 td.nwlink {min-width: 80px;}/* Link zum Nachweis */113 td.nwlink {min-width: 99px;} /* Link zum Nachweis */ 114 114 115 115 /* Kopfzeile, SpaltenÃŒberschrift, GW-Zwischenzeile */ 116 td.head, td.heads, td.gw{font-style: italic; padding-top: 2px; }116 td.head, td.heads, td.gw{font-style: italic; padding-top: 2px; background-color: rgb(246,247,248);} 117 117 td.head {border-bottom: 1px solid gray;} 118 td.heads {border-bottom: 1px solid black;} 119 td.gw {background-color: WhiteSmoke;} 118 td.heads {border-bottom: 1px solid black;} /* Kopf Sortierspalte */ 119 td.gw {background-color: WhiteSmoke;} /* Gruppen-Wechsel */ 120 120 121 121 td.sum {border-top: 2px dotted maroon; border-bottom:3px solid maroon; 122 122 border-left:0px dotted maroon; border-right:0px dotted maroon; font-weight: bold;} /* unter dem Strich = Summenzeile */ 123 td.bez {font-weight: bold;} 124 td.nhd {width: 150px;} 123 td.bez {font-weight: bold;} /* Beziehungen */ 124 td.nhd {width: 150px;} /* Namen - linke / rechte Spalte */ 125 125 td.nam {font-weight: bold;} 126 126 /* td.gbl {border-bottom: 1px dotted green;} Name: GB-Liste */ … … 132 132 133 133 /* Fallunterscheidung bei GebÀude oder Bauwerk auf FlurstÃŒck: */ 134 td.gin {color: rgb(0,50,0);} 135 td.gtl {color: rgb(140,140,100);} 136 td.gan {color: rgb(210,170,170);} 134 td.gin {color: rgb(0,50,0);} /* in FS */ 135 td.gtl {color: rgb(140,140,100);} /* teilweise auf FS */ 136 td.gan {color: rgb(210,170,170);} /* angrenzend an FS*/ 137 137 138 138 /* Farbwechsel je Zeile pair/unpair */ -
trunk/info/info/alkisn/alkisbaurecht.php
r422 r425 4 4 5 5 Version: 6 2016-02-24 Version f uer norGIS-ALKIS-Import6 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 7 7 .... 8 8 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 9 9 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 10 10 2020-12-15 Input-Validation und Strict Comparisation (===) 11 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 11 12 */ 12 13 ini_set("session.cookie_httponly", 1); … … 48 49 $erlaubnis = darf_ich(); if ($erlaubnis === 0) {die('<p class="stop1">Abbruch</p></body>');} 49 50 51 $dbg=$debug; // CONF in Arbeits-Variable 50 52 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 51 // Manuell an die URL anfÃŒgen, wirkt nurtemporÀr und wird nicht in Links weiter gereicht.52 if ($nodebug === "j") {$d ebug=0;}53 // Wirkt temporÀr und wird nicht in Links weiter gereicht. 54 if ($nodebug === "j") {$dbg=0;} 53 55 54 56 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbaurecht.php'"); … … 60 62 FROM ax_bauraumoderbodenordnungsrecht r 61 63 LEFT JOIN ax_artderfestlegung_bauraumoderbodenordnungsrecht a ON r.artderfestlegung = a.wert 62 LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle 63 LEFT JOIN ax_behoerde wd ON d.stellenart = wd.wert64 LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle ".UnqKatAmt("r","d") 65 ."LEFT JOIN ax_behoerde wd ON d.stellenart = wd.wert 64 66 WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;"; 65 67 … … 69 71 if (!$res) { 70 72 echo "\n<p class='err'>Fehler bei Baurecht.</p>"; 71 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 73 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 74 } 75 if ($dbg > 0) { 76 $zeianz=pg_num_rows($res); 77 if ($zeianz > 1){ 78 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Baurecht-Objekt!</p>"; 79 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 80 } 72 81 } 73 82 if ($row = pg_fetch_assoc($res)) { … … 80 89 $behd=$row["dokumentation"]; 81 90 82 // Balken 83 echo "<p class='balken recht'>ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr." </p>"; 84 91 echo "<p class='balken recht'>ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr." </p>"; // Balken 85 92 echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>"; 86 87 93 echo "\n<table>" 88 94 ."\n<tr>" … … 133 139 ."\n<p>Ermittelt durch geometrische Verschneidung. Nach Größe absteigend.</p>"; 134 140 135 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, round(st_area(ST_Intersection(r.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae 136 FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r 141 $sql ="SELECT f.gml_id, g.bezeichnung, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, round(st_area(ST_Intersection(r.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae 142 FROM ax_flurstueck f 143 JOIN ax_gemarkung g ON f.gemeindezugehoerigkeit_land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 144 ."JOIN ax_bauraumoderbodenordnungsrecht r 145 ON st_intersects(r.wkb_geometry,f.wkb_geometry) = true AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05 137 146 WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL "; 138 if ($filtgem === '' ) { // ungefiltert147 if ($filtgem === '' ) { 139 148 $v=array($gmlid); 140 149 } else { … … 142 151 $v=array($gmlid, $filtkreis, $filtgem); 143 152 } 144 $sql.="AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true 145 AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05 146 ORDER BY schnittflae DESC LIMIT 100;"; 153 $sql.="ORDER BY schnittflae DESC LIMIT 100;"; 147 154 // > 0.0 ist gemeint, Ungenauigkeit durch st_simplify 148 // Limit: Flurbereinig. kann gro sswerden!155 // Limit: Flurbereinig. kann groà werden! 149 156 // Trotz Limit lange Antwortzeit, wegen OrderBy -> intersection 150 157 … … 153 160 if (!$res) { 154 161 echo "\n<p class='err'>Keine Flurstücke ermittelt.<br></p>"; 155 //if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} // ggf. mehrere Parameter!162 //if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} // ggf. mehrere Parameter! 156 163 } 157 164 158 165 echo "\n<table class='fs'>" 159 166 ."\n<tr>" 160 ."\n\t<td class='head' title='Flur- und Flurstücksnummer'>Flurstück</td>" 167 ."\n\t<td class='head' title='Gemarkung'>Gemarkung</td>" 168 ."\n\t<td class='head' title='Flurnummer'>Flur</td>" 169 ."\n\t<td class='head' title='Flurstücksnummer Zähler / Nenner'>Flurstück</td>" 161 170 ."\n\t<td class='heads fla' title='geometrische Schnittfläche'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Fläche</td>" 162 171 ."\n\t<td class='head fla' title='amtliche Flurstücksfläche, Buchfläche'>von</td>" … … 167 176 while($row = pg_fetch_assoc($res)) { 168 177 $fscnt++; 178 $gmkgnr=$row["gemarkungsnummer"]; 179 $gemarkung=$row["bezeichnung"]; 180 $nen=$row["nenner"]; 169 181 echo "\n<tr>" 170 ."\n\t<td>".$row["flurnummer"]."-<span class='wichtig'>".$row["zaehler"]; 171 $nen=$row["nenner"]; 182 ."\n\t<td>"; 183 if ($showkey) {echo "<span class='key'>(".$gmkgnr.")</span> ";} 184 echo $gemarkung."</td>" 185 ."\n\t<td>".$row["flurnummer"]."</td>" 186 ."\n\t<td><span class='wichtig'>".$row["zaehler"]; 172 187 if ($nen != "") {echo "/".$nen;} 173 188 echo "</span></td>" … … 189 204 } else { // Wahrscheinliche Ursache = Filter 190 205 echo "\n<p class='err'>Kein Flurstück im berechtigten Bereich.</p>"; 191 // if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."</p>";}206 // if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."</p>";} 192 207 } 193 208 } elseif ($fscnt === 100) { … … 196 211 197 212 pg_close($con); 198 echo <<<END 199 200 <div class='buttonbereich noprint'> 201 <hr> 202 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück" /></a> 203 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken" /></a> 204 </div> 205 END; 213 echo " 214 <div class='buttonbereich noprint'>\n<hr>" 215 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück' /></a> "; 216 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 217 echo "\n</div>"; 206 218 207 219 footer($gmlid, selbstverlinkung()."?", ""); 208 209 220 ?> 210 221 -
trunk/info/info/alkisn/alkisbauwerk.php
r422 r425 5 5 1 Bauwerk im Verkehrsbereich 6 6 2 Bauwerk im GewÀsserbereich 7 3 Sonstiges Bauwerk oder sonstige Einrichtung 8 4 Bauwerk oder Anlage fÃŒr Industrie und Gewerbe 9 5 Bauwerk oder Anlage fÃŒr Sport, Freizeit und Erholung 10 6 Leitung 11 7 Transportanlage 12 8 Turm 13 9 VorratsbehÀlter, Speicherbauwerk 7 3 Sonstiges Bauwerk oder sonstige Einrichtung 51009 8 4 Bauwerk oder Anlage fÃŒr Industrie und Gewerbe 51002 9 5 Bauwerk oder Anlage fÃŒr Sport, Freizeit und Erholung 51006 10 6 Leitung 51005 11 7 Transportanlage 51004 12 8 Turm 51001 13 9 VorratsbehÀlter, Speicherbauwerk 51003 14 14 15 15 Version: 16 16 2021-03-11 Neues Modul 17 17 2021-03-17 Korrekturen 18 18 2021-12-09 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche). Debugging verbessert. 19 20 ToDo: 21 - Icon fÃŒr "Bauwerk" machen! ggf. einzeln fÃŒr jede der 9 Arten? 22 - 4 weitere Objektarten, bisher nicht verwendet: 23 51007 'Historisches Bauwerk oder historische Einrichtung' 24 51008 'Heilquelle, Gasquelle' 25 51010 'Einrichtung in öffentlichen Bereichen' 26 51011 'Besonderer Bauwerkspunkt' 19 27 */ 20 28 … … 22 30 // Ein Bauwerk "gehört zu" (Relation) einem GebÀude. Zu diesem GebÀude die Adresse(n) als Tabellen-Zeile ausgeben 23 31 function bw_gz_lage($gmlgz) { 24 global $gkz, $d ebug, $showkey;32 global $gkz, $dbg, $showkey; 25 33 26 34 // HAUPTgebÀude Geb >zeigtAuf> lage (mehrere) 27 $sqlgz ="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer"35 $sqlgz ="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer, p.bezeichnung as gemeinde " 28 36 ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) " 29 ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 37 ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 38 ."JOIN ax_gemeinde p ON s.land=p.land AND s.regierungsbezirk=p.regierungsbezirk AND s.kreis=p.kreis AND s.gemeinde=p.gemeinde ".UnqKatAmt("s","p") 30 39 ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; 31 40 32 41 // ++ evtl. keine NEBEN-GebÀude möglich, nur Haupt-? 33 42 // UNION - oder NEBENgebÀude Geb >hat> Pseudo 34 $sqlgz.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer "43 $sqlgz.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer, p.bezeichnung as gemeinde " 35 44 ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat " 36 45 ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 37 ." WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses"38 39 $sqlgz.="ORDER BY bezeichnung, hausnummer, laufendenummer;";46 ."JOIN ax_gemeinde p ON s.land=p.land AND s.regierungsbezirk=p.regierungsbezirk AND s.kreis=p.kreis AND s.gemeinde=p.gemeinde ".UnqKatAmt("s","p") 47 ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL " // ID des Hauses" 48 ."ORDER BY bezeichnung, hausnummer, laufendenummer;"; 40 49 $v = array($gmlgz); 41 50 $resgz = pg_prepare("", $sqlgz); … … 43 52 if (!$resgz) { 44 53 echo "\n<p class='err'>Fehler bei Lage mit HsNr. zum Bauwerk</p>"; 45 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlgz."'", $sqlgz)."</p>";}46 if ($d ebug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resgz)."</p>";}54 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlgz."'", $sqlgz)."</p>";} 55 if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resgz)."</p>";} 47 56 } else { 48 57 echo "\n<tr>"; … … 56 65 $hlfd=$rowgz["laufendenummer"]; 57 66 $gmllag=$rowgz["lgml"]; 67 $gemeinde=$rowgz["gemeinde"]; 58 68 59 69 if ($ltyp === "p") { 60 70 $lagetitl="NebengebÀude Nr. ".$hlfd; 61 // $lagetxt="Nebengebäude Nr. ".$hlfd; // alt 62 $lagetxt=$snam." ".$hsnr." (".$hlfd.")"; 71 $lagetxt=$snam." ".$hsnr." (".$hlfd."), ".$gemeinde; 63 72 } else { 64 73 $lagetitl="HauptgebÀude - Hausnummer ".$hsnr; 65 $lagetxt=$snam." ".$hsnr;74 $lagetxt=$snam." ".$hsnr.", ".$gemeinde; 66 75 } 67 76 … … 82 91 // Eine Zeile der HTML-Tabelle ausgeben 83 92 function tab_zeile($titel, $key, $inhalt, $ea, $ei) { 84 global $showkey, $allefelder, $d ebug;93 global $showkey, $allefelder, $dbg; 85 94 if ($inhalt != "" OR $allefelder) { 86 95 echo "\n<tr>\n\t<td class='li'>".$titel."</td>\n\t<td class='fett'>"; … … 96 105 // Anwendung fÃŒr die DB-Spalten, die nicht bei jeder Bauwerks-Tabelle vorkommen 97 106 function zusatz_spalte($col, $inhalt) { // Spalten-Name, Value 98 global $d ebug;107 global $dbg; 99 108 $einh=''; 100 109 switch ($col) { … … 126 135 // Fehler 127 136 default: // noch nicht berÃŒcksichtigt 128 if ($d ebug > 1) {echo "<p class='dbg'>Der Feldname ".$col." ist in function zusatz_spalte noch nicht berücksichtigt.</p>";}137 if ($dbg > 1) {echo "<p class='dbg'>Der Feldname ".$col." ist in function zusatz_spalte noch nicht berücksichtigt.</p>";} 129 138 $titel=$col; 130 139 } … … 144 153 // inhalt = gml_id oder Array mit gml_id's 145 154 function objektverweis($col, $inhalt) { 146 global $gkz, $showkey, $d ebug;147 // if ($d ebug > 1) {echo "<p>Verweis Typ '".$col."' auf Objekt(e): '".$inhalt."'.</p>";}155 global $gkz, $showkey, $dbg; 156 // if ($dbg > 1) {echo "<p>Verweis Typ '".$col."' auf Objekt(e): '".$inhalt."'.</p>";} 148 157 switch ($col) { 149 158 case 'hatdirektunten': // [] ++ Wie kann man dies Objekt finden? … … 168 177 // 'istabgeleitetaus'; 'traegtbeizu': 'istteilvon': // -> Keine FÀlle vorhanden 169 178 default: 170 if ($debug > 1) {echo "<p class='dbg'>Der Feldname ".$col." ist in function 'objektverweis' noch nicht berücksichtigt.</p>";} 171 } 172 } 173 // alle leer: 174 // SELECT * FROM bauwerke_zusammenfassung WHERE NOT istabgeleitetaus IS NULL; 175 // SELECT * FROM bauwerke_zusammenfassung WHERE NOT traegtbeizu IS NULL; 176 // SELECT * FROM bauwerke_zusammenfassung WHERE NOT istteilvon IS NULL; 177 // SELECT gml_id, hatdirektunten, st_asewkt( wkb_geometry ) as wkt FROM ax_bauwerkimgewaesserbereich WHERE NOT hatdirektunten IS NULL; 178 // 1 Fall in 290: 2 / DENW15AL360000N7 , 179 // SELECT gml_id, hatdirektunten, st_asewkt( wkb_geometry ) as wkt FROM ax_bauwerkimgewaesserbereich WHERE gml_id = 'DENW15AL360000N7'; 180 // 34 FÀlle in 200: 181 // 16 FÀlle in 300: 179 if ($dbg > 1) {echo "<p class='dbg'>Der Feldname ".$col." ist in function 'objektverweis' noch nicht berücksichtigt.</p>";} 180 } 181 } 182 182 183 183 // S T A R T … … 185 185 ini_set("session.cookie_httponly", 1); 186 186 session_start(); 187 $allfld = "n"; $showkey="n"; $nodebug=""; // Var. aus Parameterinitalisieren187 $allfld = "n"; $showkey="n"; $nodebug=""; // Var. initalisieren 188 188 $cntget = extract($_GET); // Parameter in Variable umwandeln 189 189 … … 224 224 225 225 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 226 227 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 228 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 229 if ($nodebug === "j") {$debug=0;} 226 $dbg=$debug; // CONF in Arbeits-Variable 227 if ($nodebug === "j") {$dbg=0;} // Entwicklungsumgebung temporÀr ausschalten 230 228 231 229 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbauwerk.php'"); … … 237 235 238 236 /* in ALLEN Bauwerks-Typen folgende Spalten, bisher NICHT verwendet: 239 processstep_ax_li_processstep_mitdatenerhebung_description[] processstep_rationale[]240 processstep_datetime[] processstep_individualname[] processstep_organisationname[] processstep_positionname[]241 processstep_phone[] processstep_address[] processstep_onlineresource[] processstep_hoursofservice[]242 processstep_contactinstructions[] processstep_role[] processstep_ax_datenerhebung[]243 processstep_scaledenominator[] processstep_sourcereferencesystem[] processstep_sourceextent[] processstep_sourcestep[]244 245 237 herkunft_source_source_ax_datenerhebung[] herkunft_source_source_scaledenominator[] herkunft_source_source_sourcereferencesystem[] 246 238 herkunft_source_source_sourceextent[] herkunft_source_source_sourcestep[] */ … … 414 406 if (!$resb) { 415 407 echo "\n<p class='err'>Fehler bei Bauwerksdaten Standardfelder.</p>"; 416 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlb)."'</p>";} 417 if ($debug > 1) {echo "\n<p class='dbg'>Fehler:".pg_result_error($resb)."</p>";} 408 if ($dbg > 0) { 409 echo "\n<p class='dbg'>Fehler:".pg_result_error($resb)."</p>"; 410 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlb)."'</p>";} 411 } 418 412 } else { 413 if ($dbg > 0) { 414 $zeianz=pg_num_rows($resb); 415 if ($zeianz > 1){ 416 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Bauwerk! (Standardfelder)</p>"; 417 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlb), ENT_QUOTES, "UTF-8")."</p>";} 418 } 419 } 419 420 if (!$rowb = pg_fetch_assoc($resb)) { 420 421 echo "\n<p class='err'>Fehler! Kein Treffer für gml_id=".$gmlid."</p>"; 421 422 die('<p class="stop1">Abbruch</p></body>'); // Das wÃŒrde sich sonst 2x wiederholen 422 } else { 423 // Treffer 423 } else { // Treffer 424 424 // Seitenkopf 425 425 echo "<p class='balken bauwerk".$btyp."'>ALKIS Bauwerk ".$btyp." - ".$gmlid." </p>"; // Balken, Farbe wie WMS … … 484 484 if (!$resk) { 485 485 echo "\n<p class='err'>Fehler bei Schlüsseltabelle ".$btyp."</p>"; 486 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlk)."'</p>";} 487 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resk)."</p>";} 486 if ($dbg > 0) { 487 echo "<p class='dbg'>Fehler:".pg_result_error($resk)."</p>"; 488 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlk)."'</p>";} 489 } 488 490 } else { 491 if ($dbg > 0) { 492 $zeianz=pg_num_rows($resk); 493 if ($zeianz > 1){ 494 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Bauwerk! (Key-Value)</p>"; 495 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlk), ENT_QUOTES, "UTF-8")."</p>";} 496 } 497 } 489 498 if (!$rowk = pg_fetch_array($resk)) { 490 499 echo "\n<p class='err'>Fehler! Kein Treffer für gml_id=".$gmlid."</p>"; … … 532 541 if (!$resz) { 533 542 echo "\n<p class='err'>Fehler bei Bauwerk Relation.</p>"; 534 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlz)."'</p>";} 535 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resz)."</p>";} 543 if ($dbg > 0) { 544 echo "<p class='dbg'>Fehler:".pg_result_error($resz)."</p>"; 545 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlz)."'</p>";} 546 } 536 547 } else { 548 if ($dbg > 0) { 549 $zeianz=pg_num_rows($resz); 550 if ($zeianz > 1){ 551 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Bauwerk! (Zusatz-Spalten)</p>"; 552 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlz), ENT_QUOTES, "UTF-8")."</p>";} 553 } 554 } 537 555 if (!$rowz = pg_fetch_array($resz)) { 538 556 echo "\n<p class='err'>Fehler! Kein Treffer für gml_id=".$gmlid."</p>"; … … 540 558 // Die Spalten im Row abarbeiten 541 559 $anzcol=pg_num_fields($resz); 542 // if ($debug > 1) {echo "<p class='dbg'>".$anzcol." Zusatz-Spalten vorhanden"."</p>";}543 560 for ($i = 0; $i < $anzcol; $i++) { 544 561 $k=pg_field_name($resz, $i); … … 560 577 if (!$resr) { 561 578 echo "\n<p class='err'>Fehler bei Bauwerksdaten Zusatzfelder.</p>"; 562 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlr)."'</p>";} 563 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resr)."</p>";} 579 if ($dbg > 0) { 580 echo "<p class='dbg'>Fehler:".pg_result_error($resr)."</p>"; 581 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlr)."'</p>";} 582 } 564 583 } else { 584 if ($dbg > 0) { 585 $zeianz=pg_num_rows($resr); 586 if ($zeianz > 1){ 587 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Bauwerk! (Relationen)</p>"; 588 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlr), ENT_QUOTES, "UTF-8")."</p>";} 589 } 590 } 565 591 if (!$rowr = pg_fetch_array($resr)) { 566 592 echo "\n<p class='err'>Fehler! Kein Treffer für gml_id=".$gmlid."</p>"; 567 593 } else { // Die Spalten im Row abarbeiten 568 594 $anzcol=pg_num_fields($resr); 569 // if ($debug > 1) {echo "<p class='dbg'>".$anzcol." Relationen-Spalten vorhanden"."</p>";}570 595 for ($i = 0; $i < $anzcol; $i++) { 571 596 $k=pg_field_name($resr, $i); … … 581 606 582 607 echo "\n</table>\n"; 583 // +++ Test, ob ein zweiter Satz zum Bauwerk gefunden wird? Das sollte nicht sein. 608 echo "<div class='buttonbereich noprint'>\n<hr>\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 609 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 610 echo "\n</div>"; 611 612 footer($gmlid, selbstverlinkung()."?", "&btyp=".$btyp); 584 613 ?> 585 586 <div class='buttonbereich noprint'>587 <hr>588 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 589 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>590 </div>591 592 <?php footer($gmlid, selbstverlinkung()."?", "&btyp=".$btyp); ?>593 594 614 </body> 595 615 </html> -
trunk/info/info/alkisn/alkisbestnw.php
r422 r425 6 6 7 7 Version: 8 2016-02-24 Version f uer norGIS-ALKIS-Import8 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 9 9 .... 10 2020-02-20 Authentifizierung ausgel egert in Function darf_ich()10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 11 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 12 12 2020-12-15 Input-Validation und Strict Comparisation (===) 13 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 14 Tabellenstruktur verbessert und Title bei "Recht an". 15 2021-12-30 Bestandsnachweis recursiv ÃŒber alle Buchungs-Ebenen 13 16 */ 14 17 ini_set("session.cookie_httponly", 1); … … 54 57 55 58 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 56 57 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 58 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht.59 if ($nodebug === "j") {$d ebug=0;}59 $dbg=$debug; // CONF in Arbeits-Variable 60 61 // Entwicklungsumgebung (in Conf definiert) ausschalten. 62 if ($nodebug === "j") {$dbg=0;} 60 63 61 64 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbestnw.php'"); … … 64 67 // G R U N D B U C H 65 68 $sql="SELECT g.gml_id, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung AS blatt, g.blattart, wb.beschreibung AS blattartv, wb.dokumentation AS blattartd, 66 b.gml_id, b.bezirk, b.bezeichnung AS beznam, d.gml_id, d.land, d.bezeichnung, d.stelle, d.stellenart, wd.beschreibung AS stellev FROM ax_buchungsblatt g 67 LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk 68 LEFT JOIN ax_dienststelle d ON b.land=d.land AND b.gehoertzu_stelle=d.stelle 69 LEFT JOIN ax_blattart_buchungsblatt wb ON g.blattart = wb.wert 70 LEFT JOIN ax_behoerde wd ON d.stellenart = wd.wert 69 b.gml_id, b.bezirk, b.bezeichnung AS beznam, d.gml_id, d.land, d.bezeichnung, d.stelle, d.stellenart, wd.beschreibung AS stellev 70 FROM ax_buchungsblatt g 71 LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk ".UnqKatAmt("g","b") 72 ."LEFT JOIN ax_dienststelle d ON b.land=d.land AND b.gehoertzu_stelle=d.stelle ".UnqKatAmt("b","d") 73 ."LEFT JOIN ax_blattart_buchungsblatt wb ON g.blattart = wb.wert 74 LEFT JOIN ax_behoerde wd ON d.stellenart = wd.wert 71 75 WHERE g.gml_id= $1 AND g.endet IS NULL AND b.endet IS NULL AND d.endet IS NULL;"; 72 76 // .. AND d.stellenart=1000 … … 77 81 if (!$res) { 78 82 echo "\n<p class='err'>Fehler bei Grundbuchdaten.</p>"; 79 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 83 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 84 } 85 $zeianz=pg_num_rows($res); 86 if ($dbg > 0) { 87 if ($zeianz > 1){ 88 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Grundbuch-Objekt!</p>"; 89 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 90 } 91 } 92 if ($zeianz == 0){ 93 echo "\n<p class='err'>Fehler! Kein Treffer für ein Grundbuch-Blatt mit gml_id=".$gmlid."</p>"; 94 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 95 echo "\n</body>\n</html>"; 96 return; 80 97 } 81 98 if ($row = pg_fetch_assoc($res)) { … … 87 104 echo "\n<h2>Grundbuch</h2>"; 88 105 echo "\n<table class='outer'>" // Blatt UND Eigent. 89 ."\n <tr>\n\t<td class='ll'><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Blatt:</td>" // outer Links90 ."\n\t <td colspan='2'>"; // Outer Mitte, Kennz. im Rahmen91 if ($blattkey == 1000) {92 echo "\n\t\t<table class='kennzgb' title='Bestandskennzeichen'>";93 } else {94 echo "\n\t\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted95 }96 echo "\n\t\t <tr>"97 ."\n\t\t\t<td class='head'>"; // .d nicht gefÃŒllt106 ."\n\t<tr>\n\t\t<td class='ll'><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Blatt:</td>" 107 ."\n\t\t<td colspan='2'>"; // Outer Mitte, Kennz. im Rahmen 108 if ($blattkey === "1000") { 109 echo "\n\t\t\t<table class='kennzgb' title='Bestandskennzeichen'>"; 110 } else { 111 echo "\n\t\t\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted 112 } 113 echo "\n\t\t\t<tr>" 114 ."\n\t\t\t<td class='head'>"; 98 115 if ($showkey) {echo "<span class='key'>".$row["stellenart"]." </span>";} 99 116 echo $row["stellev"]."</td>"; 100 117 echo "\n\t\t\t<td class='head'>Bezirk</td>" 101 ."\n\t\t\t <td class='head' title='".htmlentities($row["blattartd"], ENT_QUOTES, "UTF-8")."'>";118 ."\n\t\t\t\t<td class='head' title='".htmlentities($row["blattartd"], ENT_QUOTES, "UTF-8")."'>"; 102 119 if ($showkey) {echo "<span class='key'>".$blattkey." </span>";} 103 120 echo $blattart."</td>" 104 ."\n\t\t </tr>\n\t\t<tr>"105 ."\n\t\t\t <td title='Amtsgerichtsbezirk'>";121 ."\n\t\t\t</tr>\n\t\t\t<tr>" 122 ."\n\t\t\t\t<td title='Amtsgerichtsbezirk'>"; 106 123 if ($showkey) {echo "<span class='key'>".$row["stelle"]."</span><br>";} 107 124 echo htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8")."</td>" 108 ."\n\t\t\t <td title='Grundbuchbezirk'>";125 ."\n\t\t\t\t<td title='Grundbuchbezirk'>"; 109 126 if ($showkey) {echo "<span class='key'>".$row["bezirk"]."</span><br>";} 110 127 echo htmlentities($row["beznam"], ENT_QUOTES, "UTF-8")."</td>" 111 ."\n\t\t\t <td title='Grundbuch-Blatt'><span class='wichtig'>".$blatt."</span></td>"112 ."\n\t\t </tr>"113 ."\n\t\t </table>"114 ."\n\t </td>\n\t<td> "115 ."\n\t</td>\n</tr>"; 116 } 117 118 if ($blattkey == 5000) { // fikt. Blatt128 ."\n\t\t\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$blatt."</span></td>" 129 ."\n\t\t\t</tr>" 130 ."\n\t\t\t</table>" 131 ."\n\t\t</td>\n\t\t<td> </td>\n\t</tr>"; 132 } 133 pg_free_result($res); 134 135 if ($blattkey === "5000") { // fikt. Blatt 119 136 echo "\n<p>Keine Angaben zum Eigentum bei fiktivem Blatt.</p>"; 120 } else { // E I G E N T U EM E R137 } else { // E I G E N T à M E R 121 138 $n = eigentuemer($gmlid, true, ""); // MIT Adressen. 122 139 if ($n === 0) { // keine NamensNr, kein Eigentuemer … … 127 144 echo "\n</table>"; 128 145 129 // Vorab pruefen, ob der Fall "Rechte an .." vorliegt. 130 // ToDo: +++ Es gibt auch den Fall, dass auf der nÀchsten Stufe "nur Rechte" angezeigt werden, noch keine FlurstÃŒcke 131 // ++ Also 3 Möglichkeiten: 132 // - Nur Rechte an (+++ FEHLT NOCH ++) 133 // - Rechte und FlurstÃŒcke 134 // - FlurstÃŒcke 135 136 // GB-Blatt <istBestandteilVon< sh=herrschend >an/zu> sd=dienend 137 $sql="SELECT count(sd.laufendenummer) AS anzahl " 138 ."FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (sd.gml_id=ANY(sh.an) OR sd.gml_id=ANY(sh.zu)) " 139 ."WHERE sh.istbestandteilvon= $1 AND sd.endet IS NULL AND sh.endet IS NULL;"; 140 146 // Vorab eine Tiefbohrung zur Sondierung von (potentiell) herrschend bis dienend ÃŒber max. 4 Buchungs-Stellen. 147 // Diese ZÀhlung sagt nur aus, ob es "generell" solche FÀlle auf diesem Grundbuch gibt (ist selten). 148 // In jedem einzelnen Zweig der Buchungen muss aber individuell danach gesucht werden. 149 // Die Relation "zu" ist hier einbezogen, wird aber spÀter nicht ausgewertet. Hier könnte man die Differenz erkennen falls "zu" doch mal auftaucht. 150 $sql ="SELECT count(s2.laufendenummer) AS anz2"; 151 if ($dbg > 1) {$sql.=", count(s3.laufendenummer) AS anz3, count(s4.laufendenummer) AS anz4";} 152 $sql.=" FROM ax_buchungsstelle sh " // herrschend 153 ."LEFT JOIN ax_buchungsstelle s2 ON (s2.gml_id=ANY(sh.an) OR s2.gml_id=ANY(sh.zu)) "; 154 if ($dbg > 1) { 155 $sql.="LEFT JOIN ax_buchungsstelle s3 ON (s3.gml_id=ANY(s2.an) OR s3.gml_id=ANY(s2.zu)) " 156 ."LEFT JOIN ax_buchungsstelle s4 ON (s4.gml_id=ANY(s3.an) OR s4.gml_id=ANY(s3.zu)) "; 157 } 158 $sql.="WHERE sh.istbestandteilvon= $1 AND sh.endet IS NULL AND s2.endet IS NULL "; 159 if ($dbg > 1) {$sql.="AND s3.endet IS NULL AND s4.endet IS NULL";} 141 160 $v=array($gmlid); // GB-Blatt 142 161 $res=pg_prepare("", $sql); 143 162 $res=pg_execute("", $v); 144 if (!$res) echo "\n<p class='err'>Fehler bei Suche nach Buchungen.</p>"; 163 if (!$res) { 164 echo "\n<p class='err'>Fehler bei tiefer Suche nach Buchungen.</p>"; 165 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 166 } 145 167 $row=pg_fetch_assoc($res); 146 $anz=$row["anzahl"]; 147 168 $anz2=$row["anz2"]; // steuert Tabellenform und Ãberschrift 169 if ($dbg > 1) { 170 $anz3=$row["anz3"]; 171 $anz4=$row["anz4"]; 172 echo "\n<p class='dbg'>Anzahl dienende Buchungen Ebene 2: '".$anz2."', Ebene 3: '".$anz3."', Ebene 4: '".$anz4."'</p>"; 173 } 148 174 echo "\n<hr>\n\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''>"; 149 if ($anz > 0) { // auch "Rechte an"175 if ($anz2 > 0) { // auch "Rechte an", also dienende B. 150 176 echo " Rechte und Flurstücke</h3>\n<table class='fs'>"; 151 // zusaetzliche Kopfzeile "Rechte"152 echo "\n<tr>"153 ."\n\t<td> </td>"154 ."\n\t<td class=' dien' title='herrschendes Grundstück'>herrschendeBuchungsart</td>"155 ."\n\t<td class=' dien'>Anteil</td>"156 ."\n\t<td class=' dien'>Bezirk</td>"157 ."\n\t<td class=' dien'>Blatt</td>"158 ."\n\t<td class=' dien'>BVNR</td>"159 ."\n\t<td class=' dien' title='dienendes Grundstück'>Buchungsart</td>"160 ."\n\t<td > </td>"177 echo "\n<tr>" // zus. Kopfz. "Rechte" vor FS 178 ."\n\t<td class='heads' title='laufende Nummer Bestandsverzeichnis (BVNR) = Grundstück'>\n\t\t<span class='wichtig'>BVNR</span>" 179 ."\n\t\t<img src='ico/sort.png' width='10' height='10' alt='' title='primäre Sortierung'>\n\t</td>" 180 ."\n\t<td class='head dien' title='herrschendes Grundstück'>Buchungsart</td>" 181 ."\n\t<td class='head dien'>Anteil</td>" 182 ."\n\t<td class='head dien'>Bezirk</td>" 183 ."\n\t<td class='head dien'>Blatt</td>" 184 ."\n\t<td class='head dien'>BVNR</td>" 185 ."\n\t<td class='head dien'> </td>" 186 ."\n\t<td class='head dien'> </td>" 161 187 ."\n</tr>"; 162 } else { // keine Rechte an, nur F lurstÃŒcke gebucht188 } else { // keine Rechte an, nur FS 163 189 echo " Flurstücke</h3>\n<table class='fs'>"; 164 190 } 165 166 // gemeinsame Kopfzeile "Buchung + FlurstÃŒck" 167 echo "\n<tr>" 168 ."\n\t<td class='heads' title='laufende Nummer Bestandsverzeichnis (BVNR) = Grundstück'><span class='wichtig'>BVNR</span><img src='ico/sort.png' width='10' height='10' alt='' title='primäre Sortierung'></td>" 169 ."\n\t<td class='head'>Buchungsart</td>" 170 ."\n\t<td class='head'> </td>" 191 echo "\n<tr>"; // Kopfzeile "FlurstÃŒck" 192 if ($anz2 > 0) { // BS und FS 193 echo "\n\t<td class='head'> </td>" 194 ."\n\t<td class='head'> </td>"; 195 } else { // nur FS 196 echo "\n\t<td class='heads' title='laufende Nummer Bestandsverzeichnis (BVNR) = Grundstück'>\n\t\t<span class='wichtig'>BVNR</span>" 197 ."\n\t\t<img src='ico/sort.png' width='10' height='10' alt='' title='primäre Sortierung'>" 198 ."\n\t</td>" 199 ."\n\t<td class='head'>Buchungsart</td>"; 200 } 201 echo "\n\t<td class='head'> </td>" 171 202 ."\n\t<td class='heads'>Gemarkung</td>" 172 203 ."\n\t<td class='heads'>Flur</td>" 173 204 ."\n\t<td class='heads fsnr' title='Flurstücksnummer (Zähler / Nenner)'><span class='wichtig'>Flurst.</span></td>" 174 ."\n\t<td class='head fla g'>Fläche</td>"205 ."\n\t<td class='head fla'>Fläche</td>" 175 206 ."\n\t<td class='head nwlink noprint' title='Verlinkung zu anderen Nachweis-Arten und verbundenen Objekten'>weitere Auskunft</td>" 176 207 ."\n</tr>"; 177 208 178 // Blatt -> B u c h u n g s s t e l l e 209 // Blatt -> B u c h u n g s s t e l l e (oberste Ebene 1, GrundstÃŒck oder herrschend). Relation istBestandteilVon 179 210 // aktuelles ax_buchungsblatt <istBestandteilVon< ax_buchungsstelle 180 211 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer AS lfd, s.beschreibungdesumfangsderbuchung AS udb, s.zaehler, s.nenner, 181 212 s.nummerimaufteilungsplan AS nrap, s.beschreibungdessondereigentums AS sond, b.beschreibung as bart, b.dokumentation 182 FROM ax_buchungsstelle s LEFT JOIN ax_buchungsart_buchungsstelle b ON s.buchungsart = b.wert 213 FROM ax_buchungsstelle s 214 LEFT JOIN ax_buchungsart_buchungsstelle b ON s.buchungsart = b.wert 183 215 WHERE s.istbestandteilvon= $1 AND s.endet IS NULL ORDER BY cast(s.laufendenummer AS integer);"; 184 $v=array($gmlid); // Rel. istBestandteilVon216 $v=array($gmlid); 185 217 $res=pg_prepare("", $sql); 186 218 $res=pg_execute("", $v); 187 219 if (!$res) { 188 220 echo "\n<p class='err'>Fehler bei Buchung.</p>"; 189 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 190 } 191 $i=0; 192 $fscnt=0; 221 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 222 } 223 $i=0; // ZÀhler Buchungs-Stellen auf oberer Ebene 193 224 $zpaar=false; 194 while($row = pg_fetch_assoc($res)) { // Loop Buchungsstelle (GrundstÃŒck) 225 $altlfdnr=''; // GW 226 227 while($row = pg_fetch_assoc($res)) { // Loop Buchungsstellen der 1. Ebene (herrschend oder nur FS) 228 $i++; 229 $gml_bs=$row["gml_id"]; // gml der Buchungsstelle 195 230 $lfdnr=$row["lfd"]; 196 $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 197 $gml_bs=$row["gml_id"]; // id der buchungsstelle 198 $bartkey=$row["buchungsart"]; // SchlÃŒsselwert 231 $bartkey=$row["buchungsart"]; // Key 199 232 $bart=$row["bart"]; // BuchungsART Text dazu 200 $bartstory=htmlentities($row["dokumentation"], ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet 201 if ($row["zaehler"] == "") { 202 $anteil = ""; 203 } else { 204 $anteil = $row["zaehler"]."/".$row["nenner"]; 205 } 206 if ($zpaar) {$trclass='paa';} else {$trclass='unp';} // Farbwechsel je GrundstÃŒck 233 $bartstory=htmlentities($row["dokumentation"], ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet 234 if ($row["zaehler"] == "") {$anteil = "";} 235 else {$anteil = $row["zaehler"]."/".$row["nenner"];} 236 if ($zpaar) {$trclass='paa';} else {$trclass='unp';} // Farbwechsel je Buchung auf Ebene 1 207 237 $zpaar=!$zpaar; 208 238 209 // F l u r s t u e c k s d a t e n zur direkten Buchungsstelle 210 $j = bnw_fsdaten($lfdnr, $gml_bs, $bart, $anteil, true, $bartkey, $bartstory); // return=Anzahl der FS 211 $fscnt=$fscnt + $j; 212 if ($j === 0) { // k e i n e Flurstuecke gefunden (Miteigentumsnteil usw.) 213 // Bei "normalen" Grundstuecken wurden hier Flurstuecksdaten gefunden und ausgegeben. 214 // Bei Miteigentumsanteil, Erbbaurecht usw. muss nach den "dienenden" Buchungsstellen gesucht werden, darauf sind die FS gebucht. 215 // Buchungsstelle >an/zu> (andere)Buchungsstelle >istBestandTeilVon> "FiktivesBlatt (ohne) Eigentuemer" 216 217 // dann andere "dienende" Buchungsstellen 218 // sh=herrschend sd=dienend 219 // ax_buchungsstelle >zu> ax_buchungsstelle (des gleichen Blattes) 220 // ax_buchungsstelle >an> ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an) 221 222 // Mit "UNION" um die FÀlle mit JOIN ÃŒber die Arrays "an" und "zu" unterscheiden zu können 223 $sql="SELECT uni.*, wb.beschreibung AS bart FROM " 224 ."(SELECT sda.gml_id, sda.buchungsart, sda.laufendenummer AS lfd, sda.beschreibungdesumfangsderbuchung AS udb, sda.nummerimaufteilungsplan AS nrap, sda.beschreibungdessondereigentums AS sond, 'an' as anzu " 225 ."FROM ax_buchungsstelle sha JOIN ax_buchungsstelle sda ON sda.gml_id=ANY(sha.an) " 226 ."WHERE sha.gml_id= $1 AND sha.endet IS NULL AND sda.endet IS NULL " 227 ."UNION SELECT sdz.gml_id, sdz.buchungsart, sdz.laufendenummer AS lfd, sdz.beschreibungdesumfangsderbuchung AS udb, sdz.nummerimaufteilungsplan AS nrap, sdz.beschreibungdessondereigentums AS sond, 'zu' as anzu " 228 ."FROM ax_buchungsstelle shz JOIN ax_buchungsstelle sdz ON sdz.gml_id=ANY(shz.zu) " 229 ."WHERE shz.gml_id= $1 AND shz.endet IS NULL AND sdz.endet IS NULL " 230 .") AS uni LEFT JOIN ax_buchungsart_buchungsstelle wb ON uni.buchungsart = wb.wert " 231 ."ORDER BY uni.lfd;"; 232 // Testfall suchen: SELECT gml_id, zu, durch FROM ax_buchungsstelle WHERE NOT zu IS NULL OR NOT durch IS NULL; 233 // Die Relationen "zu" und "durch" kommen in der Praxis nicht vor. 234 235 $v=array($gml_bs); // gml_id der "herrschenden" Buchungs-Stelle 236 $resan=pg_prepare("", $sql); // Suche nach "dienender" Buchungsstelle 237 $resan=pg_execute("", $v); 238 if (!$resan) { 239 echo "\n<p class='err'>Fehler bei 'andere Buchungsstelle'.</p>"; 240 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gml_bs."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 239 if ($bartkey <= 1102) { // (aufgeteiltes) GrundstÃŒck 240 241 $zeianz = bnw_fsdaten($gml_bs, true); // FlurstÃŒcksdaten zur direkten Buchungsstelle 242 if ($zeianz === 0) {echo "\n<tr class='".$trclass."'>\n\t<td></td>\n\t<td colspan='7'><p class='warn'>Keine Flurstücke im berechtigten Bereich.</p></td>\n\t<td></td>\n</tr>";} 243 244 } else { // herrschende Buchung 245 246 bnw_bszeile_h(); // Die herrschende Buchung, aus Global 247 248 $altlfdnr=$lfdnr; 249 250 if ($row["nrap"] != "") { // Nr im Auft.Plan 251 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>"; 241 252 } 242 253 243 $a=0; // count 244 $altbvnr=""; // Gruppenwechsel 245 while($rowan= pg_fetch_assoc($resan)) { 246 $lfdnran=$rowan["lfd"]; // BVNR an 247 $gml_bsan=$rowan["gml_id"]; // id der buchungsstelle an 248 $baan=$rowan["bart"]; // Buchungsart an, entschluesselt 249 $anzu=$rowan["anzu"]; // Welche Relation? Recht an oder Recht zu ? 250 251 // dienende Buchungsstelle 252 $sql ="SELECT b.gml_id, b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, b.blattart, wb.beschreibung AS blattartv, z.bezeichnung AS beznam " 253 ."FROM ax_buchungsblatt b JOIN ax_buchungsstelle s ON b.gml_id=s.istbestandteilvon " 254 ."LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk " 255 ."LEFT JOIN ax_blattart_buchungsblatt wb ON b.blattart = wb.wert " 256 ."WHERE s.gml_id= $1 AND b.endet IS NULL AND s.endet IS NULL AND z.endet IS NULL ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 257 $v=array($gml_bsan); 258 $fbres=pg_prepare("", $sql); 259 $fbres=pg_execute("", $v); 260 if (!$fbres) { 261 echo "\n<p class='err'>Fehler bei fiktivem Blatt.</p>"; 262 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( str_replace("$1", "'".$gml_bsan."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 263 } 264 $b=0; 265 while($fbrow = pg_fetch_assoc($fbres)) { // genau 1 266 $fbgml=$fbrow["gml_id"]; 267 $fbland=$fbrow["land"]; 268 $fbbez=$fbrow["bezirk"]; 269 $beznam=$fbrow["beznam"]; 270 $fbblatt=ltrim($fbrow["blatt"], "0"); 271 $fbbartkey=$fbrow["blattart"]; // Key 272 $fbbart=$fbrow["blattartv"]; // Value 273 $b++; 274 } 275 if ($b != 1) { // Ãberwachen: genau 1? 276 echo "\n<p class='err'>Anzahl fiktive Blätter zu anderer Buchungstelle = ".$b."</p>"; 277 } 278 // Grundbuchdaten zur dienenden Buchungsstelle 279 echo "\n<tr class='".$trclass."'>" 280 ."\n\t<td id='bvnr".$lfdnr."'>"; // Sp.1 Erbbau BVNR, Sprungmarke 281 if($bvnr === $altbvnr) { // gleiches Grundstueck 282 echo " "; // dann Anzeige unterdruecken 283 } else { 284 // echo "<a id='bvnr".$lfdnr."'></a>" // Sprungmarke 285 echo "<span class='wichtig'>".$bvnr."</span>"; 286 $altbvnr = $bvnr; // Gruppenwechsel merken 287 } 288 echo "</td>" 289 ."\n\t<td class='dien'>"; // Sp.2 Buchung 290 if ($showkey) {echo "<span class='key'>".$row["buchungsart"]."</span> ";} 291 echo $bart." an</td>" 292 ."\n\t<td class='dien'>".$anteil."</td>" // Sp.3 Anteil 293 ."\n\t<td class='dien' title='Grundbuch-Bezirk'>"; // Sp.4 Gemarkg., hier Bezirk 294 if ($showkey) {echo "<span class='key'>".$fbbez."</span> ";} 295 echo htmlentities($beznam, ENT_QUOTES, "UTF-8") 296 ."</td>"; 297 echo "\n\t<td class='dien' title='".$fbbart."'>".$fbblatt."</td>" // Sp. 5 Blatt 298 ."\n\t<td class='dien' title='Bestandsverzeichnis-Nummer'>".str_pad($lfdnran, 4, "0", STR_PAD_LEFT)."</td>" // Sp.6 BVNR 299 ."\n\t<td class='dien' title='Buchungsart'>"; // Sp.7 Buchungsart 300 if ($showkey) {echo "<span class='key'>".$rowan["buchungsart"]."</span> ";} 301 echo $baan." " 302 ."</td>" 303 ."\n\t<td>" // Sp.8 Link ("an" oder "zu"?) 304 ."\n\t\t<p class='nwlink noprint'>".$anzu; // Recht "an" oder "zu" 305 306 // Buchung 307 // +++ <a gsnachw 308 309 // Bestand 310 if ($showkey) {echo " <span class='key'>".$fbbartkey."</span>";} // Blatt-Art SchlÃŒssel 311 echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&gmlid=".$fbgml; 312 if ($showkey) {echo "&showkey=j";} 313 echo "#bvnr".$lfdnran // Sprungmarke auf der Seite 314 ."' title='Zum Grundbuchnachweis des dienenden Blattes'>"; 315 echo $fbbart // Blatt-Art entschlÃŒsselt 316 ." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>"; 317 318 echo "\n\t\t</p>" 319 ."\n\t</td>" 320 ."\n</tr>"; 321 322 // Flurstuecksdaten zur dienenden Buchungsstelle 323 // Buchungsart wird nur in erster Zeile ausgegeben, hier leer 324 $aj = bnw_fsdaten($lfdnran, $gml_bsan, "", $anteil, false, "", ""); // return=Anz.FS 325 $fscnt=$fscnt + $aj; 326 if ($rowan["nrap"] != "") { 327 echo "\n<tr>" 328 ."\n\t<td class='sond' colspan=8>Nr. im Aufteilungsplan: ".$rowan["nrap"]."</td>" 329 ."\n</tr>"; 330 } 331 if ($rowan["sond"] != "") { 332 echo "\n<tr>" 333 ."\n\t<td class='sond' colspan=8>Verbunden mit dem Sondereigentum an: ".htmlentities($rowan["sond"], ENT_QUOTES, "UTF-8")."</td>" 334 ."\n</tr>"; 335 } 336 $a++; 254 if ($row["sond"] != "") { // Sondereigentumsbeschreibung 255 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>"; 337 256 } 338 if ($a === 0) { 339 echo "\n<tr class='".$trclass."'>" 340 ."\n\t<td><span class='wichtig'>".$bvnr."</span></td>" 341 ."\n\t<td colspan=7><p class='warn'>Keine Flurstücke zu Buchung ".$bvnr." im berechtigten Bereich.</p></td>" 342 ."\n</tr>"; 343 } 344 } 345 $i++; 346 if ($row["nrap"] != "") { // Nr im Auft.Plan 347 echo "\n<tr>" 348 ."\n\t<td class='nrap' colspan=8>Nummer <span class='wichtig'>".$row["nrap"]."</span> im Aufteilungsplan.</td>" 349 ."\n</tr>"; 350 } 351 if ($row["sond"] != "") { // Sondereigentumsbeschreibung 352 echo "\n<tr>" 353 ."\n\t<td class='sond' colspan=8>Verbunden mit dem Sondereigentum an: ".$row["sond"]."</td>" 354 ."\n</tr>"; 355 } // Ende Buchungsstelle/BVNR 356 } // Ende Loop 257 258 $tiefer = bnw_bsdaten($gml_bs, 2); // dienend, recursiv Ebenen 2,3,4 259 260 } 261 } 357 262 echo "\n</table>"; 358 359 if ($i === 0) { 360 echo "\n<p class='err'>Keine Buchung gefunden.</p>"; 361 } else { 362 if ($i > 5 and $fscnt > 5) { // nur wenn nicht auf einen Blick zu erkennen 363 echo "\n<p class='cnt'>".$i." Buchungen mit ".$fscnt." Flurstücken</p>"; 364 } 365 } 366 367 // B e r e c h t i g t e Buchungsblaetter mit Recht an/zu dem aktuellen (fiktiven?) Blatt 263 if ($i === 0) {echo "\n<p class='err'>Keine Buchung gefunden.</p>";} 264 pg_free_result($res); 265 266 // B e r e c h t i g t e BuchungsblÀtter mit Recht an dem aktuellen (fiktiven?) Blatt 368 267 369 268 // bf sf sb bb … … 374 273 FROM ax_buchungsstelle sf JOIN ax_buchungsstelle sb ON (sf.gml_id=ANY(sb.an) OR sf.gml_id=ANY(sb.zu)) 375 274 JOIN ax_buchungsblatt bb ON bb.gml_id=sb.istbestandteilvon 376 LEFT JOIN ax_buchungsblattbezirk bz ON bb.land=bz.land AND bb.bezirk=bz.bezirk 377 LEFT JOIN ax_dienststelle d ON bz.land=d.land AND bz.gehoertzu_stelle=d.stelle 378 LEFT JOIN ax_blattart_buchungsblatt wa ON bb.blattart = wa.wert275 LEFT JOIN ax_buchungsblattbezirk bz ON bb.land=bz.land AND bb.bezirk=bz.bezirk ".UnqKatAmt("bb","bz") 276 ."LEFT JOIN ax_dienststelle d ON bz.land=d.land AND bz.gehoertzu_stelle=d.stelle ".UnqKatAmt("bz","d") 277 ."LEFT JOIN ax_blattart_buchungsblatt wa ON bb.blattart = wa.wert 379 278 LEFT JOIN ax_buchungsart_buchungsstelle wb ON sb.buchungsart = wb.wert 380 279 LEFT JOIN ax_behoerde wd ON d.stellenart = wd.wert … … 387 286 if (!$resb) { 388 287 echo "\n<p class='err'>Fehler bei 'Berechtigte Blätter.</p>"; 389 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}288 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 390 289 } 391 290 $b=0; // count: Buchungen / BlÀtter … … 421 320 $zpaar=!$zpaar; 422 321 423 echo "\n<tr class='".$trclass."'>"; // Der Teil "berechtigte GrundbÃŒcher" ist sortiert wie oberer Teil "FlurstÃŒcke"322 echo "\n<tr class='".$trclass."'>"; // Der Teil "berechtigte GrundbÃŒcher" ist nach BVNR sortiert wie oberer Teil "FlurstÃŒcke" 424 323 echo "\n\t<td><span class='wichtig'>".$anlfdnr0."</span></td>" 425 324 ."\n\t<td>"; // Amtsgericht,Grundbuchamt … … 440 339 ."\n\t<td>" 441 340 ."\n\t\t<p class='nwlink noprint'>"; 341 442 342 // Bestand 443 343 if ($showkey) {echo "<span class='key'>".$blart."</span> ";} 444 344 echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&gmlid=".$gml_b; 445 345 if ($showkey) {echo "&showkey=j";} 446 echo "#bvnr".$lfdnr."' title='Nachweis des berechtigten Blattes an einer Buchung auf ".$blattart."'>".$rowb["blattartv"]; // "an" ggf. durch "zu" ersetzen?346 echo "#bvnr".$lfdnr."' title='Nachweis des berechtigten Blattes an einer Buchung auf ".$blattart."'>".$rowb["blattartv"]; 447 347 echo " \n\t\t\t<img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>"; 448 348 echo "\n\t\t</p>" … … 461 361 } 462 362 } 463 464 echo "\n<div class='buttonbereich noprint'><hr>" 465 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> " 466 ."\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> "; 363 pg_free_result($resb); 364 365 echo "\n<div class='buttonbereich noprint'>\n<hr>" 366 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 367 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 467 368 if ($blattkey == 5000) { // Nicht bei "fiktives Blatt" 468 369 echo "\n\t<img src='ico/download_gb_no.png' width='32' height='16' alt='Export' title='Für ein fiktives Blatt ohne Eigentümer ist ein CSV-Export nicht sinnvoll.'>"; -
trunk/info/info/alkisn/alkisexport.php
r422 r425 1 1 <?php 2 2 /* Modul alkisexport.php 3 3 4 CSV-Export von ALKIS-Daten zu einem Flurstueck, Grundbuch, EigentÃŒmer oder StraÃe. 4 5 Es wird eine GML-ID ÃŒbergeben. 5 6 Es wird ein gespeicherter View verwendet, der nach der gml_id gefiltert wird. 6 Der View verkettet Flurstueck - Buchungsstelle - Grundbuch - Eigent uemer7 Der View verkettet Flurstueck - Buchungsstelle - Grundbuch - EigentÃŒmer 7 8 Die Lagebezeichnung des FlurstÃŒcks wird in ein Feld komprimiert. 8 9 Parameter Beispiele: … … 21 22 Version: 22 23 -------- 23 2016-02-23 Version f uer norGIS-ALKIS-Import24 2016-02-23 Version fÃŒr norGIS-ALKIS-Import 24 25 .... 25 26 2018-05-03 Aufruf aus neuem GrundstÃŒcksnachweis: tabtyp='buchung', angepasster View "exp_csv" notwendig 26 27 2018-10-16 Neuer Aufruf-Typ aus der rÀumlichen Selektion, &tabtyp=flstliste&prefix=DENW15&gmlliste=AL...,AL.... 27 28 2020-12-16 Input-Validation und Strict Comparisation (===), BerechtigungsprÃŒfung vorÃŒbergehend deaktiviert 29 2021-12-01 Client-Encoding 28 30 29 31 ToDo: 32 - In den gespeicherten Views "exp_csv" und "exp_csv_str" den Fall Kataster-Amts-Mix berÃŒcksichtigen. 30 33 - Abruf FlurstÃŒck sollte auch mit "fskennz" (ggg-ff-zzz/nn) statt "gml-id" möglich sein 31 34 - In Dateiname den StraÃennamen statt der gmlid verwenden? (Umlaute?) … … 53 56 $sneu=$row["bezeichnung"]; 54 57 if ($sneu === $salt) { // gleiche Str. 55 $lagehsnr.=$row["hausnummer"]; // HsNr dran h aengen56 } else { // Name UND HsNr dran haengen58 $lagehsnr.=$row["hausnummer"]; // HsNr dran hÀngen 59 } else { // Name UND HsNr dran hÀngen 57 60 $lagehsnr.=$sneu." ".$row["hausnummer"]; 58 61 } 59 $salt=$sneu; // Name f. n aechste Runde62 $salt=$sneu; // Name f. nÀchste Runde 60 63 $j++; 61 64 } … … 64 67 } 65 68 66 // HIER START //67 68 $tabtyp=''; $haus=''; // mögliche Parameter initialisieren69 // HIER START 70 71 $tabtyp=''; $haus=''; // Var. init. 69 72 $cntget = extract($_GET); // Parameter in Variable umwandeln 70 73 … … 99 102 include "alkisfkt.php"; 100 103 101 // BerechtigungsprÃŒfung f uer CSV vorÃŒbergehend deaktiviert weil darin HTML-Meldungen ausgegeben werden.104 // BerechtigungsprÃŒfung fÃŒr CSV vorÃŒbergehend deaktiviert weil darin HTML-Meldungen ausgegeben werden. 102 105 // ggf. dies per Option verhindern und wieder aktivieren. 103 106 //$erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('Abbruch'); } 104 107 105 if ($tabtyp === '') { // Parameter (-kombinationen) pr uefen108 if ($tabtyp === '') { // Parameter (-kombinationen) prÃŒfen 106 109 if ($gemarkung != '') { // Dieser Parameters bestimmt auch eindeutig den $tabtyp 107 110 $tabtyp = 'gemarkung'; … … 176 179 echo "\n".$err; exit($err); 177 180 } 178 pg_set_client_encoding($con, 'LATIN1'); // FÃŒr Excel kein UTF8 181 //pg_set_client_encoding($con, 'LATIN1'); // FÃŒr Excel kein UTF8 182 pg_set_client_encoding($con, 'WIN1252'); // Auch Buchstaben z.B. mit "CARON", wie ÅŸ Åœ Å¡ Å 179 183 180 184 //$viewname="exp_csv"; // Standard-View, in der DB gespeichert … … 211 215 212 216 case 'flstliste': 213 // Ganze IN-Liste als $1 in SQL bringt kein Ergebnis.214 217 // GML-ID aufgeteilt: 6 Byte konstant, 10 Byte variabel in Liste 215 //$prefix vor JEDES Element setzen oder mit Substrings suchen?216 // $sql="SELECT * FROM exp_csv WHERE fsgml IN ('".str_replace(",", "','", $gmlliste)."')"; // komplette GML-ID in Liste217 218 $sql="SELECT * FROM exp_csv WHERE substring(fsgml from 1 for 6) = $1 " 218 219 ." AND substring(fsgml from 7 for 10) IN ('".str_replace(",", "','", $gmlliste)."')"; … … 234 235 // // - Sonst ggf. Ausgabe Kreisgebiet 235 236 // } else { // als zusÀtzlicher Filter AND 237 236 238 $sql.=" AND fall='".$haus."' "; // m/o-Filter AnhÀngen 239 237 240 // } 238 241 } -
trunk/info/info/alkisn/alkisfkt.php
r422 r425 6 6 7 7 Version: 8 2016-02-24 Version f uer norGIS-ALKIS-Import, "function linkgml" raus. Case-EntschlÃŒsselung raus.8 2016-02-24 Version fÃŒr norGIS-ALKIS-Import, "function linkgml" raus. Case-EntschlÃŒsselung raus. 9 9 .... 10 10 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] fÃŒr Einsatz hinter Gateway mit Ãnderung des Pfades (Docker/QWC2) … … 12 12 2020-12-15 Input-Validation und Strict Comparisation (===) 13 13 2020-12-16 Sonderfall QWC2 API-Gateway-Umleitung bei Selbstverlinkung 14 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 15 Footer: Umschalter fÃŒr SchlÃŒssel und Debug unabhÀngig benutzbar. Authentifizierung aus QWC2 nicht hier behandeln. 16 2021-12-30 Bestandsnachweis recursiv ÃŒber alle Buchungs-Ebenen 17 18 ++ ToDo: 19 - Parameter $lnkclass in eigentuemer() und $jfenster in buchung_anzg() vereinheitlichen 14 20 */ 15 21 … … 17 23 // Aus der Server-Variable den Pfad entfernen. 18 24 global $pfadlos_selbstlink; 19 If ($pfadlos_selbstlink === 1) { // pfad-lose Selbstverlinkung hinter einer Umleitung. z.B. QWC2 API-Gateway 20 // Pfad entfernen 25 If ($pfadlos_selbstlink === 1) { // Selbstverlinkung ohne Pfad z.B. hinter QWC2 API-Gateway (Umleitung) 21 26 $mod=strrchr($_SERVER['PHP_SELF'], '/'); 22 27 $mod=substr($mod, 1); … … 29 34 function darf_ich() { 30 35 // Am Anfang jedes Moduls aufrufen um $customer zu fÃŒllen. 31 // Nach EinfÃŒhrung eines automatisch einloggenden anonymen Mapbender-Gast-Benutzers muss dieser bei der Authentifizierung ausgeschlossen werden. 32 global $auth, $customer, $mb_guest_user, $debug; 33 34 if ($auth === "") { // nicht prÃŒfen 35 // if ($debug > 1) {echo "\n<p class='dbg'>keine Berechtigungs-PrÃŒfung</p>";} 36 $customer = "(unbekannt)"; 37 return 1; // alles erlaubt 38 36 // Der automatisch einloggende anonyme Gast-Benutzers muss bei der Authentifizierung ausgeschlossen werden. 37 global $auth, $customer, $mb_guest_user, $dbg; 38 39 if ($auth === "") { // nicht prÃŒfen 40 $customer = ""; // dann anonym 41 return 1; // alles erlaubt 39 42 } elseif ($auth === "mapbender") { 40 41 // if ($debug > 1) {echo "\n<p class='dbg' Berechtigungs-Prüfung Mapbender</p>";}42 43 $customer = ""; 43 44 include '/opt/gdi/mapbender/http/php/mb_validateSession.php'; 44 45 45 46 if (!isset($_SESSION)) { // keine (passende) Session 46 if ($d ebug > 1) {echo "\n<p class='dbg'>Session nicht gesetzt</p>";}47 if ($dbg > 1) {echo "\n<p class='dbg'>Session nicht gesetzt</p>";} 47 48 } elseif ( !isset($_SESSION["mb_user_name"]) ) { 48 if ($d ebug > 1) {echo "\n<p class='dbg'>username nicht gesetzt</p>";}49 if ($dbg > 1) {echo "\n<p class='dbg'>username nicht gesetzt</p>";} 49 50 } else { 50 51 $customer = $_SESSION["mb_user_name"]; // angemeldeter Benutzer 51 52 } 52 //if ($debug > 1) {echo "\n<p class='dbg'>Customer '".$customer."'</p>";}53 53 if ($customer == "") { // Wer bin ich? 54 54 echo "<p class='stop2'>Aufruf nur aus Mapbender erlaubt.</p>"; … … 60 60 return 1; // echter User, ist erlaubt 61 61 } 62 63 } elseif ($auth === "qwc2") {64 65 if ($debug > 1) {echo "\n<p class='dbg'>Berechtigungs-PrÃŒfung QWC2 -GEPLANT-</p>";}66 67 // BAUSTELLE: Hier den Code einfÃŒgen um im QWC2 die Berechtigung zu prÃŒfen und den Benutzer auszulesen.68 // Guggs du: https://git.sourcepole.ch/krz_dt/qwc2/-/issues/7869 70 $customer = "(Unbekannt)";71 echo "<p class='stop2'>Berechtigungsprüfung fÃŒr QWC2 ist noch nicht möglich.</p>";72 return 1; // vorlÀufig erlaubt73 74 62 } else { 75 76 echo "\n<p class='stop2'>Die Berechtigungs-PrÃŒfung ist falsch konfiguriert</p>"; 63 echo "\n<p class='stop2'>Die Berechtigungs-Prüfung ist falsch konfiguriert</p>"; 77 64 return 0; // verboten 78 65 } … … 80 67 81 68 function footer($gmlid, $link, $append) { 82 // Einen Seitenfu ssausgeben.69 // Einen Seitenfuà ausgeben. 83 70 // Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor 84 71 // Den URL-Parameter "&showkey=j/n" umschalten lassen. 85 // $append wird angeh aengt wenn gefuellt. Anwendung: &eig=j bei FS-NW, <yp=m/p/o bei Lage86 global $gkz, $showkey, $hilfeurl, $debug, $ customer;87 88 echo " <footer>";72 // $append wird angehÀngt wenn gefÃŒllt. Anwendung: &eig=j bei FSNW, <yp=m/p/o bei Lage 73 global $gkz, $showkey, $hilfeurl, $debug, $dbg, $customer; 74 75 echo "\n<footer>"; 89 76 // S c r e e n - F o o t 90 echo "\n <div class='confbereich noprint'>"91 ."\n\t <table class='outer'>\n\t<tr>";77 echo "\n\t<div class='confbereich noprint'>" 78 ."\n\t\t<table class='outer'>\n\t\t<tr>"; 92 79 93 80 // Spalte 1: Info Benutzerkennung 94 if (isset($customer) ) { // ÃŒber global von fkt. darf_ich()95 echo "\n\t\t <td title='Info'><i>Benutzer: ".$customer."</i></td>";81 if (isset($customer) and $customer != '') { // ÃŒber global von fkt. darf_ich() 82 echo "\n\t\t\t<td title='Info'><i>Benutzer: ".$customer."</i></td>"; 96 83 } else { 97 echo "\n\t\t <td> </td>";84 echo "\n\t\t\t<td> </td>"; 98 85 } 99 86 100 87 // Spalte 2: Umschalter 101 echo "\n\t\t<td title='Konfiguration'>"; 102 $mylink ="\n\t\t\t<a class='keyswitch' href='".$link."gkz=".$gkz."&gmlid=".$gmlid.$append; 88 echo "\n\t\t\t<td title='Konfiguration'>"; 89 $mylink ="\n\t\t\t\t<a class='keyswitch' href='".$link."gkz=".$gkz."&gmlid=".$gmlid.$append; 90 103 91 if ($showkey) { // Umschalten SchlÃŒssel ein/aus 104 echo $mylink."&showkey=n' title='Verschlüsselungen ausblenden'>Schlüssel aus</a>"; 92 echo $mylink."&showkey=n"; 93 if ($debug > 0 and $dbg == 0) {echo "&nodebug=j";} 94 echo "' title='Verschlüsselungen ausblenden'>Schlüssel aus</a>"; 95 $mylink.="&showkey=j"; 105 96 } else { 106 echo $mylink."&showkey=j' title='Verschlüsselungen anzeigen'>Schlüssel ein</a>"; 107 } 108 if ($debug > 0) { // FÃŒr Entwickler temporÀr eine Ansicht OHNE debug 109 echo "<br>".$mylink."&nodebug=j' title='Debug-Ausgaben temporär abschalten'>Ansicht ohne Testausgaben</a>"; 110 } 111 echo "\n\t\t</td>"; 112 113 // Spalte 3 114 echo "\n\t\t<td title='Hilfe'>" 115 ."\n\t\t\t<p class='nwlink'>\n\t\t\t\t<a target='_blank' href='".$hilfeurl."' title='Dokumentation'>Hilfe zur ALKIS-Auskunft</a>\n\t\t\t</p>\n\t\t</td>" 116 ."\n\t</tr>\n\t</table>" 117 ."\n</div>\n"; 97 echo $mylink."&showkey=j"; 98 if ($debug > 0 and $dbg == 0) {echo "&nodebug=j";} 99 echo "' title='Verschlüsselungen anzeigen'>Schlüssel ein</a>"; 100 $mylink.="&showkey=n"; 101 } 102 103 if ($debug > 0) { // nur fÃŒr Entwicklung 104 if ($dbg > 0) { // temporÀr eine Ansicht OHNE debug 105 echo "<br>".$mylink."&nodebug=j' title='Debug-Ausgaben temporär abschalten'>Testausgaben aus</a>"; 106 } else { // Abschaltung beenden 107 echo "<br>".$mylink."' title='Debug-Ausgaben wie konfiguriert'>Testausgaben ein</a>"; 108 } 109 } 110 111 echo "\n\t\t\t</td>"; 112 113 // Spalte 3: Dokumentation 114 echo "\n\t\t\t<td title='Hilfe'>" 115 ."\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>" 116 ."\n\t\t</tr>\n\t\t</table>" 117 ."\n\t</div>"; 118 118 119 119 // P r i n t - F o o t 120 if (isset($customer) ) {121 echo "\n <p class='onlyprint'><i>Benutzer: ".$customer."</i></p>";122 } 123 124 echo " </footer>";120 if (isset($customer) and $customer != '') { 121 echo "\n\t<p class='onlyprint'><i>Benutzer: ".$customer."</i></p>"; 122 } 123 124 echo "\n</footer>\n"; 125 125 return 0; 126 } 127 128 function UnqKatAmt($t1, $t2){ 129 // 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. Sont bekommt man redundante Treffer. 131 // Benötigt den Alias der zu verbindenden Tabellen. 132 // Liefert einen String zum EinfÃŒgen hinter "JOIN .. ON". 133 global $katAmtMix; // aus Conf 134 if ($katAmtMix){ 135 return "AND substr(".$t1.".gml_id,1,6) = substr(".$t2.".gml_id,1,6) "; 136 } else { 137 return ""; 138 } 126 139 } 127 140 … … 150 163 // $gml_fs: GML-ID des FlurstÃŒcke (nur bei erstem Aufruf in einem FS-Nachweis notwendig) 151 164 // $trtyp: Tabellen-Zeilen-Typ. Werte: 1="mit GS-Link", 2="ohne GS-Link", 3="ohne GS-Link +Zeile einfÀrben" 152 global $gkz, $d ebug, $showkey, $bartgrp, $barttypgrp, $stufe;165 global $gkz, $dbg, $showkey, $bartgrp, $barttypgrp, $stufe, $katAmtMix; 153 166 154 167 $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 … … 156 169 ."FROM ax_buchungsstelle sh " 157 170 ."JOIN ax_buchungsblatt b ON b.gml_id=sh.istbestandteilvon " 158 ."LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk " 171 ."LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ".UnqKatAmt("z","b") 159 172 ."LEFT JOIN ax_buchungsart_buchungsstelle a ON sh.buchungsart = a.wert " // entschl. Buchungsart 160 173 ."LEFT JOIN ax_blattart_buchungsblatt w ON b.blattart = w.wert " // entschl. Blatt-Art … … 166 179 if (!$resbs) { 167 180 echo "\n<p class='err'>Fehler bei 'Buchungsstelle ausgeben'.</p>"; 168 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlbs."'", $sqlbs), ENT_QUOTES, "UTF-8")."</p>";}181 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlbs."'", $sqlbs), ENT_QUOTES, "UTF-8")."</p>";} 169 182 } 170 183 $gezeigt = 0; // Funktionswert default 171 172 if ($rowbs = pg_fetch_assoc($resbs)) { // ein Treffer 184 if ($dbg > 0) { 185 $zeianz=pg_num_rows($resbs); 186 if ($zeianz > 1){ 187 echo "\n<p class='err'>Die Abfrage liefert mehr als eine (".$zeianz.") Buchung!</p>"; 188 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlbs), ENT_QUOTES, "UTF-8")."</p>";} 189 } 190 } 191 if ($rowbs = pg_fetch_assoc($resbs)) { // EIN Treffer 173 192 $blattkeyber=$rowbs["blattart"]; // Schluessel von Blatt-Art des GB 174 if ($blattkeyber != '5000' or $d ebug > 1) { // "Fiktives Blatt" nur bei Entwicklung anzeigen193 if ($blattkeyber != '5000' or $dbg > 1) { // "Fiktives Blatt" nur bei Entwicklung anzeigen 175 194 $gezeigt = 1; // Funktionswert nach Treffer 176 195 $hgml=$rowbs["hgml"]; // GML-ID der (herrschenden) BuchungsStelle … … 218 237 } 219 238 220 // ++ +mehr Abstand oben zur Zeile in .css?239 // ++ mehr Abstand oben zur Zeile in .css? 221 240 echo "\n\t<tr>" // Buchungsart als Zwischenzeile 222 241 ."\n\t\t<td class='ll'><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Buchungsart:</td>" // 1 223 242 ."\n\t\t<td colspan='2' title='".$barttitle."'>"; // 2-3 224 if ($showkey) {echo "<span class='key' >(".$bartkey.")</span> ";}243 if ($showkey) {echo "<span class='key' title='Buchungsart'>(".$bartkey.")</span> ";} 225 244 echo "<span class='wichtig'>".$bart."</span>" 226 245 ."</td>" … … 232 251 echo "\n\t<tr>" // Zeile mit 4 Spalten fÃŒr Buchung und EigentÃŒmer 233 252 ."\n\t\t<td class='ll'><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Buchung:"; // 1 234 if ($showkey and $d ebug > 2) {echo "<br><span class='key'>Stufe ".$stufe."<br>".$hgml."</span> ";}253 if ($showkey and $dbg > 2) {echo "<br><span class='key'>Stufe ".$stufe."<br>".$hgml."</span> ";} 235 254 echo "</td>\n\t\t<td colspan='2'>"; // 2-3 236 255 … … 244 263 ."\n\t\t\t\t<td class='head'>Bezirk</td>" 245 264 ."\n\t\t\t\t<td class='head'>"; 246 if ($showkey) {echo "<span class='key' >".$blattkeyber."</span> ";}265 if ($showkey) {echo "<span class='key' title='Blattart'>(".$blattkeyber.")</span> ";} 247 266 echo $blattartber."</td>" 248 267 ."\n\t\t\t\t<td class='head'>Lfd-Nr</td>" … … 255 274 } 256 275 echo "\n\t\t\t\t<td title='Grundbuchbezirk'>"; 257 if ($showkey) {echo "<span class='key' >".$rowbs["bezirk"]."</span><br>";}276 if ($showkey) {echo "<span class='key' title='GB-Bezirk-Schlüssel'>".$rowbs["bezirk"]."</span><br>";} 258 277 echo $beznam."</td>" 259 278 ."\n\t\t\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$blatt."</span></td>" … … 275 294 echo "\n\t\t<td>"; // 4 276 295 echo "\n\t\t\t<p class='nwlink noprint'>"; 277 // 278 if ($showkey) {echo "<span class='key' >".$blattkeyber."</span> ";}296 // Bestand 297 if ($showkey) {echo "<span class='key' title='Blattart'>(".$blattkeyber.")</span> ";} 279 298 $url="alkisbestnw.php?gkz=".$gkz."&gmlid=".$gbgml; 280 299 if ($showkey) {$url.="&showkey=j";} … … 283 302 ." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>" 284 303 ."</a>"; 285 // 304 // Buchung 286 305 if ($trtyp === 1) { 287 306 echo "<br>"; 288 if ($showkey) {echo "<span class='key' >".$bartkey."</span> ";}307 if ($showkey) {echo "<span class='key' title='Buchungsart'>(".$bartkey.")</span> ";} 289 308 $url="alkisgsnw.php?gkz=".$gkz."&gmlid=".$hgml; 290 309 if ($showkey) {$url.="&showkey=j";} … … 305 324 pg_free_result($resbs); 306 325 307 //if ($d ebug > 1) {echo "\n<p class='dbg'>Ende function buchung_anzg(), Return = ". $gezeigt ."</p>";}326 //if ($dbg > 1) {echo "\n<p class='dbg'>Ende function buchung_anzg(), Return = ". $gezeigt ."</p>";} 308 327 309 328 return $gezeigt; // 1 wenn eine Buchung ausgegeben wurde … … 318 337 // $gml_fs: GML-ID des FlurstÃŒcke (nur bei erstem Aufruf in einem FS-Nachweis notwendig) 319 338 // $gsanfrd: In einem GS-Nachw. die GML-ID der in de URL angeforderten Buchungsstelle (-> Hervorhebung) 320 global $d ebug, $gezeigt;339 global $dbg, $gezeigt; 321 340 322 341 // sh=Buchungstelle herrschend >(Recht)an> sd=Buchungstelle dienend >istBestandteilVon> BLATT -> Bezirk … … 332 351 if (!$resber) { 333 352 echo "\n<p class='err'>Fehler bei 'berechtigte Buchungsstellen'.</p>"; 334 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmls."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}353 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmls."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 335 354 } 336 355 $an=0; … … 370 389 } 371 390 372 function bnw_fsdaten($lfdnr, $gml_bs, $ba, $anteil, $bvnraus, $bartkey, $bartstory) { 373 /* Bestandsnachweis - Flurstuecksdaten 374 Die Tabellenzeilen mit den Flurstuecksdaten zu EINER Buchungsstelle im Bestandsnachweis ausgeben. 375 Die Funktion wird je einmal aufgerufen fÃŒr die Buchungen direkt auf dem GB (Normalfall). 376 Weiterere Aufrufe ggf. bei Erbbaurecht fÃŒr die mit "an" verknuepften Buchungsstellen. 377 Tabellenkopf wird im aufrufenden Programm ausgegeben. */ 378 global $debug, $gkz, $showkey, $filtkreis, $filtgem, $trclass; 379 380 // F L U R S T U E C K 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 381 531 $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche " 382 ."FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer " 532 ."FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 383 533 ."WHERE f.endet IS NULL AND g.endet IS NULL AND f.istgebucht = $1 "; 384 534 if ($filtgem === '') { // ungefiltert … … 392 542 $resf = pg_execute("", $v); 393 543 if (!$resf) {echo "\n<p class='err'>Fehler bei Flurstück</p>";} 394 395 if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben 396 $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 397 } else { 398 $bvnr=""; 399 } 400 $altbvnr=""; // ++ besser mit "$j === 0" steuern? 401 $j=0; 544 $zeianz=pg_num_rows($resf); 402 545 while($rowf = pg_fetch_assoc($resf)) { 403 $flur= $rowf["flurnummer"];404 546 $fskenn=$rowf["zaehler"]; 405 547 if ($rowf["nenner"] != "") { // Bruch … … 409 551 410 552 echo "\n<tr class='".$trclass."'>"; // eine Zeile je Flurstueck 411 // Sp. 1-3 der Tab. aus Buchungsstelle, nicht aus FS 412 if($bvnr === $altbvnr) { // gleiches Grundstueck, leer lassen 413 echo "\n\t<td> </td>" 414 ."\n\t<td> </td>" 415 ."\n\t<td> </td>"; 416 } else { // Sprungmarke, BVNR 417 echo "\n\t<td id='bvnr".$bvnr."'>"; // Sprungmarke 418 // echo "\n\t\t<a id='bvnr".$bvnr."'></a>"; 419 echo "<span class='wichtig'>".$bvnr."</span>" 420 ."\n\t</td>"; 421 422 echo "\n\t<td title ='".$bartstory."'>"; // Buchungsart 423 if ($showkey) {echo "<span class='key'>".$bartkey."</span> ";} // Schluessel 424 echo $ba; // entschluesselt 425 echo "</td>" 426 ."\n\t<td> </td>"; // Anteil 427 } 428 429 // Sp. 4-7 aus Flurstueck 430 echo "\n\t<td>"; 431 if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";} 432 echo $rowf["bezeichnung"]."</td>" 433 ."\n\t<td>".$flur."</td>" 434 ."\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span>" 435 ."</td>" 436 ."\n\t<td class='flag'>".$flae."</td>"; // "width" hier (flaG) erweiterbar, weil in andere Zeile die Buchungsart steht 437 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 438 // if($bvnr != $altbvnr) { 439 if($j === 0) { 440 echo "\n\t\t\t<a href='alkisgsnw.php?gkz=".$gkz."&gmlid=".$gml_bs; 441 if ($showkey) {echo "&showkey=j";} 442 echo "' title='Grundstücksnachweis'>Buchung " 443 ."<img src='ico/Grundstueck_Link.png' width='16' height='16' alt=''>" 444 ."</a>"; 445 446 } 447 echo "\n\t\t\t<a href='alkisfsnw.php?gkz=".$gkz."&gmlid=".$rowf["gml_id"]."&eig=n"; 448 if ($showkey) {echo "&showkey=j";} 449 echo "' title='Flurstücksnachweis'>Flurstück " 450 ."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>" 451 ."</a>" 452 ."\n\t\t</p>\n\t</td>" 453 ."\n</tr>"; 454 $altbvnr=$bvnr; 455 $j++; 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>"; 456 593 } 457 594 pg_free_result($resf); 458 return $ j;595 return $zeianz; 459 596 } 460 597 … … 469 606 // Schleife 1: N a m e n s n u m m e r 470 607 // Beziehung: ax_namensnummer >istBestandteilVon> ax_buchungsblatt 471 global $d ebug, $gkz, $showkey;608 global $dbg, $gkz, $showkey; 472 609 473 610 if ($lnkclass == "") { … … 484 621 ."LEFT JOIN ax_eigentuemerart_namensnummer we ON n.eigentuemerart = we.wert " 485 622 ."WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;"; 486 // +++ LEFT JOIN bis ax_Person statt Person als Schleife zu holen, 487 // VerknÃŒpfungsfeld "benennt" ist leer bei "Beschrieb der Rechtsgemeinschaft". 623 // VerknÃŒpfungsfeld "benennt" ist leer bei "Beschrieb der Rechtsgemeinschaft". 488 624 489 625 $v = array($gmlid); // GB-Blatt … … 493 629 if (!$resn) { 494 630 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; // kein Fehler bei Blattarten > 1000 495 //if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sqln )."</p>";}631 //if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sqln )."</p>";} 496 632 } 497 633 … … 501 637 $namnum=kurz_namnr($rown["lfd"]); 502 638 $rechtsg=$rown["adr"]; 639 $eiartkey=$rown["eigentuemerart"]; // Key 640 $eiart=$rown["eiartv"]; // Value 641 // if ($dbg > 1) {echo "\n<p class='dbg'>Eigentü:merart = '".$eiartkey."' = '".$eiart."'</p>";} 642 503 643 echo "\n\t<tr>"; 504 644 if($n === 0) { // erste EigentÃŒmer-Zeile zu einer Buchung … … 527 667 528 668 // Schleife 2: P e r s o n 529 // +++ bei SQL Namensnummer oben gleich mit JOIN dazu holen, statt dieser Schleife530 669 // Beziehung: ax_person <benennt< ax_namensnummer 531 670 $sqlp="SELECT nachnameoderfirma, vorname, geburtsname, to_char(cast(geburtsdatum AS date),'DD.MM.YYYY') AS geburtsdatum, namensbestandteil, akademischergrad " … … 537 676 if (!$resp) { 538 677 echo "\n\t<p class='err'>Fehler bei Person</p>"; 539 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqlp)."</p>";}678 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqlp)."</p>";} 540 679 } 541 680 … … 550 689 if ($rowp["geburtsname"] != "") {$diePerson.=", geb. ".$rowp["geburtsname"];} 551 690 $diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute 552 $eiartkey=$rown["eigentuemerart"]; // Key553 $eiart=$rown["eiartv"]; // Value554 691 555 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) 556 693 echo "\n\t\t<td>\n\t\t\t<p class='nwlink noprint'>"; // 4 557 if ($showkey AND $eiartkey != '') {echo "<span class='key' title='Eigentümerart'> ".$eiartkey."</span> ";}694 if ($showkey AND $eiartkey != '') {echo "<span class='key' title='Eigentümerart'>(".$eiartkey.")</span> ";} 558 695 echo "\n\t\t\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&gmlid=".$gmlpers; 559 696 if ($showkey) {echo "&showkey=j";} 560 if ($eiartkey == ="") {$eiart="Eigentümer" ;} // Default. Ersatz-Text, wenn nicht gefÃŒllt697 if ($eiartkey == "") {$eiart="Eigentümer" ;} // Default. Ersatz-Text, wenn nicht gefÃŒllt 561 698 echo $lnknach."' title='vollständiger Name und Adresse eines Eigentümers'>".$eiart 562 ." <img src='ico/Eigentuemer.png' width='16' height='16' alt=''></a>\n\t\t\t</p>"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>" 563 700 ."\n\t\t</td>" // 4 564 701 ."\n\t</tr>"; … … 573 710 if (!$resa) { 574 711 echo "\n\t<p class='err'>Fehler bei Adressen</p>"; 575 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqla)."</p>";}712 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqla)."</p>";} 576 713 } 577 714 $j=0; … … 628 765 629 766 if ($i === 0) { // KEINE Person. benennt ist leer. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler 630 if ($rechtsg === 9999) { 631 if ($debug > 1) {echo "\n\t\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";} 632 } else { 767 if ($dbg > 1) {echo "\n\t\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";} 768 if ($rechtsg !== '9999') { 633 769 echo "\n<p class='err'>(Die Person mit der ID '".$gmlpers."' fehlt im Datenbestand)</p>"; 634 770 } … … 646 782 // Dient dazu, SchlÃŒssel-ARRAYs auflösen ohne die Zeile im JOIN mehrfach aufzulisten 647 783 // Anwendung: FS-Nachweis BodenschÀtzung 648 global $d ebug;784 global $dbg; 649 785 650 786 if ($bez === 'e') {$tabelle = 'ax_entstehungsartoderklimastufewasserverhaeltnisse_bodensc';} … … 657 793 if (!$res) { 658 794 echo "\n<p class='err'>Fehler bei Werteliste.</p>"; 659 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";}795 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 660 796 return; 661 797 } … … 668 804 if ($i === 0) { 669 805 echo "(kein Treffer)"; 670 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";}806 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 671 807 } 672 808 return; … … 676 812 // Tabelle im Kopf von FlurstÃŒck und FS-Historie. 2 Z./Sp. Entstehung/FortfÃŒhrung 677 813 // Parameter: Die DB-Spalten "zeitpunktderentstehung", "zeigtaufexternes_art" und "zeigtaufexternes_name" 678 global $d ebug, $showkey;679 680 // if ($d ebug > 2) {echo "<p class='dbg'>function fortfuehrungen<br>1: ".$dbzeart."<br>2: ".$dbzename."</p>";}814 global $dbg, $showkey; 815 816 // if ($dbg > 2) {echo "<p class='dbg'>function fortfuehrungen<br>1: ".$dbzeart."<br>2: ".$dbzename."</p>";} 681 817 682 818 echo "\n\t<table class='fsd'>" // FS-Daten 2 Spalten -
trunk/info/info/alkisn/alkisfshist.php
r422 r425 5 5 Flurstuecks-Historie fuer ein Flurstueckskennzeichen aus ALKIS PostNAS 6 6 Version: 7 2016-02-24 Version f uer norGIS-ALKIS-Import7 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 8 8 .... 9 9 2020-02-20 Authentifizierung ausgelegert in Function darf_ich() 10 10 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 11 11 2020-12-15 Input-Validation und Strict Comparisation (===) 12 2021-12-09 Neuer Parameter $PrntBtn (Drucken-SchaltflÀche) 12 13 */ 13 14 … … 45 46 46 47 function gemkg_name($gkey) { 47 // Schl uessel wird ÃŒbergeben, Name dazu in der DB nachschlagen48 // SchlÃŒssel wird ÃŒbergeben, Name dazu in der DB nachschlagen 48 49 global $con; 49 50 $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 AND g.endet IS NULL LIMIT 1;"; … … 52 53 $res=pg_execute("", $v); 53 54 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";} 54 $ zgmk=0;55 while($row = pg_fetch_assoc($res)) { // eigentlich nur EINE56 $gmkg=$row["bezeichnung"];57 $zgmk++;58 }59 if ($zgmk=== 0) {55 $gmkg=""; 56 $zeianz=pg_num_rows($res); 57 if ($zeianz > 1){ 58 echo "\n<p class='err'>Die Abfrage liefert mehr als eine (".$zeianz.") Gemarkung!</p>"; 59 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gkey."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 60 } elseif ($zeianz === 0) { 60 61 echo "\n<p class='err'>Gemarkung ".$gkey." ist unbekannt.</p>"; 61 62 return; 62 63 } 64 if ($row = pg_fetch_assoc($res)) { 65 $gmkg=$row["bezeichnung"]; 66 } 63 67 return $gmkg; 64 68 } 65 69 66 70 function such_vor_arr($fsk) { 67 // Suchen Vorg aenger zum aktuellen Flurst. Ausgabe von Selbst-Links Zeilenweise in <td>.68 // Akt. FS und hist.FS hat keine Verweise auf Vorg aenger. Darum in den Nachfolger-Verweisen von Hist.-FS suchen.69 global $gkz, $con, $d ebug, $showkey, $filtkreis, $filtgem;71 // Suchen VorgÀnger zum aktuellen Flurst. Ausgabe von Selbst-Links Zeilenweise in <td>. 72 // Akt. FS und hist.FS hat keine Verweise auf VorgÀnger. Darum in den Nachfolger-Verweisen von Hist.-FS suchen. 73 global $gkz, $con, $dbg, $showkey, $filtkreis, $filtgem; 70 74 71 75 $sqlv="SELECT 'h' AS ftyp, h.gml_id, h.flurstueckskennzeichen FROM ax_historischesflurstueck h " … … 79 83 if (!$resv) { 80 84 echo "\n<p class='err'>Fehler bei Vorgänger-FS.</p>"; 81 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$fsk."'", $sqlv)."</p>";}85 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$fsk."'", $sqlv)."</p>";} 82 86 } 83 87 $zv=0; … … 96 100 return; 97 101 } 102 103 // Start 98 104 99 105 ini_set("session.cookie_httponly", 1); … … 141 147 142 148 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 149 $dbg=$debug; // CONF in Arbeits-Variable 143 150 144 151 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 145 // Manuell an die URL anfÃŒgen, wirkt nurtemporÀr und wird nicht in Links weiter gereicht.146 if ($nodebug === "j") {$d ebug=0;}152 // Wirkt temporÀr und wird nicht in Links weiter gereicht. 153 if ($nodebug === "j") {$dbg=0;} 147 154 148 155 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfshist.php'"); … … 155 162 $whereclause="WHERE gml_id= $1 "; 156 163 $v = array($gmlid); 157 } elseif ($fskennz != "") { // Alternativ: Flurst.-Kennz. uebergeben164 } elseif ($fskennz != "") { // Alternativ: Flurst.-Kennz. ÃŒbergeben 158 165 $parmtyp="Flurstückskennzeichen"; 159 166 $parmval=$fskennz; … … 162 169 } else { // Pfui! 163 170 $parmtyp=""; 164 die("Fehlender Parameter"); // bereits geprÃŒft171 die("Fehlender Parameter"); 165 172 } 166 173 167 174 if ($parmtyp != "") { // einer der beiden erlaubten FÀlle 168 // UNION-Abfrage auf 3 Àhnliche Tabellen, darin aber immer nur 1 Treffer.175 // UNION-Abfrage auf 3 Àhnliche Tabellen, darin aber immer nur 1 Treffer. 169 176 $felder="gml_id, flurnummer, cast(zaehler AS character varying), cast(nenner AS character varying), flurstueckskennzeichen, amtlicheflaeche, to_char(cast(zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, gemarkungsnummer, "; 170 177 … … 201 208 $zeart=$rowu["zart"]; 202 209 $zename=$rowu["zname"]; 203 if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // f uer selbst-link-Umschalter ueber footer210 if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fÃŒr selbst-link-Umschalter ÃŒber footer 204 211 205 212 switch ($ftyp) { // Diff. Hist./Akt. … … 226 233 } 227 234 } else { 228 if ($d ebug > 1) {235 if ($dbg > 1) { 229 236 echo "<br><p class='err'>Fehler! Kein Treffer für ".$parmtyp." = '".$parmval."'</p><br>"; 230 if ($d ebug > 2) {237 if ($dbg > 2) { 231 238 echo "<p class='dbg'>SQL=<br>".str_replace("$1", "'".$v[0]."'", $sqlu)."</p>"; 232 239 } … … 297 304 ."\n</table>"; 298 305 299 if ($d ebug > 1) {306 if ($dbg > 1) { 300 307 $z=1; 301 308 while($rowu = pg_fetch_assoc($resu)) { … … 305 312 } 306 313 } 314 echo "<div class='buttonbereich noprint'>\n<hr>" 315 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 316 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 317 echo "\n</div>"; 318 319 footer($gmlid, selbstverlinkung()."?", ""); 307 320 ?> 308 309 <div class='buttonbereich noprint'>310 <hr>311 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 312 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 313 </div>314 315 <?php footer($gmlid, selbstverlinkung()."?", ""); ?>316 321 317 322 </body> -
trunk/info/info/alkisn/alkisfsnw.php
r422 r425 6 6 7 7 Version: 8 2016-02-24 Version f uer norGIS-ALKIS-Import8 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 9 9 ..... 10 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() … … 14 14 2020-12-16 Input-Validation und Strict Comparisation (===) 15 15 2021-03-09 Link zum GebÀudenachweis auch mit "Bauwerke" betiteln 16 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 16 17 17 18 ToDo: 19 - Tabbelle "nutz_21" ist ein Relikt von NorGIS/ALB und könnte in spÀteren Versionen fehlen. 18 20 - Buchung auf "fiktives Blatt" ist nur mit debug zu sehen: die <tr> in .css grau hinterlegen 19 21 - "Umschalter" (gleiches Modul) anders darstellen als Links zu ANDEREN Nachweisen … … 69 71 <?php 70 72 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 73 $dbg=$debug; // CONF in Arbeits-Variable 71 74 72 75 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. Blendet z.B. "fiktives Blatt" aus. 73 // Manuell an die URL anfÃŒgen, wirkt nurtemporÀr und wird nicht in Links weiter gereicht.74 if ($nodebug === "j") {$d ebug=0;}76 // Wirkt temporÀr und wird nicht in Links weiter gereicht. 77 if ($nodebug === "j") {$dbg=0;} 75 78 76 79 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfsnw.php'"); … … 99 102 to_char(cast(f.zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, f.istgebucht, g.gemarkungsnummer, g.bezeichnung, r.bezeichnung AS rbez, k.bezeichnung AS kbez, m.bezeichnung AS mbez 100 103 FROM ax_flurstueck f 101 LEFT JOIN ax_gemarkung g ON f.gemeindezugehoerigkeit_land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 102 LEFT JOIN ax_regierungsbezirk r ON f.gemeindezugehoerigkeit_regierungsbezirk=r.regierungsbezirk 103 LEFT JOIN ax_kreisregion k ON f.gemeindezugehoerigkeit_regierungsbezirk=k.regierungsbezirk AND f.gemeindezugehoerigkeit_kreis=k.kreis 104 LEFT JOIN ax_gemeinde m ON m.regierungsbezirk=f.gemeindezugehoerigkeit_regierungsbezirk AND m.kreis=f.gemeindezugehoerigkeit_kreis AND m.gemeinde=f.gemeindezugehoerigkeit_gemeinde 105 WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL AND m.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL;";104 LEFT JOIN ax_gemarkung g ON f.gemeindezugehoerigkeit_land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 105 ."LEFT JOIN ax_regierungsbezirk r ON f.gemeindezugehoerigkeit_regierungsbezirk=r.regierungsbezirk ".UnqKatAmt("f","r") 106 ."LEFT JOIN ax_kreisregion k ON f.gemeindezugehoerigkeit_regierungsbezirk=k.regierungsbezirk AND f.gemeindezugehoerigkeit_kreis=k.kreis ".UnqKatAmt("f","k") 107 ."LEFT JOIN ax_gemeinde m ON m.regierungsbezirk=f.gemeindezugehoerigkeit_regierungsbezirk AND m.kreis=f.gemeindezugehoerigkeit_kreis AND m.gemeinde=f.gemeindezugehoerigkeit_gemeinde ".UnqKatAmt("f","m") 108 ."WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL AND m.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL;"; 106 109 107 110 $v = array($gmlid); // mit gml_id suchen … … 110 113 if (!$res) { 111 114 echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>"; 112 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 115 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 116 } 117 if ($dbg > 0) { 118 $zeianz=pg_num_rows($res); 119 if ($zeianz > 1){ 120 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Flurstücks-Objekt!</p>"; 121 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 122 } 113 123 } 114 124 if ($row = pg_fetch_assoc($res)) { … … 137 147 } else { 138 148 echo "\n<p class='err'>Fehler! Kein Treffer für Flurstück mit gml_id=".$gmlid."</p>"; 139 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";}149 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 140 150 echo "\n</body>\n</html>"; 141 151 return; … … 155 165 if ( ($filtkreis != '' and $filtkreis != $kreis) or ($filtgem != '' and $filtgem != $gemeinde) ) { 156 166 // Einer der gesetzten Filter passt nicht 157 if ($d ebug > 2) { //++ Schönes Bild? Stop-Zeichen?167 if ($dbg > 2) { //++ Schönes Bild? Stop-Zeichen? 158 168 echo "\n<p class='err'>Filter Kreis='".$filtkreis."', Gemeinde='".$filtgem."'</p>" 159 169 ."\n<p class='err'>Flstk. Kreis='".$fskrs."', Gemeinde='".$fsgem."'</p>"; … … 180 190 181 191 echo "\n<hr>\n<table class='fs'>"; // FS-Teil 6 Spalten 182 echo "\n<tr>\n\t \t<td></td>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>" // 1-5 in erster Zeile kein "colspan" verwenden183 ."\n\t \t<td>\n\t\t<p class='nwlink noprint'>weitere Auskunft:</p></td>" // 6192 echo "\n<tr>\n\t<td></td>\n\t<td></td>\n\t<td></td>\n\t<td></td>\n\t<td></td>" // 1-5 in erster Zeile kein "colspan" verwenden 193 ."\n\t<td><p class='nwlink noprint'>weitere Auskunft:</p></td>" 184 194 ."\n</tr>"; 185 195 186 196 echo "\n<tr>" // Zeile: G e b i e t s z u g e h o e r i g k e i t Gemeinde / Kreis / Regierungsbezirk 187 ."\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.png' width='16' height='16' alt=''> Gebiet:</td>" // 1188 ."\n\t<td>Gemeinde<br>Kreis<br>Regierungsbezirk</td>" // 2197 ."\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.png' width='16' height='16' alt=''> Gebiet:</td>" 198 ."\n\t<td>Gemeinde<br>Kreis<br>Regierungsbezirk</td>" 189 199 ."\n\t<td class='lr' colspan='3'>"; // 3-5 190 200 if ($showkey) {echo "<span class='key'>(".$gemeinde.")</span> ";} … … 195 205 echo $rbez 196 206 ."</td>" 197 ."\n\t<td class='nwlink'>" // 5 198 ."\n\t\t<p class='nwlink noprint'>" 207 ."\n\t<td class='nwlink'>"; 208 if ($fsHistorie){ // conf 209 echo "\n\t\t<p class='nwlink noprint'>" 199 210 ."\n\t\t\t<a href='alkisfshist.php?gkz=".$gkz."&gmlid=".$gmlid; 200 211 if ($showkey) {echo "&showkey=j";} … … 202 213 ."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>" 203 214 ."</a>" 204 ."\n\t\t</p>" 205 ."\n\t</td>" // 6 215 ."\n\t\t</p>\n\t"; 216 } 217 echo "</td>" 206 218 ."\n</tr>"; 207 219 … … 222 234 if (!$res) { 223 235 echo "\n<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer</p>"; 224 if ($d ebug > 1) {236 if ($dbg > 1) { 225 237 echo "\n<p class='dbg'>Fehler:".pg_last_error()."</p>"; 226 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";}238 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 227 239 } 228 240 } else { … … 281 293 if (!$res) { 282 294 echo "\n<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>"; 283 //if ($d ebug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>";}284 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}295 //if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>";} 296 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 285 297 } 286 298 $j=0; … … 353 365 if (!$res) { 354 366 echo "\n<p class='err'>Fehler bei Suche tats. Nutzung</p>"; 355 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$fskennzalb."'",$sql), ENT_QUOTES, "UTF-8")."'</p>";}367 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$fskennzalb."'",$sql), ENT_QUOTES, "UTF-8")."'</p>";} 356 368 } 357 369 $j=0; … … 513 525 514 526 // Gemeinsame FlÀche suchen: entweder (ST_Intersects and not ST_Touches) oder (2xST_Within OR ST_Overlaps), ST_Intersects liefert auch angrenzende 515 $sql_boden ="SELECT b.artderfestlegung AS wert, a.beschreibung AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez,527 $sql_boden ="SELECT b.artderfestlegung AS wert, a.beschreibung AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, 516 528 b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key 517 529 FROM ax_flurstueck f 518 530 JOIN ax_bauraumoderbodenordnungsrecht b ON ST_Within(b.wkb_geometry, f.wkb_geometry) OR ST_Within(f.wkb_geometry, b.wkb_geometry) OR ST_Overlaps(b.wkb_geometry, f.wkb_geometry) 519 531 LEFT JOIN ax_artderfestlegung_bauraumoderbodenordnungsrecht a ON b.artderfestlegung=a.wert 520 LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle 521 WHERE f.gml_id = $1 AND f.endet IS NULL AND b.endet IS NULL AND d.endet IS NULL";532 LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle ".UnqKatAmt("b","d") 533 ."WHERE f.gml_id = $1 AND f.endet IS NULL AND b.endet IS NULL AND d.endet IS NULL"; 522 534 523 535 pg_prepare($con, "bodeneuordnung", $sql_boden); … … 525 537 if (!$res_bodeneuordnung) { 526 538 echo "\n<p class='err'>Fehler bei Bau-, Raum- oder Bodenordnungsrecht</p>"; 527 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_boden)."</p>";}539 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_boden)."</p>";} 528 540 } 529 541 $sql_str="SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) … … 534 546 if (!$res_strittigeGrenze) { 535 547 echo "\n<p class='err'>Fehler bei strittige Grenze</p>"; 536 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_str)."</p>";}548 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_str)."</p>";} 537 549 } 538 550 if (pg_num_rows($res_bodeneuordnung) > 0 OR pg_num_rows($res_strittigeGrenze) > 0) { … … 609 621 $anzber=ber_bs_zaehl($gml_buchungsstelle); // Anzahl berechtigte Buchungen (nÀchste Stufe) zu dieser Buchung ermitteln 610 622 $verf_next = array($gml_buchungsstelle); // Start Recursion mit einem Element 611 //if ($d ebug > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";}623 //if ($dbg > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 612 624 613 625 while ($anzber > 0 ) { // Stufe - recursiv in die Tiefe, solange es was zu verfolgen gibt … … 621 633 $verf_neu=ber_bs_anzg($gml_ber_bs, $eig, false, $gmlid, ""); // Anzeige ber. Buchungst., ggf. mit EigentÃŒmer. 622 634 $anz_neu=count($verf_neu); // Das Ergebnis zÀhlen 623 // if ($d ebug > 2) {echo "<p class='dbg'>Weiter zu verfolgen: Stufe ".$stufe.", Element ".$i.", Anzahl: ".$anz_neu."</p>";}635 // if ($dbg > 2) {echo "<p class='dbg'>Weiter zu verfolgen: Stufe ".$stufe.", Element ".$i.", Anzahl: ".$anz_neu."</p>";} 624 636 if ($anz_neu > 0) { // wenn neue geliefert 625 637 $verf_next=array_merge($verf_next, $verf_neu); // die neuen an die Sammlung heften … … 628 640 } // Ende Buchungs-Array in der Stufe 629 641 $anzber=count($verf_next); // Sammlung auf Stufe zÀhlen, Steuert die Schleife. 630 //if ($debug > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";}631 642 } // Ende Stufe 632 643 633 644 echo "\n</table>\n\n"; 634 //if ($debug > 1) {echo "<p class='dbg'>Buchung gezeigt = ".$gezeigt."</p>";}635 645 636 646 // Fehler aus "ModellschwÀche" erkennen. … … 641 651 echo "<p class='err'>Das Grundbuch zur Buchung '".$gml_buchungsstelle."' fehlt in der Datenbank.</p>"; 642 652 643 if ($d ebug > 1) { // fehlt die Buchung??653 if ($dbg > 1) { // fehlt die Buchung?? 644 654 echo "<p class='dbg'>Suchen mit SQL: SELECT * FROM ax_buchungsstelle WHERE gml_id='".$gml_buchungsstelle."'; </p>"; 645 655 } … … 651 661 652 662 pg_close($con); 653 echo <<<END 654 <div class='buttonbereich noprint'> 655 <hr> 656 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 657 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 658 END; 659 echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport(\"" . $gmlid . "\")'><img src='ico/download_fs.png' width='32' height='16' alt='Export'></a> \n</div>"; 663 echo "<div class='buttonbereich noprint'>\n<hr>" 664 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 665 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 666 echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport(\"".$gmlid."\")'><img src='ico/download_fs.png' width='32' height='16' alt='Export'></a> \n</div>"; 660 667 661 668 footer($gmlid, selbstverlinkung()."?", "&eig=".$eig); -
trunk/info/info/alkisn/alkisgebaeudenw.php
r422 r425 4 4 5 5 Version: 6 2016-02-24 Version f uer norGIS-ALKIS-Import6 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 7 7 .... 8 8 2020-02-20 Authentifizierung ausgelegert in Function darf_ich() … … 11 11 2021-03-09 Verschneidung mit weiteren Bauwerks-Tabellen. 12 12 2021-03-11 Adresse(n) des gehörtZu-Haus zum Bauwerk nicht mehr hier anzeigen sondern im neuen Bauwerk-Modul. 13 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 13 14 */ 14 15 … … 91 92 92 93 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 94 $dbg=$debug; // CONF in Arbeits-Variable 93 95 94 96 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 95 // Manuell an die URL anfÃŒgen, wirkt nurtemporÀr und wird nicht in Links weiter gereicht.96 if ($nodebug === "j") {$d ebug=0;}97 // Wirkt temporÀr und wird nicht in Links weiter gereicht. 98 if ($nodebug === "j") {$dbg=0;} 97 99 98 100 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisgebaeudenw.php'"); … … 100 102 101 103 // Flurstueck 102 $sqlf ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung103 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 104 WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL;";104 $sqlf ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung 105 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 106 ."WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL;"; 105 107 $v=array($gmlid); 106 108 $resf=pg_prepare("", $sqlf); … … 108 110 if (!$resf) { 109 111 echo "\n<p class='err'>Fehler bei Flurstücksdaten.</p>"; 110 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlf)."'</p>";} 111 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resf)."</p>";} 112 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlf)."'</p>";} 113 if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resf)."</p>";} 114 } 115 116 if ($dbg > 0) { 117 $zeianz=pg_num_rows($resf); 118 if ($zeianz > 1){ 119 echo "\n<p class='err'>Die Abfrage liefert mehr als ein Flurstücks-Objekt!</p>"; 120 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlf), ENT_QUOTES, "UTF-8")."</p>";} 121 } 112 122 } 113 123 if ($rowf = pg_fetch_assoc($resf)) { … … 124 134 echo "\n<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>"; 125 135 } 136 126 137 echo "<p class='balken geb'>ALKIS Flurstück (Gebäude und Bauwerke) ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>"; // Balken 127 138 echo "\n<h2>Flurstück (Gebäude und Bauwerke)</h2>"; … … 181 192 if (!$resg) { 182 193 echo "\n<p class='err'>Fehler bei Gebäude-Verschneidung.</p>"; 183 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlg)."'</p>";}184 if ($d ebug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resg)."</p>";}194 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlg)."'</p>";} 195 if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resg)."</p>";} 185 196 } 186 197 $gebnr=0; … … 270 281 if (!$resl) { 271 282 echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>"; 272 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqll)."'</p>";}273 if ($d ebug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resl)."</p>";}283 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqll)."'</p>";} 284 if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resl)."</p>";} 274 285 } 275 286 while($rowl = pg_fetch_assoc($resl)) { // LOOP: Lagezeilen … … 306 317 if ($gebnr === 0) { 307 318 echo "<p><br>Kein Gebäude auf diesem Flurstück.<br> </p>"; 308 //if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";}319 //if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";} 309 320 } else { 310 321 echo "\n<tr>" … … 425 436 if (!$resb) { 426 437 echo "\n<p class='err'>Fehler bei Bauwerke-Verschneidung.</p>"; 427 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlb)."</p>";}428 if ($d ebug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resb)."</p>";}438 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlb)."</p>";} 439 if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resb)."</p>";} 429 440 } 430 441 $baunr=0; // ZÀhler … … 544 555 if ($baunr === 0) { 545 556 echo "\n<p>Kein Bauwerk auf diesem Flurstück.</p><br>"; 546 // if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".$sqlb."<br>$1 = gml_id = '".$gmlid."'</p>";}557 // if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".$sqlb."<br>$1 = gml_id = '".$gmlid."'</p>";} 547 558 } else { 548 559 echo "\n<tr>" … … 554 565 } 555 566 pg_free_result($resb); 567 568 echo "<div class='buttonbereich noprint'>\n<hr>" 569 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 570 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 571 echo "\n</div>"; 572 573 footer($gmlid, selbstverlinkung()."?", ""); 556 574 ?> 557 558 <div class='buttonbereich noprint'>559 <hr>560 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 561 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>562 </div>563 564 <?php footer($gmlid, selbstverlinkung()."?", ""); ?>565 566 575 </body> 567 576 </html> -
trunk/info/info/alkisn/alkisgsnw.php
r422 r425 11 11 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 12 12 2020-12-15 Input-Validation und Strict Comparisation (===) 13 14 ++ ToDo: Den Fall berÃŒcksichtigen, dass die Buchung vorhanden ist, aber das GB nicht (ModellschwÀche). Meldungen ausgeben. 13 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 14 15 ToDo: 16 - Den Fall berÃŒcksichtigen, dass die Buchung vorhanden ist, aber das GB nicht (ModellschwÀche). Meldungen ausgeben. 17 - bei Aufruf herrschende Buchung mit mehreren dienenden Buchungen: Links zu den dienenden Buchungen anzeigen 15 18 */ 16 19 … … 18 21 // Daten zur Buchungsstelle (GS = GrundstÃŒck) aus der DB lesen. 19 22 // Suche wahlweise ÃŒber die GML-ID oder ÃŒber das GrundstÃŒcks-Kennzeichen (Bezirk-Blatt-LfdNr) aus der URL. 20 global $gkz, $showkey, $d ebug, $defland, $gsbez, $gsblatt, $gslfdnr, $gsbart;23 global $gkz, $showkey, $dbg, $defland, $gsbez, $gsblatt, $gslfdnr, $gsbart; 21 24 22 25 $sqlgs="SELECT s.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, s.laufendenummer, s.buchungsart " 23 26 ."FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id "; 24 // Falls das Buchungsblatt fehlt (ModellschwÀche) wÀre ein LEFT JOIN hier nÃŒtzlich. Das Fehlen aber kontrollieren! ++27 // Falls das Buchungsblatt fehlt (ModellschwÀche) wÀre ein LEFT JOIN hier nÃŒtzlich. Das Fehlen aber kontrollieren! 25 28 26 29 if ($gskennz == '') { // normaler Link ÃŒber gmlid … … 66 69 } 67 70 68 function bs_dienend($gmlid_h) { 69 // Eine ggf. vorhandene dienende Buchungsstelle suchen und dessen GML_ID liefern. 70 global $debug, $gerooted; 71 function Back2theRoots($gmlid) { 72 // Die Buchungsstelle aus dem Aufruf-Parameter wenn eindeutig möglich iterativ zurÃŒck fÃŒhren auf die dienende Buchungsstelle, 73 // auf der die FlurstÃŒcke gebucht sind (Buchungsart="GrundstÃŒck" oder Blattart="fiktives Blatt"). 74 // Der GrundstÃŒcksnachweis wird aus anderen Modulen nur fÃŒr die "GrundstÃŒck"-Buchung aufgerufen, so dass diese Suche nicht notwendig ist. 75 // Bei Aufrufen von auÃen kann dies aber sinnvoll sein. 76 77 // ToDo: um Mehr als eine Stufe zurÃŒck fÃŒhren (max. 3) 78 79 global $gkz, $dbg, $showkey, $gerooted; 80 $gd=$gmlid; // gml dienend 81 71 82 // BS-herrschend (bekannt) >an[]> BS-dienend (gesucht) 72 $sqld="SELECT d.gml_id FROM ax_buchungsstelle d JOIN ax_buchungsstelle h ON d.gml_id=any(h.an) " 73 ."WHERE h.gml_id = $1 and d.endet IS NULL AND h.endet IS NULL"; 74 $v=array($gmlid_h); 75 $resd=pg_prepare("", $sqld); 76 $resd=pg_execute("", $v); 77 $cntd=0; 78 while($rowd=pg_fetch_assoc($resd)) { 79 $cntd++; 80 $gmlid_d=$rowd["gml_id"]; 81 } 82 if ($cntd === 0) { // KEINE dienende BS 83 $gmlid_d=""; 84 } elseif ($cntd > 1) { // Problem: mehrere dienende BS 85 $gmlid_d=""; // wennn mehrere (.an=Array[]), dann nicht eindeutig rÃŒckfÃŒhrbar. 86 $gerooted=false; // Root nicht erreicht 87 if ($debug > 2 ) { // Meldung? Auswahl? 88 echo "\n<p class='err'>Mehrere 'diendende' Buchungen zur Buchung '".$gmlid_h."'</p>"; 89 } 90 } 91 pg_free_result($resd); 92 return $gmlid_d; 93 } 94 95 function Back2theRoots($gmlid_h) { 96 // Eine Buchungsstelle (aus dem Aufruf-Parameter) zurÃŒck fÃŒhren auf die Basis-Buchungsstelle 97 // Suchen bis Buchungsart="GrundstÃŒck" oder ggf. Blattart="fiktives Blatt" 98 global $debug; 99 $gh=$gmlid_h; // herrschend 100 $gd=$gh; // dienend 101 $gr=$gd; // root 83 $sql="SELECT d.gml_id, d.laufendenummer FROM ax_buchungsstelle d JOIN ax_buchungsstelle h ON d.gml_id=any(h.an) " 84 ."WHERE h.gml_id = $1 and d.endet IS NULL AND h.endet IS NULL ORDER BY d.laufendenummer;"; 85 102 86 while($gd != "") { 103 $gr=$gd; // sichern 104 $gd=bs_dienend($gh); // an? 105 $gh=$gd; // fuer weitere Loop 106 } 87 $gr=$gd; // gml Return 88 $v=array($gd); 89 $res=pg_prepare("", $sql); 90 $res=pg_execute("", $v); 91 $zeianz=pg_num_rows($res); 92 if ($zeianz == 0){ // sollte nicht vorkommen, die Buchungsart "GrundstÃŒck" ruft dies NICHT auf 93 if ($dbg > 1 ) {echo "\n<p class='err'>Keine 'diendende' Buchung zur Buchung '".$gd."'</p>";} 94 $gd=""; 95 } elseif ($zeianz == 1){ 96 if ($dbg > 1 ) {echo "\n<p class='dbg'>Eine 'diendende' Buchung zur Buchung '".$gd."'</p>";} 97 $row=pg_fetch_assoc($res); 98 $gd=$row["gml_id"]; 99 } else { // > 1 // Seltener Sonderfall 100 if ($dbg > 1 ) {echo "\n<p class='dbg'>".$zeianz." 'diendende' Buchungen zur Buchung '".$gd."'</p>";} 101 $gerooted=false; // Root (GrundstÃŒck) wird nicht erreicht 102 $gd=""; // wenn mehrere (.an=Array[]), dann nicht eindeutig rÃŒckfÃŒhrbar 103 echo "\n<table class='fs'>\n<tr>\n\t<td class='heads'>Hinweis</td>" 104 ."\n\t<td class='head nwlink noprint' title='Verlinkung zu anderen Nachweis-Arten und verbundenen Objekten'>weitere Auskunft</td>" 105 ."\n</tr>"; 106 echo "\n<tr>\n\t<td>Die angeforderte Buchung hat Rechte an ".$zeianz." anderen Buchungen." 107 ."<br>Für die Anzeige der Flurstücke muss eine dieser Grundstücks-Buchungen gewählt werden.</td>" 108 ."\n\t<td>\n\t\t<p class='nwlink noprint'>"; 109 while($row=pg_fetch_assoc($res)) { 110 $gml_d=$row["gml_id"]; 111 $bvnr=ltrim($row["laufendenummer"], '0'); 112 echo "\n\t\t\t<a href='alkisgsnw.php?gkz=".$gkz."&gmlid=".$gml_d; 113 if ($showkey) {echo "&showkey=j";} 114 echo "' title='Grundstücksnachweis'>Buchung ".$bvnr 115 ." <img src='ico/Grundstueck_Link.png' width='16' height='16' alt=''></a><br>"; 116 } 117 echo "\n\t\t</p>\n\t</td>\n</tr>\n</table>"; 118 } 119 } 120 pg_free_result($res); 107 121 return $gr; 108 122 } 109 123 110 // H i e rS t a r t124 // S t a r t 111 125 ini_set("session.cookie_httponly", 1); 112 126 session_start(); … … 156 170 <?php 157 171 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 158 159 if ($nodebug === "j") {$d ebug=0;}172 $dbg=$debug; // CONF in Arbeits-Variable 173 if ($nodebug === "j") {$dbg=0;} 160 174 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisgsnw.php'"); 161 175 if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>"; 162 176 163 $gmlid_p=$gmlid; // Wert aus Parameter merken 164 $gerooted=true; // Auskunft beginnt mit dienendem GrundstÃŒck 165 $gmlid=get_GS_Daten($gmlid, $gskennz); // nachschauen 166 $gml_anfrd=$gmlid; // ursprÃŒngliche Anforderung aus URL merken 177 $gml_anfrd=$gmlid; // ursprÃŒngliche Anforderung aus URL merken 178 $gerooted=true; // Auskunft beginnt mit (dienendem) GrundstÃŒck 179 $gmlid=get_GS_Daten($gmlid, $gskennz); // nachschauen, Variablen setzen, Keine Ausgabe 167 180 if ($gmlid == "") { // nix gefunden 168 181 die("Kein Treffer"); 169 } else { // Treffer170 if ($gsbart != "1100") { // Buchungsart "GrundstÃŒck"171 $gmlid_r=Back2theRoots($gmlid);172 if ($gmlid_r != $gmlid) { // wurde hoch gerÃŒckt173 $gmlid=get_GS_Daten($gmlid_r, ""); // damit weiter arbeiten174 }175 }176 182 } 177 183 echo "<p class='balken gskennz'>ALKIS Grundstück ".$gsbez."-".rtrim($gsblatt)."-".$gslfdnr." </p>\n\n<h2>Grundstück</h2>"; // Balken 178 184 179 if ($gerooted) { 180 // F l u r s t u e c k e 181 echo "\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurstücke</h3>" 182 ."\n<table class='fs'>"; 183 echo "\n<tr>" // Kopfzeile 185 // F l u r s t ÃŒ c k e 186 echo "\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurstücke</h3>"; 187 188 if ($gsbart > 1102){ // Recht an .. 189 $gmlid_r=Back2theRoots($gmlid); 190 if ($gmlid_r != $gmlid) { // wurde hoch gerÃŒckt 191 $gmlid=get_GS_Daten($gmlid_r, ""); // damit weiter arbeiten 192 } 193 } 194 if ($gerooted) { // // Buchungsart (aufgeteiltes) GrundstÃŒck (nicht Recht an ..) 195 echo "\n<table class='fs'>\n<tr>" // Kopfzeile 184 196 ."\n\t<td class='heads'>Gemarkung</td>" 185 197 ."\n\t<td class='heads'>Flur</td>" 186 198 ."\n\t<td class='heads fsnr' title='Flurstücksnummer (Zähler / Nenner)'><span class='wichtig'>Flurst.</span></td>" 187 ."\n\t<td class='head fla g'>Fläche</td>"199 ."\n\t<td class='head fla'>Fläche</td>" 188 200 ."\n\t<td class='head nwlink noprint' title='Verlinkung zu anderen Nachweis-Arten und verbundenen Objekten'>weitere Auskunft</td>" 189 201 ."\n</tr>"; … … 191 203 //++ Tabelle hat noch Platz, SQL in der Loop oder Subquery wÀre möglich, weil i.d.R. nur wenige FS je GS gebucht sind. 192 204 193 $sqlfs ="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche194 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer195 WHERE f.istgebucht = $1 AND f.endet IS NULL AND g.endet IS NULL ";205 $sqlfs ="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche " 206 ."FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 207 ."WHERE f.istgebucht = $1 AND f.endet IS NULL AND g.endet IS NULL "; 196 208 if ($filtgem === '' ) { // ungefiltert 197 209 $v=array($gmlid); … … 236 248 if ($j === 0) {echo "\n<tr class='unp'>\n\t<td colspan='5'><p class='warn'>Keine Flurstücke im berechtigten Bereich.</p></td>\n</tr>";} 237 249 echo "\n</table>"; 238 } else { // konnte nicht bis zur Basis aufsteigen239 echo "<p>Die angeforderte Buchung hat Rechte an mehreren anderen Buchungen."240 ."<br>Für die Anzeige der Flurstücke muss eine dieser Buchungen (Grundstück) gewählt werden.</p>";241 // Auswahl anbieten? Sonst ÃŒber den Link "Bestand" recherchieren.242 250 } 243 251 … … 268 276 $anzber=count($verf_next); 269 277 } 270 echo "\n</table>\n\n"; 271 //if ($debug > 1) {echo "<p class='dbg'>Buchung gezeigt = ".$gezeigt."</p>";} 272 278 echo "\n</table>\n"; 273 279 pg_close($con); 274 echo <<<END 275 <div class='buttonbereich noprint'> 276 <hr> 277 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 278 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 279 END; 280 281 echo "<div class='buttonbereich noprint'>\n<hr>" 282 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 283 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 280 284 if ($stufe < 3) { 281 285 echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport(\"".$gmlid."\")'><img src='ico/download_gs.png' width='32' height='16' alt='Export'></a>"; -
trunk/info/info/alkisn/alkishaus.php
r422 r425 4 4 5 5 Version: 6 2016-02-24 Version f uer norGIS-ALKIS-Import6 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 7 7 .... 8 8 2020-12-01 Darstellung der Datenerhebung, Klammern um SchlÃŒsselwerte … … 10 10 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 11 11 2020-12-15 Input-Validation und Strict Comparisation (===) 12 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche). Gemeinde in Adresse 13 12 14 ToDo: 13 15 - Template im WMS auf Ebene GebÀude hierhin verknÃŒpfen. … … 53 55 54 56 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 57 $dbg=$debug; // CONF in Arbeits-Variable 55 58 56 59 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 57 // Manuell an die URL anfÃŒgen, wirkt nurtemporÀr und wird nicht in Links weiter gereicht.58 if ($nodebug === "j") {$d ebug=0;}60 // Wirkt temporÀr und wird nicht in Links weiter gereicht. 61 if ($nodebug === "j") {$dbg=0;} 59 62 60 63 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkishaus.php'"); … … 83 86 if (!$resg) { 84 87 echo "\n<p class='err'>Fehler bei Gebäude.<br>".pg_last_error()."</p>"; 85 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";} 88 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";} 89 } 90 if ($dbg > 0) { 91 $zeianz=pg_num_rows($resg); 92 if ($zeianz > 1){ 93 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Gebäude-Objekt!</p>"; 94 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlg), ENT_QUOTES, "UTF-8")."</p>";} 95 } 86 96 } 87 97 … … 164 174 165 175 // HAUPTgebÀude 166 $sqll ="SELECT 'm' AS ltyp, lh.gml_id AS gmllag, sh.lage, sh.bezeichnung, lh.hausnummer, '' AS laufendenummer FROM ax_gebaeude gh 176 $sqll ="SELECT 'm' AS ltyp, lh.gml_id AS gmllag, sh.lage, sh.bezeichnung, lh.hausnummer, '' AS laufendenummer, ph.bezeichnung AS gemeinde 177 FROM ax_gebaeude gh 167 178 JOIN ax_lagebezeichnungmithausnummer lh ON lh.gml_id=ANY(gh.zeigtauf) 168 JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage 169 WHERE gh.gml_id= $1 AND gh.endet IS NULL AND lh.endet IS NULL AND sh.endet IS NULL"; 179 JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage 180 LEFT JOIN ax_gemeinde ph ON lh.land=ph.land AND lh.regierungsbezirk=ph.regierungsbezirk AND lh.kreis=ph.kreis AND lh.gemeinde=ph.gemeinde ".UnqKatAmt("lh","ph") 181 ."WHERE gh.gml_id= $1 AND gh.endet IS NULL AND lh.endet IS NULL AND sh.endet IS NULL"; 182 170 183 // oder NEBENgebÀude 171 184 $sqll.=" UNION 172 SELECT 'p' AS ltyp, ln.gml_id AS gmllag, sn.lage, sn.bezeichnung, ln.pseudonummer AS hausnummer, ln.laufendenummer 185 SELECT 'p' AS ltyp, ln.gml_id AS gmllag, sn.lage, sn.bezeichnung, ln.pseudonummer AS hausnummer, ln.laufendenummer, pn.bezeichnung AS gemeinde 173 186 FROM ax_gebaeude gn 174 187 JOIN ax_lagebezeichnungmitpseudonummer ln ON ln.gml_id=gn.hat 175 JOIN ax_lagebezeichnungkatalogeintrag sn ON ln.kreis=sn.kreis AND ln.gemeinde=sn.gemeinde AND ln.lage=sn.lage 176 WHERE gn.gml_id= $1 AND gn.endet IS NULL AND ln.endet IS NULL AND sn.endet IS NULL "; 188 JOIN ax_lagebezeichnungkatalogeintrag sn ON ln.kreis=sn.kreis AND ln.gemeinde=sn.gemeinde AND ln.lage=sn.lage 189 LEFT JOIN ax_gemeinde pn ON ln.land=pn.land AND ln.regierungsbezirk=pn.regierungsbezirk AND ln.kreis=pn.kreis AND ln.gemeinde=pn.gemeinde ".UnqKatAmt("ln","pn") 190 ."WHERE gn.gml_id= $1 AND gn.endet IS NULL AND ln.endet IS NULL AND sn.endet IS NULL "; 177 191 178 192 $sqll.="ORDER BY bezeichnung, hausnummer ;"; … … 183 197 if (!$resl) { 184 198 echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>"; 185 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqll."<br>$1 = gml_id = '".$gmlid."'</p>";}199 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqll."<br>$1 = gml_id = '".$gmlid."'</p>";} 186 200 } 187 201 $zhsnr=0; … … 193 207 $hsnr=$rowl["hausnummer"]; 194 208 $hlfd=$rowl["laufendenummer"]; 209 $gemeinde=$rowl["gemeinde"]; 195 210 $gmllag=$rowl["gmllag"]; 196 211 … … 206 221 echo "'>".$snam." ".$hsnr; 207 222 if ($ltyp === "p") {echo ", lfd.Nr ".$hlfd;} 208 echo "</a> <br>";223 echo "</a>, ".$gemeinde."<br>"; 209 224 } // Ende Loop Lagezeilen m.H. 210 225 if ($zhsnr > 0) {echo "\n\t</td>\n\t<td> </td>\n</tr>";} … … 324 339 if (!$resw) { 325 340 echo "\n<p class='err'>Fehler bei Gebäude - weitere Funktion.</p>"; 326 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlw."<br>$1 = Werteliste = '".$wgf."'</p>";}341 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlw."<br>$1 = Werteliste = '".$wgf."'</p>";} 327 342 } 328 343 $zw=0; … … 433 448 if (!$rese) { 434 449 echo "\n<p class='err'>Fehler bei Datenerhebung.<br>".pg_last_error()."</p>"; 435 if ($d ebug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqle."<br>$1 = gml_id = '".$gmlid."'</p>";}450 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqle."<br>$1 = gml_id = '".$gmlid."'</p>";} 436 451 } 437 452 while($rowe = pg_fetch_assoc($rese)) { // Schleife weil array-Feld, meist aber leer … … 469 484 $sqlf ="SELECT f.gml_id, round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, 470 485 st_within(g.wkb_geometry,f.wkb_geometry) as drin, o.gemarkungsnummer, o.bezeichnung, f.flurnummer, f.zaehler, f.nenner 471 FROM ax_gebaeude g, ax_flurstueck f LEFT JOIN ax_gemarkung o ON f.land=o.land AND f.gemarkungsnummer=o.gemarkungsnummer 472 WHERE g.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL486 FROM ax_gebaeude g, ax_flurstueck f LEFT JOIN ax_gemarkung o ON f.land=o.land AND f.gemarkungsnummer=o.gemarkungsnummer ".UnqKatAmt("f","o") 487 ."WHERE g.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL 473 488 AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true ORDER BY schnittflae DESC;"; 474 489 … … 478 493 if (!$resf) { 479 494 echo "\n<p class='err'>Fehler bei FS-Verschneidung.</p>"; 480 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".$sqlf."<br>$1 = gml_id = '".$gmlid."'</p>";}495 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".$sqlf."<br>$1 = gml_id = '".$gmlid."'</p>";} 481 496 } 482 497 … … 535 550 echo "\n<tr>\n\t<td class='fla sum'>".$gfla."</td>\n\t<td>Gebäudefläche</td>\n\t<td></td>\n</tr>"; 536 551 echo "\n</table>"; // Ende FlurstÃŒcke 552 553 echo "<div class='buttonbereich noprint'>\n<hr>" 554 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 555 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 556 echo "\n</div>"; 557 558 footer($gmlid, selbstverlinkung()."?", ""); 537 559 ?> 538 539 <div class='buttonbereich noprint'>540 <hr>541 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 542 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 543 </div>544 545 <?php footer($gmlid, selbstverlinkung()."?", ""); ?>546 547 560 </body> 548 561 </html> -
trunk/info/info/alkisn/alkisinlayausk.php
r422 r425 17 17 2020-12-15 Input-Validation und Strict Comparisation (===) 18 18 2021-03-09 Link zum GebÀudenachweis auch mit "Bauwerke" betiteln 19 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix) 19 20 */ 20 21 ini_set("session.cookie_httponly", 1); … … 56 57 <body class ="mbfi"> 57 58 END; 58 // <body style='width: 98%;'> 59 59 60 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 61 $dbg=$debug; // CONF in Arbeits-Variable 60 62 61 63 // Body des Inlay muss in Mapbender-Feature-Info-PopUp passen. Kleiner als 750 aus css. … … 65 67 // *** F L U R S T U E C K *** 66 68 $sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung, f.gemeindezugehoerigkeit_regierungsbezirk, f.gemeindezugehoerigkeit_kreis, f.gemeindezugehoerigkeit_gemeinde, f.istgebucht 67 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 68 WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL;";69 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 70 ."WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL;"; 69 71 70 72 $v = array($gmlid); … … 73 75 if (!$res) { 74 76 echo "\n<p class='err'>Fehler bei Flurstuecksdaten.</p>"; 75 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 76 } 77 77 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 78 } 79 if ($dbg > 0) { 80 $zeianz=pg_num_rows($res); 81 if ($zeianz > 1){ 82 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Flurstücks-Objekt!</p>"; 83 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 84 } 85 } 78 86 if ($row = pg_fetch_assoc($res)) { 79 87 $gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); … … 97 105 if ( ($filtkreis != '' and $filtkreis != $fskrs) or ($filtgem != '' and $filtgem != $fsgem) ) { 98 106 // Einer der gesetzten Filter passt nicht 99 if ($d ebug > 2) {107 if ($dbg > 2) { 100 108 echo "\n<p class='err'>Filter Kreis='".$filtkreis."', Gemeinde='".$filtgem."'</p>"; 101 109 echo "\n<p class='err'>Flstk. Kreis='".$fskrs."', Gemeinde='".$fsgem."'</p>"; … … 125 133 ."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>" 126 134 ."</a><br>"; 135 127 136 // FS-Historie 128 echo "\n\t\t\t\t<a href='javascript:imFenster(\"alkisfshist.php?gkz=".$gkz."&gmlid=".$gmlid."\")' " 129 ."title='Vorgänger des Flurstücks'>Historie " 130 ."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>" 131 ."</a><br>"; 132 // Gebaeude-NW zum FS 137 if ($fsHistorie){ // conf 138 echo "\n\t\t\t\t<a href='javascript:imFenster(\"alkisfshist.php?gkz=".$gkz."&gmlid=".$gmlid."\")' " 139 ."title='Vorgänger des Flurstücks'>Historie " 140 ."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>" 141 ."</a><br>"; 142 } 143 // GebÀude-NW zum FS 133 144 echo "\n\t\t\t\t<a href='javascript:imFenster(\"alkisgebaeudenw.php?gkz=".$gkz."&gmlid=".$gmlid."\")' " 134 ."title='Gebäude oder Bauwerke '>Gebäude/Bauw. "145 ."title='Gebäude oder Bauwerke auf oder an diesem Flurstück'>Gebäude/Bauw. " 135 146 ."<img src='ico/Haus.png' width='16' height='16' alt=''>" 136 147 ."</a>"; … … 149 160 if (!$res) { 150 161 echo "\n<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer.</p>"; 151 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}162 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 152 163 } 153 164 $j=0; … … 192 203 if (!$res) { 193 204 echo "\n<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer.</p>"; 194 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}205 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 195 206 } 196 207 $kgmlalt=''; … … 216 227 } 217 228 echo "\n\t\t<td>\n\t\t\t<p class='nwlink noprint'>"; 218 if ($sname != "") { // Typ=Stra sse229 if ($sname != "") { // Typ=StraÃe 219 230 $kgml=$row["kgml"]; // Wiederholung vermeiden 220 if ($kgml != $kgmlalt) { // NEUE Stra sse vor Lage-O231 if ($kgml != $kgmlalt) { // NEUE StraÃe vor Lage-O 221 232 $kgmlalt=$kgml; // Katalog GML-ID 222 233 echo "\n\t\t\t<a class='noprint' title='Flurstücke mit oder ohne Hausnummer".$slink."' " -
trunk/info/info/alkisn/alkisinlaybaurecht.php
r422 r425 5 5 6 6 Version: 7 2016-02-24 Version f uer norGIS-ALKIS-Import7 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 8 8 .... 9 9 2020-02-03 Fenster-Weite 10 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 11 2020-12-15 Input-Validation und Strict Comparisation (===) 12 2021-12-09 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix) 12 13 */ 13 14 ini_set("session.cookie_httponly", 1); … … 50 51 51 52 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 53 $dbg=$debug; // CONF in Arbeits-Variable 52 54 53 55 // Body des Inlay muss in Mapbender-Feature-Info-PopUp passen. Kleiner als 750 aus css. … … 59 61 FROM ax_bauraumoderbodenordnungsrecht r 60 62 LEFT JOIN ax_artderfestlegung_bauraumoderbodenordnungsrecht a ON r.artderfestlegung = a.wert 61 LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle 62 WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;";63 LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle ".UnqKatAmt("r","d") 64 ."WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;"; 63 65 64 66 $v = array($gmlid); … … 68 70 if (!$res) { 69 71 echo "\n<p class='err'>Fehler bei Baurecht.</p>"; 70 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql)."</p>";}72 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql)."</p>";} 71 73 } 72 74 echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>"; 73 75 if ($dbg > 0) { 76 $zeianz=pg_num_rows($res); 77 if ($zeianz > 1){ 78 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Bauordnungs-Objekt!</p>"; 79 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 80 } 81 } 74 82 if ($row = pg_fetch_assoc($res)) { 75 83 echo "\n<table>" -
trunk/info/info/alkisn/alkislage.php
r422 r425 6 6 7 7 Version: 8 2016-02-24 Version f uer norGIS-ALKIS-Import8 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 9 9 .... 10 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 11 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 12 12 2020-12-15 Input-Validation und Strict Comparisation (===) 13 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 14 Gemarkung und Flur bei Gruppenwechsel FETT anzeigen 13 15 14 16 ToDo: … … 67 69 68 70 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 71 $dbg=$debug; // CONF in Arbeits-Variable 69 72 70 73 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 71 // Manuell an die URL anfÃŒgen, wirkt nurtemporÀr und wird nicht in Links weiter gereicht.72 if ($nodebug === "j") {$d ebug=0;}74 // Wirkt temporÀr und wird nicht in Links weiter gereicht. 75 if ($nodebug === "j") {$dbg=0;} 73 76 74 77 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkislage.php'"); … … 90 93 // "Left" weil: Bei sub-Typ "Gewanne" von Typ "o" sind keine SchlÃŒsselfelder gefÃŒllt! 91 94 $sql.="FROM ".$tnam." l 92 LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde 93 LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis 94 LEFT JOIN ax_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk 95 LEFT JOIN ax_bundesland b ON l.land=b.land 96 LEFT JOIN ax_lagebezeichnungkatalogeintrag s95 LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde ".UnqKatAmt("l","g") 96 ."LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis ".UnqKatAmt("l","k") 97 ."LEFT JOIN ax_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk ".UnqKatAmt("l","r") 98 ."LEFT JOIN ax_bundesland b ON l.land=b.land ".UnqKatAmt("l","b") 99 ."LEFT JOIN ax_lagebezeichnungkatalogeintrag s 97 100 ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 98 101 WHERE l.gml_id= $1 AND l.endet IS NULL AND g.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL AND b.endet IS NULL AND s.endet IS NULL;"; … … 103 106 if (!$res) { 104 107 echo "\n<p class='err'>Fehler bei Lagebezeichnung.</p>"; 105 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 106 } 107 108 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 109 } 110 if ($dbg > 0) { 111 $zeianz=pg_num_rows($res); 112 if ($zeianz > 1){ 113 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Lage-Objekt!</p>"; 114 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 115 } 116 } 108 117 if ($row = pg_fetch_assoc($res)) { 109 118 $strgml=$row["strgml"]; // gml_id des Katalogeintrag StraÃe … … 118 127 $lage=$row["lage"]; // Strassenschluessel 119 128 $snam=$row["snam"]; //Strassennamen 120 // $kennz=$land."-".$regbez."-".$kreis. ...129 // $kennz=$land."-".$regbez."-".$kreis. .. 121 130 $kennz=$gem."-".$lage."-"; // ToDo: Kompatibel machen als Eingabe in Navigation/Adresse 122 131 123 132 switch ($ltyp) { 124 133 case "m": // "Mit HsNr" … … 155 164 } else { 156 165 echo "\n<p class='err'>Fehler! Kein Treffer fuer Lagebezeichnung mit gml_id='".$gmlid."'</p>"; 157 if ($d ebug > 2) {166 if ($dbg > 2) { 158 167 echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>"; 159 168 } … … 260 269 } 261 270 262 $sql ="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche263 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 264 WHERE $1 = ANY(f.".$bezart.") AND f.endet IS NULL AND g.endet IS NULL271 $sql ="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche 272 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 273 ."WHERE $1 = ANY(f.".$bezart.") AND f.endet IS NULL AND g.endet IS NULL 265 274 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 266 275 … … 270 279 if (!$resf) { 271 280 echo "\n<p class='err'>Fehler bei Flurstück.</p>"; 272 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}281 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 273 282 } 274 283 echo "\n<table class='fs'>" … … 282 291 $j=0; 283 292 $zpaar=false; 293 $gwgmkg=""; // Gruppenwechsel 294 $gwflur=""; 284 295 while($rowf = pg_fetch_assoc($resf)) { 296 $gmkg=$rowf["bezeichnung"]; 285 297 $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT); 286 298 $fskenn=$rowf["zaehler"]; // Bruchnummer … … 294 306 ."\n\t<td>"; 295 307 if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";} 296 echo $rowf["bezeichnung"]."</td>" 297 ."\n\t<td>".$flur."</td>" 298 ."\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span></td>" 308 if ($gwgmkg != $gmkg) { 309 echo "<b>".$gmkg."</b></td>"; 310 $gwgmkg=$gmkg; 311 $gwflur=""; 312 } else { 313 echo $gmkg."</td>"; 314 } 315 if ($gwflur != $flur) { 316 echo "\n\t<td><b>".$flur."</b></td>"; 317 $gwflur=$flur; 318 } else { 319 echo "\n\t<td>".$flur."</td>"; 320 } 321 echo "\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span></td>" 299 322 ."\n\t<td class='fla'>".$flae."</td>" 300 323 ."\n\t<td>\n\t\t<p class='nwlink noprint'>" … … 333 356 if (!$res) { 334 357 echo "\n<p class='err'>Fehler bei Nebengebäude.</p>"; 335 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter358 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter 336 359 } 337 360 $neb=0; … … 369 392 if (!$res) { 370 393 echo "\n<p class='err'>Fehler bei Nebengebäude.</p>"; 371 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter394 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter 372 395 } 373 396 $neb=0; … … 405 428 if (!$res) { 406 429 echo "\n<p class='err'>Fehler bei Gebäude.</p>"; 407 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}430 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 408 431 } 409 432 echo "\n<table class='geb'>" … … 445 468 echo "\n</table>"; 446 469 } 470 471 echo "<div class='buttonbereich noprint'>\n<hr>" 472 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 473 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 474 echo "\n</div>"; 475 476 footer($gmlid, selbstverlinkung()."?", "&ltyp=".$ltyp); 447 477 ?> 448 449 <div class='buttonbereich noprint'>450 <hr>451 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 452 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 453 </div>454 455 <?php footer($gmlid, selbstverlinkung()."?", "&ltyp=".$ltyp); ?>456 478 457 479 </body> -
trunk/info/info/alkisn/alkisnamstruk.php
r422 r425 6 6 7 7 Version: 8 2016-02-24 Version f uer norGIS-ALKIS-Import8 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 9 9 ... 10 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 11 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 12 12 2020-12-15 Input-Validation und Strict Comparisation (===) 13 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche). Gruppenwechsel Bezirk. 13 14 */ 14 15 ini_set("session.cookie_httponly", 1); … … 53 54 <?php 54 55 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 56 $dbg=$debug; // CONF in Arbeits-Variable 55 57 56 58 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 57 // Manuell an die URL anfÃŒgen, wirkt nurtemporÀr und wird nicht in Links weiter gereicht.58 if ($nodebug === "j") {$d ebug=0;}59 // Wirkt temporÀr und wird nicht in Links weiter gereicht. 60 if ($nodebug === "j") {$dbg=0;} 59 61 60 62 echo "<p class='balken nakennz'>ALKIS Name id=".$gmlid." </p>\n" // Balken … … 73 75 if (!$res) { 74 76 echo "\n<p class='err'>Fehler bei Zugriff auf Namensnummer</p>"; 75 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 77 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 78 } 79 if ($dbg > 0) { 80 $zeianz=pg_num_rows($res); 81 if ($zeianz > 1){ 82 echo "\n<p class='err'>Die Abfrage liefert mehr als eine Person!</p>"; 83 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 84 } 76 85 } 77 86 if ($row = pg_fetch_assoc($res)) { … … 111 120 if (!$resa) { 112 121 echo "\n<p class='err'>Fehler bei Adressen</p>"; 113 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>". str_replace("$1", "'".$gmlid."'", $sqla)."</p>";}122 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>". str_replace("$1", "'".$gmlid."'", $sqla)."</p>";} 114 123 } 115 124 … … 130 139 echo "<table>\n"; 131 140 if ($multiadress === "j" OR $showkey) { 132 if ($d ebug > 0) { // nur Entw.: Sortierung gml_id vs. beginnt?141 if ($dbg > 0) { // nur Entw.: Sortierung gml_id vs. beginnt? 133 142 echo "\t<tr><td class='dbg'>gml_id:</td><td class='dbg'>".$rowa["gml_id"]."</td></tr>\n"; 134 143 } … … 176 185 ."FROM ax_person p JOIN ax_namensnummer n ON p.gml_id=n.benennt " 177 186 ."JOIN ax_buchungsblatt g ON g.gml_id=n.istbestandteilvon " 178 ."LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk " 187 ."LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk ".UnqKatAmt("g","b") 179 188 ."LEFT JOIN ax_blattart_buchungsblatt wb ON g.blattart = wb.wert " 180 189 ."WHERE p.gml_id= $1 AND p.endet IS NULL AND n.endet IS NULL AND b.endet IS NULL " … … 187 196 if (!$resg) { 188 197 echo "\n<p class='err'>Fehler bei Grundbuch</p>"; 189 if ($d ebug > 2) {198 if ($dbg > 2) { 190 199 echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sqlg ), ENT_QUOTES, "UTF-8")."</p>"; 191 200 } … … 203 212 $i=0; 204 213 $zpaar=false; 214 $gwbeznam=''; 205 215 while($rowg = pg_fetch_assoc($resg)) { 206 216 $gmln=$rowg["gml_n"]; … … 211 221 $blattart=$rowg["blattartv"]; // Value 212 222 if ($zpaar) {$trclass='paa';} else {$trclass='unp';} 223 $beznam=$rowg["beznam"]; 213 224 $zpaar=!$zpaar; 214 225 echo "\n<tr class='".$trclass."'>" 215 226 ."\n\t<td>"; // GB-Bezirk <td class='gbl'> 216 227 if ($showkey) {echo "<span class='key'>".$rowg["bezirk"]."</span> ";} 217 echo $rowg["beznam"] 218 ."</td>"; 228 if ($gwbeznam != $beznam){ 229 echo "<b>".$beznam."</b>"; 230 $gwbeznam=$beznam; 231 } else { 232 echo $beznam; 233 } 234 echo "</td>"; 219 235 220 236 echo "\n\t<td>"; // Blattart … … 259 275 if ($i === 0) {echo "\n<p class='err'>Kein Grundbuch.</p>";} 260 276 } else { 261 echo "\n\t<p class='err'>Fehler! Kein Treffer für\n\t<a target='_blank' href='alkisrelationen.php?gkz=".$gkz."&gmlid=".$gmlid."'>".$gmlid."</a>\n</p>\n\n"; 262 } 277 echo "\n\t<p class='err'>Fehler! Kein Treffer für Person".$gmlid."</p>\n"; 278 } 279 pg_free_result($res); 280 281 echo "\n<div class='buttonbereich noprint'>\n<hr>" 282 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 283 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 284 echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport()'><img src='ico/download.png' width='16' height='16' alt='Export'></a> " 285 ."\n</div>"; 286 287 footer($gmlid, selbstverlinkung()."?", ""); 263 288 ?> 264 265 <div class='buttonbereich noprint'>266 <hr>267 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 268 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 269 <a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.png" width="16" height="16" alt="Export"></a> 270 </div>271 272 <?php footer($gmlid, selbstverlinkung()."?", ""); ?>273 289 274 290 </body> -
trunk/info/info/alkisn/alkisstrasse.php
r422 r425 3 3 4 4 ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo). 5 Alle FlurstÃŒcke an einer Stra sse anzeigen, egal ob "mit" oder "ohne" Hausnummer5 Alle FlurstÃŒcke an einer StraÃe anzeigen, egal ob "mit" oder "ohne" Hausnummer 6 6 Parameter: "gml_id" aus der Tabelle "ax_lagebezeichnungkatalogeintrag" 7 7 8 8 Version: 9 2016-02-24 Version f uer norGIS-ALKIS-Import9 2016-02-24 Version fÃŒr norGIS-ALKIS-Import 10 10 ... 11 11 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 12 12 2020-12-15 Input-Validation und Strict Comparisation (===) 13 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 13 14 */ 14 15 ini_set("session.cookie_httponly", 1); … … 52 53 <?php 53 54 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 55 $dbg=$debug; // CONF in Arbeits-Variable 54 56 55 57 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 56 // Manuell an die URL anfÃŒgen, wirkt nurtemporÀr und wird nicht in Links weiter gereicht.57 if ($nodebug === "j") {$d ebug=0;}58 // Wirkt temporÀr und wird nicht in Links weiter gereicht. 59 if ($nodebug === "j") {$dbg=0;} 58 60 59 61 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisstrasse.php'"); … … 63 65 b.bezeichnung AS bnam, r.bezeichnung AS rnam, k.bezeichnung AS knam, g.bezeichnung AS gnam, o.gml_id AS ogml 64 66 FROM ax_lagebezeichnungkatalogeintrag s 65 JOIN ax_bundesland b ON s.land=b.land 66 JOIN ax_regierungsbezirk r ON s.land=r.land AND s.regierungsbezirk=r.regierungsbezirk 67 JOIN ax_kreisregion k ON s.land=k.land AND s.regierungsbezirk=k.regierungsbezirk AND s.kreis=k.kreis 68 JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde 69 LEFT JOIN ax_lagebezeichnungohnehausnummer o ON s.land=o.land AND s.regierungsbezirk=o.regierungsbezirk AND s.kreis=o.kreis AND s.gemeinde=o.gemeinde AND s.lage=o.lage67 JOIN ax_bundesland b ON s.land=b.land ".UnqKatAmt("s","b") 68 ."JOIN ax_regierungsbezirk r ON s.land=r.land AND s.regierungsbezirk=r.regierungsbezirk ".UnqKatAmt("s","r") 69 ."JOIN ax_kreisregion k ON s.land=k.land AND s.regierungsbezirk=k.regierungsbezirk AND s.kreis=k.kreis ".UnqKatAmt("s","k") 70 ."JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde ".UnqKatAmt("s","g") 71 ."LEFT JOIN ax_lagebezeichnungohnehausnummer o ON s.land=o.land AND s.regierungsbezirk=o.regierungsbezirk AND s.kreis=o.kreis AND s.gemeinde=o.gemeinde AND s.lage=o.lage 70 72 WHERE s.gml_id= $1 AND s.endet IS NULL AND b.endet IS NULL AND r.endet IS NULL AND k.endet IS NULL AND g.endet IS NULL AND o.endet IS NULL ;"; 71 73 … … 75 77 if (!$res) { 76 78 echo "\n<p class='err'>Fehler bei Lagebezeichnungskatalogeintrag.</p>"; 77 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 79 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 80 } 81 if ($dbg > 0) { 82 $zeianz=pg_num_rows($res); 83 if ($zeianz > 1){ 84 echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Straßen-Objekt!</p>"; 85 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 86 } 78 87 } 79 88 if ($row = pg_fetch_assoc($res)) { … … 133 142 echo "\n\t</td>\n</tr>\n</table>"; 134 143 pg_free_result($res); 135 // Ende Seitenkopf 136 137 // F L U R S T U E C K E 144 145 // F L U R S T à C K E 138 146 echo "\n\n<h3 id='fs'><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurstücke</h3>" 139 147 ."\n<p>Zusammenfassung von 'Lage mit Hausnummer' und 'Lage ohne Hausnummer' an dieser StraÃe</p>"; … … 142 150 // ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer > = s = Strasse 143 151 // Suchkriterium: gml_id aus Katalog 144 $sql ="SELECT fh.gemarkungsnummer, gh.bezeichnung, fh.gml_id, fh.flurnummer, fh.zaehler, fh.nenner, fh.amtlicheflaeche, lh.gml_id AS lgml, lh.hausnummer, 'm' AS ltyp152 $sql ="SELECT fh.gemarkungsnummer, gh.bezeichnung, fh.gml_id, fh.flurnummer, fh.zaehler, fh.nenner, fh.amtlicheflaeche, lh.gml_id AS lgml, lh.hausnummer, 'm' AS ltyp 145 153 FROM ax_flurstueck fh 146 154 JOIN ax_lagebezeichnungmithausnummer lh ON lh.gml_id=ANY(fh.weistAuf) 147 JOIN ax_gemarkung gh ON fh.land=gh.land AND fh.gemarkungsnummer=gh.gemarkungsnummer 148 155 JOIN ax_gemarkung gh ON fh.land=gh.land AND fh.gemarkungsnummer=gh.gemarkungsnummer ".UnqKatAmt("fh","gh") 156 ."JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.land=sh.land AND lh.regierungsbezirk=sh.regierungsbezirk AND lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage 149 157 WHERE sh.gml_id = $1 AND fh.endet IS NULL AND lh.endet IS NULL AND gh.endet IS NULL AND sh.endet IS NULL 150 158 UNION SELECT fs.gemarkungsnummer, gs.bezeichnung, fs.gml_id, fs.flurnummer, fs.zaehler, fs.nenner, fs.amtlicheflaeche, ls.gml_id AS lgml, '' AS hausnummer, 'o' AS ltyp 151 159 FROM ax_flurstueck fs 152 160 JOIN ax_lagebezeichnungohnehausnummer ls ON ls.gml_id=ANY(fs.zeigtauf) 153 JOIN ax_gemarkung gs ON fs.land=gs.land AND fs.gemarkungsnummer=gs.gemarkungsnummer 154 161 JOIN ax_gemarkung gs ON fs.land=gs.land AND fs.gemarkungsnummer=gs.gemarkungsnummer ".UnqKatAmt("fs","gs") 162 ."JOIN ax_lagebezeichnungkatalogeintrag ss ON ls.land=ss.land AND ls.regierungsbezirk=ss.regierungsbezirk AND ls.kreis=ss.kreis AND ls.gemeinde=ss.gemeinde AND ls.lage=ss.lage 155 163 WHERE ss.gml_id = $1 AND fs.endet IS NULL AND ls.endet IS NULL AND gs.endet IS NULL AND ss.endet IS NULL 156 164 ORDER BY gemarkungsnummer, flurnummer, zaehler, nenner;"; … … 161 169 if (!$resf) { 162 170 echo "\n<p class='err'>Fehler bei Flurstück.</p>"; 163 if ($d ebug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}171 if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 164 172 } 165 173 … … 176 184 $gwgmkg=""; // Gruppenwechsel 177 185 $gwflur=""; 178 $cnths=0; // Count Haus-Lagebez eichnung186 $cnths=0; // Count Haus-Lagebez. 179 187 180 188 $zpaar=false; // Zeilen-Farbwechsel … … 233 241 } 234 242 pg_free_result($resf); 243 244 echo "\n<div class='buttonbereich noprint'>\n<hr>" 245 ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; 246 if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} 247 echo "\n\t<a title='Export als CSV' href=\"javascript:ALKISexport('')\">alle<img src='ico/download.png' width='16' height='16' alt='Export'></a> " 248 ."\n\t<a title='CSV - nur Flurstücke mit Hausnummer' href=\"javascript:ALKISexport('m')\">mit HsNr<img src='ico/download.png' width='16' height='16' alt='Export'></a> " 249 ."\n\t<a title='CSV - nur Flurstücke ohne Hausnummer' href=\"javascript:ALKISexport('o')\">ohne<img src='ico/download.png' width='16' height='16' alt='Export'></a> " 250 ."\n</div>"; 251 252 footer($gmlid, selbstverlinkung()."?", ""); 235 253 ?> 236 237 <div class='buttonbereich noprint'>238 <hr>239 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 240 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 241 <a title="Export als CSV" href='javascript:ALKISexport("")'>alle<img src="ico/download.png" width="16" height="16" alt="Export"></a> 242 <a title="CSV - nur Flurstücke mit Hausnummer" href='javascript:ALKISexport("m")'>mit HsNr<img src="ico/download.png" width="16" height="16" alt="Export"></a> 243 <a title="CSV - nur Flurstücke ohne Hausnummer" href='javascript:ALKISexport("o")'>ohne<img src="ico/download.png" width="16" height="16" alt="Export"></a> 244 </div>245 246 <?php footer($gmlid, selbstverlinkung()."?", ""); ?>247 254 248 255 </body>
Note: See TracChangeset
for help on using the changeset viewer.