source: trunk/var/www/info/alkis/alkisfsnw.php @ 81

Revision 81, 29.1 KB checked in by frank.jaeger, 12 years ago (diff)

ALKIS-Auskunft überarbeitet

Line 
1<?php
2/*      Modul: alkisfsnw.php
3
4        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
5        FlurstÃŒcksnachweis fuer ein FlurstÃŒckskennzeichen aus ALKIS PostNAS
6
7        Version:
8        30.09.2010  noprint
9        09.11.2010  Nutzung, ehem. php-Functions hier integriert
10        10.11.2010  Felder nutzung.zustand und nutzung.name
11        14.12.2010  Pfad zur Conf
12        17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
13        04.01.2011  Frank JÀger: verkuerzte Nutzungsart-Zeilen mit Icon. Tabelle Gebiet/Lage/Nutzung 4spaltig.
14        05.01.2011  Korrektur der Fallunterscheidung "Funktion", auch "Vegetationsmerkmal", Title auf "Zustand".
15        26.01.2011  Space in leere td
16        01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
17        07.02.2011 
18        ToDo:
19        - EntschlÃŒsseln "Bahnkategorie" bei Behnverkehr, "OberflÀchenmaterial" bei Unland           Dazu evtl. diese Felder ins Classfld verschieben (Meta-Tabellen!)
20        - NamNum >bestehtAusRechtsverhaeltnissenZu> NamNum
21*/
22ini_set('error_reporting', 'E_ALL & ~ E_NOTICE');
23session_start();
24$gkz=urldecode($_REQUEST["gkz"]);
25require_once("alkis_conf_location.php");
26if ($auth == "mapbender") {
27        // Bindung an Mapbender-Authentifizierung
28        require_once($mapbender);
29}
30include("alkisfkt.php");
31?>
32<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
33<html>
34<head>
35        <meta name="author" content="F. Jaeger krz" >
36        <meta http-equiv="cache-control" content="no-cache">
37        <meta http-equiv="pragma" content="no-cache">
38        <meta http-equiv="expires" content="0">
39        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
40        <title>ALKIS Flurst&uuml;cksnachweis</title>
41        <link rel="stylesheet" type="text/css" href="alkisauszug.css">
42        <link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck.ico">
43        <style type='text/css' media='print'>
44                .noprint {visibility: hidden;}
45        </style>
46</head>
47<body>
48<?php
49$gmlid=urldecode($_REQUEST["gmlid"]);
50$eig=urldecode($_REQUEST["eig"]);
51
52$id = isset($_GET["id"]) ? $_GET["id"] : "n";
53if ($id == "j") {
54        $idanzeige=true;
55} else {
56        $idanzeige=false;
57}
58$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";
59if ($keys == "j") {
60        $showkey=true;
61} else {
62        $showkey=false;
63}
64$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
65if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
66
67// F L U R S T U E C K
68$sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, f.zeitpunktderentstehung, ";
69$sql.="g.gemarkungsnummer, g.bezeichnung ";
70$sql.="FROM ax_flurstueck f ";
71$sql.="LEFT JOIN ax_gemarkung  g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
72$sql.="WHERE f.gml_id= $1";
73
74$v = array($gmlid);
75$res = pg_prepare("", $sql);
76$res = pg_execute("", $v);
77if (!$res) echo "\n<p class='err'>Fehler bei Flurstuecksdaten\n<br>".$sql."</p>\n";
78if ($row = pg_fetch_array($res)) {
79        $gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
80        $gmkgnr=$row["gemarkungsnummer"];
81        $bezirk=$row["regierungsbezirk"];
82        $kreis=$row["kreis"];
83        $gemeinde=$row["gemeinde"];
84        $flurnummer=$row["flurnummer"];
85        $flstnummer=$row["zaehler"];
86        $nenner=$row["nenner"];
87        if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
88        $flae=number_format($row["amtlicheflaeche"],0,",",".") . " m&#178;";
89} else {
90        echo "<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>";
91        //echo "<p class='err'>SQL=".$sql."</p>";
92}
93// Balken
94if ($eig=="j") {
95        echo "<p class='fsei'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n";
96        echo "\n<h2><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;ck mit Eigent&uuml;mer</h2>\n";
97} else {
98        echo "<p class='fskennz'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n";
99        echo "\n<h2><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;ck</h2>\n";
100}
101echo "\n<table class='outer'>\n<tr>\n\t<td>"; // linke Seite
102        // darin Tabelle Kennzeichen
103        echo "\n\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>";
104                echo "\n\t\t<td class='head'>Gmkg</td>\n\t\t<td class='head'>Flur</td>\n\t\t<td class='head'>Flurst-Nr.</td>\n\t</tr>";
105                echo "\n\t<tr>\n\t\t<td title='Gemarkung'>";
106                if ($showkey) {
107                        echo "<span class='key'>".$gmkgnr."</span><br>";
108                }
109                echo $gemkname."&nbsp;</td>";
110                echo "\n\t\t<td title='Flurnummer'>".$flurnummer."</td>";
111                echo "\n\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t</tr>";
112        echo "\n\t</table>";
113echo "\n\t</td>\n\t<td>"; // rechte Seite
114        // FS-Daten 2 Spalten
115        echo "\n\t<table class='fsd'>";
116                echo "\n\t<tr>\n\t\t<td>Entstehung</td>";
117                echo "\n\t\t<td>".$row["zeitpunktderentstehung"]."</td>\n\t</tr>";
118                echo "\n\t<tr>\n\t\t<td>letz. Fortf</td>";
119                echo "\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>".$row["name"]."</td>\n\t</tr>";
120        echo "\n\t</table>";
121        if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck"); }
122echo "\n\t</td>\n</tr>\n</table>";
123//      echo "\n<tr>\n\t<td>Finanzamt</td>\n\t<td>".$finanzamt." ".$finame  . "</td>\n</tr>";
124// Ende Seitenkopf
125
126echo "\n<hr>";
127echo "\n<p class='nwlink noprint'>weitere Auskunft:</p>"; // oben rechts von der Tabelle
128echo "\n<table class='fs'>";
129
130// ** G e b i e t s z u g e h o e r i g k e i t **
131// eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben
132// Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist?
133echo "\n<tr>\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.ico' width='16' height='16' alt=''> Gebiet:</td>";
134
135// G e m e i n d e
136$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3";
137
138$v = array($bezirk,$kreis,$gemeinde);
139$res = pg_prepare("", $sql);
140$res = pg_execute("", $v);
141if (!$res) echo "<p class='err'>Fehler bei Gemeinde<br>".$sql."<br></p>";
142$row = pg_fetch_array($res);
143$gnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
144echo "\n\t<td class='lr'>Gemeinde</td><td class='lr'>";
145if ($showkey) {
146        echo "<span class='key'>(".$gemeinde.")</span> ";
147}
148echo $gnam."</td><td>&nbsp;</td></tr>";
149
150// K r e i s
151$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2";
152
153$v = array($bezirk,$kreis);
154$res = pg_prepare("", $sql);
155$res = pg_execute("", $v);
156if (!$res) echo "<p class='err'>Fehler bei Kreis<br>".$sql."<br></p>";
157$row = pg_fetch_array($res);
158$knam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
159echo "<tr><td>&nbsp;</td><td>Kreis</td><td>";
160if ($showkey) {
161        echo "<span class='key'>(".$kreis.")</span> ";
162}
163echo $knam."</td><td>&nbsp;</td></tr>";
164
165// R e g - B e z
166$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk='".$bezirk."' ";
167$res=pg_query($con, $sql);
168if (!$res) echo "<p class='err'>Fehler bei Regierungsbezirk<br>".$sql."<br></p>";
169$row = pg_fetch_array($res);
170$bnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
171echo "<tr><td>&nbsp;</td><td>Regierungsbezirk</td><td>";
172if ($showkey) {
173        echo "<span class='key'>(".$bezirk.")</span> ";
174}
175echo $bnam."</td><td>&nbsp;</td></tr>";
176// ENDE G e b i e t s z u g e h o e r i g k e i t
177
178// ** L a g e b e z e i c h n u n g **
179
180// Lagebezeichnung Mit Hausnummer
181//   ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer
182//                  <gehoertZu<
183$sql ="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung ";
184$sql.="FROM alkis_beziehungen v ";
185$sql.="JOIN ax_lagebezeichnungmithausnummer  l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN
186$sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
187$sql.="AND to_char(l.lage, 'FM00000') = lpad(s.lage,5,'0') ";
188$sql.="WHERE v.beziehung_von= $1 "; // id FS";
189$sql.="AND v.beziehungsart='weistAuf' ";
190$sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;";
191
192// Theoretisch JOIN notwendig ÃŒber den kompletten SchlÃŒssel bestehend aus land+regierungsbezirk+kreis+gemeinde+lage
193// bei einem SekundÀrbestand fÌr eine Gemeinde oder einen Kreis reicht dies hier:
194
195//$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.gemeinde=s.gemeinde AND l.lage=s.lage ";
196// Problem: ax_lagebezeichnungkatalogeintrag.lage  ist char,
197//          ax_lagebezeichnungmithausnummer.lage   ist integer,
198
199// cast() scheitert weil auch nicht numerische Inhalte
200//$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.gemeinde=s.gemeinde AND l.lage=cast(s.lage AS integer) ";
201
202// http://www.postgresql.org/docs/8.3/static/functions-formatting.html
203
204$v = array($gmlid);
205$res = pg_prepare("", $sql);
206$res = pg_execute("", $v);
207if (!$res) {echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer<br>\n".$sql."</p>";}
208$j=0;
209while($row = pg_fetch_array($res)) {
210        $sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name
211        echo "\n<tr>\n\t";
212                if ($j == 0) {
213                        echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>";
214                } else {
215                        echo "<td>&nbsp;</td>";
216                }
217                echo "\n\t<td>&nbsp;</td>";
218                echo "\n\t<td class='lr'>";
219                if ($showkey) {
220                        echo "<span class='key'>(".$row["lage"].")</span>&nbsp;";
221                }
222                echo $sname."&nbsp;".$row["hausnummer"]."</td>";
223                echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
224                        echo "\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"]."'>Lage ";
225                        echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>";
226                echo "\n\t\t</p>\n\t</td>";
227        echo "\n</tr>";
228        $j++;
229}
230// Verbesserung: mehrere HsNr zur gleichen Straße als Liste?
231
232// L a g e b e z e i c h n u n g   O h n e   H a u s n u m m e r  (Gewanne oder nur Strasse)
233//   ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer
234//                  <gehoertZu<
235$sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung ";
236$sql.="FROM alkis_beziehungen v ";
237$sql.="JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=v.beziehung_zu ";
238$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
239//      $sql.="AND l.lage=s.lage ";
240// hier beide .lage als Char(5)
241//  in ax_lagebezeichnungKatalogeintrag mit fÃŒhrenden Nullen
242//  in ax_lagebezeichnungOhneHausnummer jedoch ohne fÃŒhrende Nullen
243$sql.="AND l.lage::text=trim(leading '0' from s.lage) ";
244//      $sql.="AND cast(l.lage AS integer)=cast(s.lage AS integer) "; // Fehlversuch, auch nicht-numerische Inhalte
245$sql.="WHERE v.beziehung_von= $1 "; // id FS";
246$sql.="AND   v.beziehungsart='zeigtAuf';"; //ORDER?
247$v = array($gmlid);
248$res = pg_prepare("", $sql);
249$res = pg_execute("", $v);
250if (!$res) echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer<br>\n".$sql."</p>";
251$j=0;
252// Es wird auch eine Zeile ausgegeben, wenn kein Eintrag gefunden!
253while($row = pg_fetch_array($res)) {
254        $gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8");
255        $skey=$row["lage"]; // Strassenschluessel
256        $lgml=$row["gml_id"]; // key der Lage
257        if (!$gewann == "") {
258                echo "\n<tr>";
259                        echo "\n\t<td class='ll'><img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''> Gewanne:</td>";
260                        echo "\n\t<td></td>";
261                        echo "\n\t<td class='lr'>".$gewann."</td>";
262                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
263                                echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml."'>";
264                                echo "\n\t\t\tLage <img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''></a>";
265                        echo "\n\t\t</p>\n\t</td>";
266                echo "\n</tr>";
267        }
268        // Gleicher DB-Eintrag in zwei HTML-Zeilen, besser nur ein Link
269        if ($skey > 0) {
270                echo "\n<tr>";
271                        echo "\n\t<td class='ll'><img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''> Stra&szlig;e:</td>";
272                        echo "\n\t<td></td>";
273                        echo "\n\t<td class='lr'>";
274                        if ($showkey) {
275                                echo "<span class='key'>(".$skey.")</span>&nbsp;";
276                        }
277                        echo $row["bezeichnung"]."</td>";
278                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
279                                echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml."'>";
280                                echo "\n\t\t\tLage <img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''>\n\t\t\t</a>";
281                        echo "\n\t\t</p>\n\t</td>";
282                echo "\n</tr>";
283        }
284        $j++;
285}
286// ENDE  L a g e b e z e i c h n u n g
287
288// ** N U T Z U N G **
289// Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben
290$sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, c.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe, ";
291// Gemeinsame FlÀche von NUA und FS
292$sql.="round(st_area(st_intersection(n.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae, ";
293$sql.="c.label, c.blabla ";
294//      $sql.="round(area(n.wkb_geometry)::numeric,2) AS nflae "; // Flaeche NUA gesamt
295$sql.="FROM ax_flurstueck f, nutzung n ";
296$sql.="JOIN nutzung_meta m ON m.nutz_id=n.nutz_id ";
297$sql.="LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class ";
298$sql.="WHERE f.gml_id= $1 "; // id FS";
299$sql.="AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true "; // ueberlappende Flaechen
300$sql.="AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 "; // unter Rundung
301$sql.="ORDER BY schnittflae DESC;";
302
303$v = array($gmlid);
304$res = pg_prepare("", $sql);
305$res = pg_execute("", $v);
306if (!$res) {echo "<p class='err'>Fehler bei Suche tats. Nutzung<br>\n".$sql."</p>";}
307$j=0;
308while($row = pg_fetch_array($res)) {
309        $grupp = $row["gruppe"];  // Individuelles Icon?
310        $title = htmlentities($row["title"], ENT_QUOTES, "UTF-8"); // NUA-Titel
311        $fldclass=$row["fldclass"]; // Feldname erstes  Zusatzfeld
312        $fldinfo= $row["fldinfo"];  // Feldname zweites Zusatzfeld
313        $gml=$row["gml_id"]; // Objekt-Kennung
314        $class=$row["class"];  // erstes Zusatzfeld verschlÃŒsselt -> nutzung_class
315        $info=$row["info"]; // zweites Zusatzfeld verschlÃŒsselt (noch keine Info zum entschl.)
316        $schnittflae=$row["schnittflae"];
317        $label=$row["label"]; // Nutzungsart entschlÃŒsselt
318        $zus=$row["zustand"]; // im Bau
319        $nam=$row["name"]; // Eigenname
320        $bez=$row["bezeichnung"]; // weiterer Name (unverschl.)
321        $blabla=htmlentities($row["blabla"], ENT_QUOTES, "UTF-8"); // Beschr. aus GeoInfoDok als PopUp-Label, enthÀlt auch ""
322//      $nflae=$row["nflae"];
323
324        // Beispiele (verkÃŒrzte Anzeige):
325        // $group:    Verkehr           Vegatation       -> Icon
326        // $title:    Weg               Landwirtschaft   -> PopUp ÃŒber Icon
327        // $fldclass: Funktion          Funktion
328        // $class:    5250              ___
329        // $label:    Rad- und Fußweg   GrÃŒnland         -> angezeigter Text
330
331        echo "\n<tr>\n\t";
332                if ($j == 0) {
333                        echo "<td class='ll'><img src='ico/Abschnitt.ico' width='16' height='16' alt=''> Nutzung:</td>";
334                } else {
335                        echo "<td>&nbsp;</td>";
336                }
337                echo "\n\t<td class='fla'>".$schnittflae." m&#178;</td>";
338                echo "\n\t<td class='lr'>";
339                        If ( ($fldclass == "Funktion" OR $fldclass == "Vegetationsmerkmal") AND $label != "") { // Kurze Anzeige
340                                if ($showkey) {echo "<span class='key'>(".$class.")</span> ";}
341                                if ($blabla = "") {
342                                        echo $label;
343                                } else {
344                                        echo "<span title='".$blabla."'>".$label."</span>";
345                                }
346                        } else { // ausfuehrlichere Anzeige
347                                echo $title; // NUA-Tabelle
348                                If ($class != "") { // NUA-SchlÃŒssel
349                                        echo ", ".$fldclass.": "; // Feldname
350                                        if ($showkey) {echo "<span class='key'>(".$class.")</span> ";}
351                                        if ($label != "") { // Bedeutung dazu wurde erfasst
352                                                if ($blabla = "") {
353                                                        echo $label;
354                                                } else {
355                                                        echo "<span title='".$blabla."'>".$label."</span>";
356                                                }
357                                        } else { // muss noch erfasst werden
358                                                echo $class." "; // SchlÃŒssel als Ersatz fÃŒr Bedeutung
359                                        }
360                                }
361                        }
362
363                        If ($info != "") { // manchmal ein zweites Zusatzfeld (wie entschlÃŒsseln?)
364                                echo ", ".$fldinfo."=".$info;
365                        }
366                        If ($zus != "") { // Zustand
367                                echo "\n\t\t<br>";
368                                if ($showkey) {echo "<span class='key'>(".$zus.")</span> ";}
369                                echo "<span title='Zustand'>";                         
370                                switch ($zus) {
371                                        case 2100:
372                                                echo "Außer Betrieb, stillgelegt, verlassen";  break;
373                                        case 4000:
374                                                echo "Im Bau";  break;
375                                        case 8000:
376                                                echo "Erweiterung, Neuansiedlung";      break;
377                                        default:
378                                                echo "Zustand: ".$zus;  break;
379                                }
380                                echo "</span>";
381                        }
382                        If ($nam != "") {echo "<br>Name: ".$nam;}
383                        If ($bez != "") {echo "<br>Bezeichnung: ".$bez;}
384                echo "</td>";
385                echo "\n\t<td>";
386                        // Eigene Nachweis-Seite fÃŒr Nutzungsart-FlÀche sinnvoll? dann hier verlinken
387                        //echo "\n\t\t\t<a href='alkisnua.php?gkz=".$gkz."amp;gmlid=".$gml."'>Nutzung ";
388                        //if ($idanzeige) {linkgml($gkz, $gml, "Nutzung");} // Nein, ist mit nix verknuepft
389                        switch ($grupp) { // Icon nach 4 Objektartengruppen
390                                case "Siedlung":
391                                        $ico = "Abschnitt.ico"; break;
392                                case "Verkehr":
393                                        $ico = "Strassen_Klassifikation.ico";   break;
394                                case "Vegetation":
395                                        $ico = "Wald.ico";      break;
396                                case "GewÀsser":
397                                        $ico = "Wasser.ico";    break;
398                                default:
399                                        $ico = "Abschnitt.ico"; break;
400                        }
401                        // Icon ist auch im Druck sichtbar, class='noprint' ?           
402                        echo "<p class='nwlink'><img title='".$title."' src='ico/".$ico."' width='16' height='16' alt='NUA'></p>";
403                echo "</td>";
404        echo "\n</tr>";
405        $j++;
406}
407// ENDE  N U T Z U N G
408
409// Flaeche und Link auf GebÀude-Auswertung
410echo "\n<tr>";
411        echo "\n\t<td class='ll'>Fl&auml;che:</td>";
412        echo "\n\t<td class='fla'><span class='flae'>".$flae."</span></td>";
413        echo "\n\t<td>&nbsp;</td>\n\t<td>";
414                echo "\n\t\t<p class='nwlink noprint'>"; // Gebaeude-Verschneidung
415                        echo "\n\t\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
416                        if ($idanzeige) {echo "&amp;id=j";}
417                        if ($showkey)   {echo "&amp;id=j";}
418                        echo "' title='Geb&auml;udenachweis'>Geb&auml;ude <img src='ico/Haus.ico' width='16' height='16' alt=''></a>";
419                echo "\n\t\t</p>";
420        echo "\n\t</td>";
421echo "\n</tr>";
422
423echo "\n</table>";
424
425// ALB: KLASSIFIZIERUNG  BAULASTEN  HINWEISE  TEXTE  VERFAHREN
426
427// G R U N D B U C H
428echo "\n<table class='outer'>";
429        echo "\n<tr>";
430                echo "\n\t<td>";
431                        echo "\n\t\t<a name='gb'></a>\n\t\t<h3><img src='ico/Grundbuch_zu.ico' width='16' height='16' alt=''> Grundb&uuml;cher</h3>";
432                echo "\n\t</td>";
433                echo "\n\t<td>";
434                        echo "\n\t\t<p class='nwlink noprint'>";
435                                echo "\n\t\t\t<a href='".$self."gkz=".$gkz."&amp;gmlid=".$gmlid;
436                                if ($idanzeige) { echo "&amp;id=j";}
437                                if ($showkey)   {echo "&amp;showkey=j";}
438                                // Umschalter: FS-Nachw ruft sich selbst mit geaend. Param. auf. Posit. auf Marke #gb
439                                if ($eig=="j") {
440                                        echo "&amp;eig=n#gb' title='Flurst&uuml;cksnachweis'>ohne Eigent&uuml;mer</a>";
441                                } else {
442                                        echo "&amp;eig=j#gb' title='Flurst&uuml;cks- und Eigent&uuml;mernachweis'>mit Eigent&uuml;mer ";
443                                        echo "<img src='ico/EigentuemerGBzeile.ico' width='16' height='16' alt=''></a>";
444                                }
445                        echo "\n\t\t</p>";
446                echo "\n\t</td>";
447        echo "\n</tr>";
448echo "\n</table>\n";
449
450// B U C H U N G S S T E L L E N  zum FS (istGebucht)
451$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, ";
452$sql.="s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.bezeichner AS bart ";
453//  s.beschreibungdesumfangsderbuchung as umf,  ?
454$sql.="FROM alkis_beziehungen v "; // Bez Flurst.- Stelle.
455$sql.="JOIN ax_buchungsstelle s ON v.beziehung_zu=s.gml_id ";
456$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert ";
457$sql.="WHERE v.beziehung_von= $1 "; // id FS
458$sql.="AND v.beziehungsart= $2 ";
459$sql.="ORDER BY s.laufendenummer;";
460
461$v = array($gmlid,'istGebucht');
462$ress = pg_prepare("", $sql);
463$ress = pg_execute("", $v);
464if (!$ress) {
465        echo "\n<p class='err'>Keine Buchungsstelle.<br>\nSQL= ".$sql."</p>\n";
466}
467$bs=0; // Z.Buchungsstelle
468while($rows = pg_fetch_array($ress)) {
469        $gmls=$rows["gml_id"]; // gml b-Stelle
470        $lfd=$rows["lfd"]; // BVNR
471
472        // B U C H U N G S B L A T T  zur Buchungsstelle (istBestandteilVon)
473        $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, ";
474        $sql.="z.bezeichnung ";  // stelle -> amtsgericht
475        $sql.="FROM alkis_beziehungen v "; // Bez. Stelle - Blatt
476        $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id ";
477        $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ";
478        $sql.="WHERE v.beziehung_von= $1 "; // id Buchungsstelle
479        $sql.="AND v.beziehungsart= $2 ";
480        $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
481
482        $v = array($gmls,'istBestandteilVon');
483        $resg = pg_prepare("", $sql);
484        $resg = pg_execute("", $v);
485        if (!$resg) {
486                echo "\n<p class='err'>Kein Buchungsblatt.<br>\nSQL= ".$sql."</p>\n";
487        }
488        $bl=0; // Z.Blatt
489        while($rowg = pg_fetch_array($resg)) {
490                $gmlg=$rowg["gml_id"];
491                $beznam=$rowg["bezeichnung"];
492                $blattkeyg=$rowg["blattart"];
493                $blattartg=blattart($blattkeyg);
494
495                echo "\n<hr>";
496                echo "\n<table class='outer'>";
497                echo "\n<tr>"; // 1 row only
498                        echo "\n\t<td>"; // Outer linke Spalte:
499
500                                // Rahmen mit GB-Kennz
501                                if ($blattkeyg == 1000) {
502                                        echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>";
503                                }else {
504                                        echo "\n\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted
505                                }
506                                        echo "\n\t<tr>\n\t\t<td class='head'>Bezirk</td>";
507                                                echo "\n\t\t<td class='head'>".$blattartg."</td>";
508                                                echo "\n\t\t<td class='head'>Lfd-Nr.</td>";
509                                                echo "\n\t\t<td class='head'>Buchungsart</td>";
510                                        echo "\n\t</tr>";
511                                        echo "\n\t<tr>";
512                                                echo "\n\t\t<td title='Grundbuchbezirk'>";
513                                                        if ($showkey) {
514                                                                echo "<span class='key'>".$rowg["bezirk"]."</span><br>";
515                                                        }
516                                                echo $beznam."&nbsp;</td>";
517
518                                                echo "\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$rowg["blatt"]."</span></td>";
519
520                                                echo "\n\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundst&uuml;ck)'>".$rows["lfd"]."</td>";
521
522                                                echo "\n\t\t<td title='Buchungsart'>";
523                                                        if ($showkey) {
524                                                                echo "<span class='key'>".$rows["buchungsart"]."</span><br>";
525                                                        }
526                                                echo $rows["bart"]."</td>";
527                                        echo "\n\t</tr>";
528                                echo "\n\t</table>";
529
530                                // Miteigentumsanteil
531                                if ($rows["zaehler"] <> "") {
532                                        echo "\n<p class='ant'>".$rows["zaehler"]."/".$rows["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>";
533                                }
534                        echo "\n</td>";
535
536                        echo "\n<td>"; // Outer rechte Spalte: NW-Links
537                                if ($idanzeige) {
538                                        linkgml($gkz, $gmls, "Buchungsstelle");
539                                        echo "<br>";
540                                        linkgml($gkz, $gmlg, "Buchungsblatt");
541                                }
542                                echo "\n\t<p class='nwlink noprint'>weitere Auskunft:<br>";
543                                        echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlg."#bvnr".$lfd;
544                                                if ($idanzeige) {echo "&amp;id=j";}
545                                                if ($showkey)   {echo "&amp;showkey=j";}
546                                                if ($blattkeyg == 1000) {
547                                                        echo "' title='Grundbuchnachweis mit kompletter Eigent&uuml;merangabe'>";
548                                                } else {
549                                                        echo "' title='Grundbuchnachweis'>";
550                                                }
551                                                echo $blattartg." <img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''>";
552                                        echo "</a>";
553                                echo "\n\t</p>";
554                        echo "\n</td>";
555                echo "\n</tr>";
556                echo "\n</table>";
557
558                // +++ Weitere Felder ausgeben ?? beschreibungdesumfangsderbuchung
559                if ($rows["sond"] != "") {
560                        echo "<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rows["sond"]."</p>";
561                }
562                if ($rows["nrpl"] != "") {
563                        echo "<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$rows["nrpl"]."</span> im Aufteilungsplan.</p>";
564                }
565
566                // E I G E N T U E M E R, zum GB
567                // Person <-benennt< AX_Namensnummer  >istBestandteilVon-> AX_Buchungsblatt
568                if ($eig=="j") { // Wahlweise mit/ohne EigentÃŒmer
569                        $n = eigentuemer($con, $gkz, $idanzeige, $gmlg, false); // hier aber ohne Adresse
570                        if ($n == 0) {
571                                if ($blattkeyg == 1000) {
572                                        echo "\n<p class='err'>Keine Namensnummer gefunden.</p>";
573                                        linkgml($gkz, $gmlg, "Buchungsblatt");
574                                } else {
575                                        echo "\n<p>ohne Eigent&uuml;mer.</p>";
576                                }
577                        }
578                }
579                $bl++;
580        }
581        if ($bl == 0) {
582                echo "\n<p class='err'>Kein Buchungsblatt gefunden<br>\nSQL= ".$sql."</p>";
583                echo "\n<p class='err'>Parameter: gml_id= ".$gmls.", Beziehung='istBestandteilVon'</p>";
584                linkgml($gkz, $gmls, "Buchungstelle");
585        }
586
587        // Buchungstelle  >an>  Buchungstelle  >istBestandteilVon>  BLATT  ->  Bezirk
588        $sql ="SELECT s.gml_id AS s_gml, s.buchungsart, s.laufendenummer as lfd, ";
589        // , s.beschreibungdesumfangsderbuchung as umf   ?
590        $sql.="s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, ";
591        $sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, ";
592        $sql.="z.bezeichnung, a.bezeichner AS bart ";  // stelle -> amtsgericht
593        $sql.="FROM alkis_beziehungen an "; // Bez. Stelle - Stelle
594        $sql.="JOIN ax_buchungsstelle s ON an.beziehung_von = s.gml_id ";
595        $sql.="JOIN alkis_beziehungen v ON s.gml_id = v.beziehung_von "; // Bez. Stelle - Blatt
596        $sql.="JOIN ax_buchungsblatt  b ON v.beziehung_zu = b.gml_id ";
597        $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land = b.land AND z.bezirk = b.bezirk ";
598        $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert ";
599        $sql.="WHERE an.beziehung_zu = $1 "; // id herrschende Buchungsstelle
600        $sql.="AND an.beziehungsart = 'an' ";
601        $sql.="AND v.beziehungsart = 'istBestandteilVon' ";
602        $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
603
604        $v = array($gmls);
605        $resan = pg_prepare("", $sql);
606        $resan = pg_execute("", $v);
607
608        if (!$resan) {
609                echo "\n<p class='err'>Keine weiteren Buchungsstellen.<br>\nSQL=<br>".$sql."</p>\n";
610        }
611        $an=0; // Stelle an Stelle
612        while($rowan = pg_fetch_array($resan)) {
613                $beznam=$rowan["bezeichnung"];
614                $blattkeyan=$rowan["blattart"]; // Schluessel von Blattart
615                $blattartan=blattart($blattkeyan);                 echo "\n<hr>\n<table class='outer'>";
616                echo "\n<tr>"; // 1 row only
617                        echo "\n<td>"; // outer linke Spalte
618                                // Rahmen mit Kennzeichen GB
619                                if ($blattkeyan == 1000) {
620                                        echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>";
621                                } else {
622                                        echo "\n\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted
623                                }
624                                        echo "\n\t<tr>";
625                                                echo "\n\t\t<td class='head'>Bezirk</td>";
626                                                echo "\n\t\t<td class='head'>".$blattartan."</td>";
627                                                echo "\n\t\t<td class='head'>Lfd-Nr,</td>";
628                                                echo "\n\t\t<td class='head'>Buchungsart</td>";
629                                        echo "\n\t</tr>";
630                                        echo "\n\t<tr>";
631                                                echo "\n\t\t<td title='Grundbuchbezirk'>";
632                                                if ($showkey) {
633                                                        echo "<span class='key'>".$rowan["bezirk"]."</span><br>";
634                                                }
635                                                echo $beznam."</td>";
636
637                                                echo "\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$rowan["blatt"]."</span></td>";
638
639                                                echo "\n\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundst&uuml;ck)'>".$rowan["lfd"]."</td>";
640
641                                                echo "\n\t\t<td title='Buchungsart'>";
642                                                        if ($showkey) {
643                                                                echo "<span class='key'>".$rowan["buchungsart"]."</span><br>";
644                                                        }
645                                                        echo $rowan["bart"];
646                                                echo "</td>";
647                                        echo "\n\t</tr>";
648                                echo "\n\t</table>";
649                                if ($rowan["zaehler"] <> "") {
650                                        echo "\n<p class='ant'>".$rowan["zaehler"]."/".$rowan["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>";
651                                }
652                        echo "\n</td>";
653                        echo "\n<td>"; // outer rechte Spalte
654                                if ($idanzeige) {
655                                        linkgml($gkz, $rowan["s_gml"], "Buchungsstelle");
656                                        echo "<br>";
657                                        linkgml($gkz, $rowan["g_gml"], "Buchungsblatt");
658                                }
659                                echo "\n<br>";
660                                echo "\n\t<p class='nwlink'>";
661                                        echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$rowan["g_gml"];
662                                                if ($idanzeige) {echo "&amp;id=j";}
663                                                if ($showkey)   {echo "&amp;showkey=j";}
664                                                echo "' title='Grundbuchnachweis mit kompletter Eigent&uuml;merangabe'>";
665                                                echo $blattartan;
666                                                echo " <img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''>";
667                                        echo "</a>";
668                                echo "\n\t</p>";
669                        echo "\n\t</td>";
670                echo "\n</tr>";
671                echo "\n</table>";
672
673                if ($blattkeyan != 1000) {
674                        echo "\n<p>Blattart: ".$blattartan." (".$blattkeyan.").<br>\n";
675                }
676                // +++ Weitere Felder ausgeben? BeschreibungDesUmfangsDerBuchung
677                if ($rowan["nrpl"] != "") {
678                        echo "<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$rowan["nrpl"]."</span> im Aufteilungsplan.</p>";
679                }
680                if ($rowan["sond"] != "") {
681                        echo "<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rowan["sond"]."</p>";
682                }
683                if ($eig=="j") {
684                        $n = eigentuemer($con, $gkz, $idanzeige, $rowan["g_gml"], false, $showkey); // ohne Adresse
685                        // Anzahl $n kontrollieren? Warnen?
686                }
687                $an++;
688        }
689        // Zaehler $an==0 ist hier der Normalfall
690        $bs++;
691}
692if ($bs == 0) {
693        echo "\n<p class='err'>Keine Buchungstelle gefunden.</p>";
694        linkgml($gkz, $gmlid, "Flurst&uuml;ck");
695}
696?>
697
698<form action=''>
699        <div class='buttonbereich noprint'>
700        <hr>
701                <input type='button' name='back'  value='&lt;&lt;' title='Zur&uuml;ck'  onClick='javascript:history.back()'>&nbsp;
702                <input type='button' name='print' value='Druck' title='Seite Drucken' onClick='window.print()'>&nbsp;
703                <input type='button' name='close' value='X' title='Fenster schlie&szlig;en' onClick='window.close()'>
704        </div>
705</form>
706
707<?php footer($gkz, $gmlid, $idumschalter, $idanzeige, $_SERVER['PHP_SELF']."?", $hilfeurl, "&amp;eig=".$eig, $showkey); ?>
708
709</body>
710</html>
Note: See TracBrowser for help on using the repository browser.