source: trunk/mapbender/http/navn/alkisnav_grd.php @ 360

Revision 360, 20.6 KB checked in by frank.jaeger, 8 years ago (diff)
Line 
1<?php
2/*      Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil Grundbuch-Suche
3        Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer.
4
5Version vom
6        2016-02-11      Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet.
7*/
8
9// Variable initialisieren
10$ag="";
11$gbkennz="";
12$buchunggml="";
13$blattgml="";
14
15$cntget = extract($_GET);
16include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen
17include("alkisnav_fkt.php"); // Funktionen
18
19$con_string = "host=".$host." port=".$port." dbname=".$dbname.$gkz." user=".$user." password=".$password;
20$con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname.$gkz);
21
22echo <<<END
23<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
24<html>
25<head>
26        <meta http-equiv="cache-control" content="no-cache">
27        <meta http-equiv="pragma" content="no-cache">
28        <meta http-equiv="expires" content="0">
29        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
30        <title>ALKIS-Suche Grundbuch</title>
31        <link rel="stylesheet" type="text/css" href="alkisnav.css">
32        <script type="text/javascript">
33                function imFenster(dieURL) {
34                        var link = encodeURI(dieURL);
35                        window.open(link,'','left=10,top=10,width=680,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes');
36                }
37                function transtitle(trans) {
38                        document.getElementById('transaktiontitle').innerHTML = trans;
39                }
40                function formular_belegung(suchMich) {
41                        parent.GrdGazetteerFrame.gbkennz.value=suchMich;
42                }
43        </script>
44</head>
45<body>
46<a href='javascript:history.back()'>
47        <img src="ico/zurueck.png" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck">
48</a>&nbsp;
49<span title='zuletzt ausgef&uuml;hrte Aktion'>
50        <dfn class='title' id='transaktiontitle'></dfn>
51</span>
52
53END;
54
55function ListAG($liste_ag, $aktuell) {
56        // Amtsgerichte (Grundbuchamt) auflisten, dazu als Filter die AG-Liste aus Conf-Datei verwenden.
57        global $debug;
58        $linelimit=40;
59
60        $sql ="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle
61        WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL
62        ORDER BY bezeichnung LIMIT $1 ;";
63        $res = pg_prepare("", $sql);
64        $res = pg_execute("", array($linelimit));
65        if (!$res) {
66                echo "\n<p class='err'>Fehler bei Amtsgerichte</p>";
67                if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
68                return 0;
69        }
70        $cnt = 0;
71        while($row = pg_fetch_array($res)) { // Loop AG
72                $anr=$row["stelle"];
73                $ag=$row["ag"];         
74                zeile_ag ($ag, $anr, $aktuell);
75                $cnt++;
76        }
77        // Foot
78        if($cnt == 0){
79                echo "\n<p class='anz'>Kein Amtsgericht aus Liste ".$$liste_ag.".</p>";
80        } elseif ($cnt >= $linelimit) {
81                echo "\n<p title='Bitte eindeutiger qualifizieren'>".$cnt." Amtsgerichte ... und weitere</p>";
82        } elseif ($cnt > 1) {
83                echo "\n<p class='anz'>".$cnt." Amtsgerichte</p>";
84        }
85        return 0;
86}
87
88function ListGBBez($agkey) {
89        // Grundbuch-Bezirke zu einem Amtsgericht auflisten.
90        // Auch wenn BlÀtter vorhanden sind, kann es eine "Sackgasse" sein.
91        // Manchmal haben die BlÀtter keine FlurstÃŒcke im Filter-Bereich (Gemeinde).
92        global $debug;
93        $linelimit=100; // Bezirke/AG
94
95        // Head
96        ListAG("'".$agkey."'", true); // hier nur fÃŒr 1
97
98        // Body
99        // Die Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten
100        $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g
101        JOIN ax_dienststelle a ON g.stelle=a.stelle
102        WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL
103        AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land AND b.bezirk=g.bezirk AND b.endet IS NULL LIMIT 1) IS NULL
104        ORDER BY g.bezeichnung LIMIT $2 ;";
105
106        $v = array($agkey, $linelimit);
107        $res = pg_prepare("", $sql);
108        $res = pg_execute("", $v);
109        if (!$res) {
110                echo "\n<p class='err'>Fehler bei Grundbuch-Bezirk</p>";
111                #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
112                return 0;
113        }
114        $cnt = 0;
115        while($row = pg_fetch_array($res)) { // Loop BEZIRK
116                $gnam=$row["bezeichnung"];
117                $gnr=$row["bezirk"];
118                zeile_gbbez($gnam, $gnr, false);
119                $cnt++;
120        }
121        // Foot
122        if($cnt == 0){
123                echo "\n<p class='anz'>Kein Bezirk mit Bl&auml;ttern.</p>";
124        } elseif ($cnt >= $linelimit) {
125                echo "\n<p class='anz' title='Bitte Name des Bezirks suchen lassen'>".$cnt." Bezirke ... und weitere</p>";
126        } elseif($cnt > 1) {
127                echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit       
128        }
129        return;
130}
131
132function ag_bez_head($gbbez, $bezaktuell) {
133        // Zu einem Grundbuchbezirks-SchlÃŒssel die Zeilen "AG" und "Bezirk" ausgeben
134        // Parameter = SchlÃŒssel des Bezirks
135        #global $debug;
136        $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g
137        JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;";
138        $v=array($gbbez);
139        $res=pg_prepare("", $sql);
140        $res=pg_execute("", $v);
141        if (!$res) {
142                echo "\n<p class='err'>Fehler bei Amtsgericht und Grundbuchbezirk.</p>";
143                #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
144        }
145        $row = pg_fetch_array($res);
146        if ($row) {
147                $gnam=$row["bezeichnung"]; // GB-Bezirk Bezeichnung
148                $ag=$row["ag"]; // AG Bezeichnung
149                $anr=$row["stelle"]; // AG Key
150                zeile_ag($ag, $anr, false); // Amtsgericht
151                zeile_gbbez($gnam, $gbbez, $bezaktuell); // Bezirk
152        } else {
153                echo "\n<div class='gk' title='Grundbuchbezirk'>";
154                        echo "\n\t\t<p class='err'><img class='nwlink' src='ico/GB-Bezirk.png' width='16' height='16' alt='Bez.'>";
155                                echo  " Bezirk '".$gbbez."' ist unbekannt.</p>";
156                echo "\n</div>";
157                return;
158        }
159        return;
160}
161
162function SuchGBBezName() {
163        // Grundbuch-Bezirk suchen nach Name(-nsanfang)
164        global $gkz, $gemeinde, $debug, $gbkennz;
165        $linelimit=80;
166
167        $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g
168        JOIN ax_dienststelle a ON g.stelle=a.stelle
169        WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL
170        ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;";// "AND a.stellenart=1000 " Amtsgericht
171        if ( $gbkennz == "") {
172                $match = "%";
173        } else {       
174                if(preg_match("/\*/",$gbkennz)){
175                        $match = trim(preg_replace("/\*/i","%", strtoupper($gbkennz)));
176                } else {
177                        $match = trim($gbkennz)."%";
178                }       
179        }
180        $v = array($match, $linelimit);
181        $res = pg_prepare("", $sql);
182        $res = pg_execute("", $v);
183        if (!$res) {
184                echo "\n<p class='err'>Fehler bei Grundbuch-Bezirk</p>";
185                return 1;
186        }
187        $cnt=0;
188        $gwag="";
189        while($row = pg_fetch_array($res)) { // Loop BEZIRK
190                $anr=$row["stelle"]; // Gruppierung AG
191                if ($gwag != $anr) {
192                        $gwag = $anr;
193                        $ag=$row["ag"];
194                        zeile_ag($ag, $anr, false);
195                }
196                $gnam=$row["bezeichnung"];
197                $gnr=$row["bezirk"];
198                zeile_gbbez ($gnam, $gnr, false);
199                $cnt++;
200        }
201        // Foot
202        if($cnt == 0){
203                echo "\n<p class='anz'>Kein Grundbuchbezirk.</p>";
204        } elseif ($cnt >= $linelimit) {
205                echo "\n<p title='Bitte eindeutiger qualifizieren'>".$cnt." Bezirke ... und weitere</p>";
206        } elseif ($cnt == 1) {
207                return $gnr; // Wenn eindeutig, gleich weiter
208        } elseif ($cnt > 1) {
209                echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit       
210        }
211        return;
212}
213 
214function EinBezirk($showParent) {
215        // Kennzeichen bestehend nur aus GB-Bezirk-SchlÃŒssel wurde eingegeben
216        global $gemeinde, $debug, $zgbbez, $auskpath;
217        $linelimit=300; // max. Blatt je Bezirk
218        // Dies Limit ist nicht ausreichend fÃŒr alle BlÀtter eines Bezirks, aber ...
219        // Wenn man die Blatt-Nr nicht kennt, kommt man hier sowieso nicht weiter.
220        // Es nutzt also nichts, hier tausende Nummern aufzulisten.
221        // +++ BlÀtter-Funktion einfÃŒhren analog Modul _eig
222
223        // Head
224        if ($showParent) {
225                ag_bez_head($zgbbez, true); // AG und BEZ ausgeben
226        }
227        // Body
228        $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b
229        WHERE b.bezirk= $1 AND b.endet IS NULL ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;";
230        $v=array($zgbbez, $linelimit);
231        $res=pg_prepare("", $sql);
232        $res=pg_execute("", $v);
233        if (!$res) {
234                echo "\n<p class='err'>Fehler bei Bezirk.</p>";
235                #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
236        }
237        $cntbl=0; // Counter Blatt/Bezirk
238        while($row = pg_fetch_array($res)) { // Loop BLATT     
239                $blatt=$row["blatt"];
240                $blattgml=$row["gml_id"];
241                zeile_blatt($zgbbez, "", $blattgml, $blatt, false, "", false);
242                $cntbl++;
243        }
244        // Foot
245        if($cntbl == 0) {
246                echo "\n<p class='anz'>Kein Blatt im Bezirk.</p>";
247        } elseif($cntbl >= $linelimit) {
248                echo "\n<p class='anz'>".$cntbl." Bl&auml;tter ... und weitere</p>";
249                // +++ Hier oft ÃŒberschritten! BlÀtter-Funktion einfÃŒhren
250                echo "\n<p>Geben sie ein: '".$zgbbez."-999A'<br>wobei '999A' = gesuchtes GB-Blatt</p>";
251                // Vorbelegen des Eingabefeldes fÃŒr neue Suche
252                echo "<script type='text/javascript'>parent.GrdGazetteerFrame.gbkennz.value='".$zgbbez."-?';</script>";
253        } elseif ($cntbl > 1) {
254                echo "\n<p class='anz'>".$cntbl." Bl&auml;tter</p>"; // im Limit       
255        }
256        return;
257}
258
259function gml_blatt() {
260        // Kennzeichen "Bezirk + Blatt" eingegeben. Dazu die gml_id des Blattes ermitteln.
261        global $debug, $zgbbez, $zblatt, $zblattn, $zblattz;
262        $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b
263        WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung ";
264
265        if ($zblattz == "") { // Ohne Buchstabenerweiterung: Formate '123','000123 ','0000123'
266                $sql.="IN ('".$zblattn."','".str_pad($zblattn, 6, "0", STR_PAD_LEFT)." ','".str_pad($zblattn, 7, "0", STR_PAD_LEFT)."');";
267        } else { // Mit Buchstabenerweiterung: '000123A'
268                $sql.="='".str_pad($zblattn, 6, "0", STR_PAD_LEFT).$zblattz."';";
269        }
270        $v=array($zgbbez);
271        $res=pg_prepare("", $sql);
272        $res=pg_execute("", $v);
273        if (!$res) {
274                echo "\n<p class='err'>Fehler bei Blatt (Kennzeichen).</p>";
275                return;
276        }
277        $cntbl=0; // Counter Blatt
278        while($row = pg_fetch_array($res)) {   
279                $bl_gml=$row["gml_id"];
280                $zblatt=$row["blatt"]; // das tatsaechliche Format (mit/ohne fuehrende 0)
281                $cntbl++;
282        }
283        if($cntbl == 0) {
284                echo "\n<p class='err'>Grundbuchblatt '".$zgbbez."-".$zblatt."' nicht gefunden.</p>";
285        } elseif ($cntbl == 1) {
286                return $bl_gml;
287        }
288        return;
289}
290
291function EinBlatt($showParent) {
292        // Kennzeichen Bezirk + Blatt wurde eingegeben oder verlinkt
293        global $debug, $gemeinde, $zgbbez, $zblatt, $blattgml, $gbbeznam;
294        // Head
295        if ($showParent) {
296                ag_bez_head($zgbbez, false); // AG + BEZ
297                zeile_blatt ($zgbbez, "", $blattgml, $zblatt, false, "", true);
298        }
299        // Body
300        GB_Buchung_FS(1000, $zgbbez."-".$zblatt); // Blatt -> Buchung -> Flurstueck (Limitiert)
301        // ++ besser Limit runter und "BlÀttern"-Funktion einfÃŒhren
302        return;
303}
304
305function gml_buchungsstelle() {
306        // Kennzeichen "Bezirk + Blatt + BVNR" wurde eingegeben.
307        // Dazu die gml_id der Buchungsstelle ermitteln, um "function EinGrundstueck" benutzen zu können.
308        global $debug, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr;
309
310        // Blatt ->  B u c h u n g s s t e l l e
311        $sql ="SELECT s.gml_id FROM ax_buchungsstelle s
312        JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id
313        WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung ";
314
315        if ($zblattz == "") { // Ohne Buchstabenerweiterung
316                //Formate '123','000123 ','0000123'
317                $sql.="IN ('".$zblattn."','".str_pad($zblattn, 6, "0", STR_PAD_LEFT)." ','".str_pad($zblattn, 7, "0", STR_PAD_LEFT)."')";
318        } else { // Mit Buchstabenerweiterung: '000123A'
319                $sql.="='".str_pad($zblattn, 6, "0", STR_PAD_LEFT).$zblattz."'";
320        }
321        $sql.=" AND s.laufendenummer= $2 ;";
322
323        $v=array($zgbbez, $zbvnr);
324        $res=pg_prepare("", $sql);
325        $res=pg_execute("", $v);
326        if (!$res) {
327                echo "\n<p class='err'>Fehler bei Buchungsstelle (Kennzeichen).</p>";
328                return;
329        }
330        $zbs=0;
331        while($row = pg_fetch_array($res)) {   
332                $bs_gml=$row["gml_id"];
333                $zbs++;
334        }
335        if($zbs == 0) {
336                echo "\n<p class='err'>Buchung ".$zgbbez."-".$zblattn.$zblattz."-".$zbvnr." nicht gefunden.</p>";
337                return;
338        } else {
339                return $bs_gml;
340        }
341}
342
343function EinGrundstueck($showParent) {
344        // Die gml_id der Buchungsstelle (BVNR, GrundstÃŒck) ist bekannt = $buchunggml
345        // Die gebuchten FlurstÃŒcke und dienende/herrschenden Buchungen werden ausgegeben.
346        global $debug, $gemeinde, $epsg, $buchunggml, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter;
347        // NoLimit?
348
349        // Head
350        if ($showParent) { // wenn Kennzeichen bekannt ist, dann auch Blatt ausgeben
351                if ($zgbbez.$zblatt != "") {
352                        ag_bez_head($zgbbez, false); // AG + BEZ
353                        zeile_blatt ($zgbbez, "", "", $zblatt, false, "", false);
354                        // Parameter 2 ($gnam) leer lassen Knoten "Bezirk" steht drÃŒber
355                } else {
356                        echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>";
357                } // ++ suchen!
358                zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz, false, true);
359        }
360
361// dienend $1 gml_id von
362//         Buchungsstelle  <an<  Buchungsstelle sh
363//         (dienend)                (herrschend)
364
365// direkt  $1 gml_id von
366//         Buchungsstelle                           <istGebucht< FlurstÃŒck >> Gemarkung
367
368// Recht   $1 gml_id von
369//         Buchungsstelle  >an>  Buchungsstelle sd  <istGebucht< FlurstÃŒck >> Gemarkung
370//         (herrschend)             (dienend)   sd  >istBestandteilVon> bd >> gd
371
372        // Body
373        // Anfang (Select-Liste) gleich
374        $sqlanf ="SELECT g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, ";
375        if($epsg == "25832") { // Transform nicht notwendig
376                $sqlanf.="st_x(st_Centroid(f.wkb_geometry)) AS x, ";
377                $sqlanf.="st_y(st_Centroid(f.wkb_geometry)) AS y ";
378        } else { 
379                $sqlanf.="st_x(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS x, ";
380                $sqlanf.="st_y(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS y ";                     
381        }
382        // Filter gleich
383        $sqlfilter="";
384        switch ($gfilter) { // Filter Gemeinde
385                case 1: // Einzel
386                        $sqlfitler="AND f.gemeinde='".$gemeinde."' "; break;
387                case 2: // Liste
388                        $sqlfilter="AND f.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break;
389        }
390
391        // Direkte Buchungen (Flurst.)
392        $sql =$sqlanf."FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
393        $sql.="WHERE f.istgebucht = $1 AND f.endet IS NULL ".$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
394
395        $v=array($buchunggml);
396        $res=pg_prepare("", $sql);
397        $res=pg_execute("", $v);
398        if (!$res) {
399                echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, direkt).</p>";
400                if ($debug >= 3) {
401                        echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>";
402                }
403        }
404        $zfs1=0;
405        while($row = pg_fetch_array($res)) {   
406                $fs_gml=$row["gml_id"];
407                $gmkg=$row["bezeichnung"];
408                $flur=$row["flurnummer"];
409                $fskenn=$row["zaehler"];
410                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr
411                zeile_flurstueck ($fs_gml, $fskenn, $row["x"], $row["y"], $gmkg, $flur, false);
412                $zfs1++;
413        }
414        // Zwischen-Foot
415        if($zfs1 == 0) {
416                echo "\n<p class='anz'>Kein Flurst&uuml;ck zu dieser Buchung</p>";
417        } elseif($zfs1 > 1) {
418                echo "\n<p class='anz'>".$zfs1." Flurst&uuml;cke</p>";
419        }
420        if($zfs1 > 0) { // wenn's was zu trennen gibt
421                echo "<hr>"; // Trennen
422        }
423
424        // Recht "an" (dienende Buchungen und ihre Flurst.)
425
426$sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd,
427bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt,
428gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez
429FROM ax_buchungsstelle sh
430JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an)
431JOIN ax_flurstueck f ON f.istgebucht=sd.gml_id
432JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer
433JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id
434JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk
435WHERE sh.gml_id = $1 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND bd.endet IS NULL AND gd.endet IS NULL "
436
437.$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
438
439        $v=array($buchunggml);
440        $res=pg_prepare("", $sql);
441        $res=pg_execute("", $v);
442        if (!$res) {
443                echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, Recht an).</p>";
444                if ($debug >= 3) {
445                        echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>";
446                }
447        }
448        $zfs2=0;
449        $gwblatt="";
450        while($row = pg_fetch_array($res)) {
451                $dienstelle=$row["stelle"];     // Stelle (AG) des dien. Grdst.
452                $dienbezgml=$row["dienbezgml"]; // Bezirk des dien. GS: gml, Nr. und Bezeichnung
453                $diengbbez=$row["diengbbez"];   // Bezeichnung
454                $dienbezirk=$row["bezirk"];     // Key
455                $dienbltgml=$row["dienbltgml"]; // dien. Blatt, gml und Nr
456                $dienblatt=$row["dienblatt"];
457                $diengml=$row["diengml"];       // gml_id des dien. Grdst.
458                $dienlfd=$row["dienlfd"];       // BVNR (laufendNr) des dien. GS
459                if ($gwblatt != $dienblatt) { // Grupp. Blatt - dien.
460                        if ($gwblatt == "") { // der erste "dienende": Einleitungs-Zeile
461                                $aber="";
462                                if($zfs1 == 0) {$aber="Aber ein ";}
463                                echo "\n<p class='anz' title='Die oben genannte Buchung hat ein Recht an den folgenden Buchungen'>".$aber."Recht an ..</p>";
464                        }
465                        $gwblatt = $dienblatt; // Steuerg GW Blatt
466                        zeile_blatt($dienbezirk, $diengbbez, $dienbltgml, $dienblatt, true, "", false);
467                        $gwbvnr="";
468                }
469                if ($gwbvnr != $dienlfd) { // Gruppierung Buchung (BVNR) - dienend
470                        $gwbvnr = $dienlfd; // Steuerg GW BVNR
471                        zeile_buchung($diengml, $dienlfd, $dienbezirk."-".$dienblatt, true, false);
472                } // ++ Buchungsart? Welches Recht?
473                $fs_gml=$row["gml_id"];
474                $gmkg=$row["bezeichnung"];
475                $flur=$row["flurnummer"];
476                $fskenn=$row["zaehler"];
477                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr
478                zeile_flurstueck ($fs_gml, $fskenn, $row["x"],$row["y"], $gmkg, $flur, false);
479                $zfs2++;
480        }
481
482// Teil 3 - noch nicht umgesetzt
483// ToDo: Wenn nur 1 GrundstÃŒck untersucht wird, dann dazu auch die berechtigten (herrschenden) GrundbÃŒcher anzeigen und verlinken (ohne FS)
484
485        // Foot
486        if($zfs2 == 0 AND $zfs1 == 0) {
487                echo "\n<p class='anz'>Kein Recht an Flst.</p>";
488        } elseif($zfs2 > 1) {
489                echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>";
490        }
491        return;
492}
493
494// ===========
495// Start hier!
496// ===========
497if(isset($epsg)) {
498        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);   
499} else {
500        $epsg=$gui_epsg; // aus Conf
501}
502
503// Filter aus Conf-Datei
504if ($gemeinde == "") {
505        $gfilter = 0; // ungefiltert
506} elseif(strpos($gemeinde, ",") === false) {
507        $gfilter = 1; // Einzelwert
508} else {
509        $gfilter = 2; // Liste
510//      $gemeinde = "'".str_replace(",", "','", $gemeinde)."'"; // Jedes Element in ''
511}
512
513// Das eingegebene Kennzeichen fÃŒr "Anzeige" und "weitere Links" zerlegen,
514// auch wenn ÃŒber einen ein Self-Link mit gml_id aufgerufen.
515$kennztyp=ZerlegungGBKennz($gbkennz);
516
517// Wurde eine gml_id (internes Kennzeichen) aus einem Self-Link verwendet?
518// Dann hat DAS PrioritÀt, dann also *nicht* nach $gbkennz suchen.
519if ($buchunggml != "") { // gml der Buchungsstelle
520        $trans="Flurst&uuml;cke zur Buchungsstelle"; // Link
521        EinGrundstueck(true);
522
523} elseif($blattgml != "") { // gml des GB-Blattes
524        $trans="GB-Blatt mit Buchungen und Flst.";
525        EinBlatt(true);
526
527} elseif($ag != "") { // Key des Amtsgerichtes
528        $trans="GB-Bezirke zum Amtsgericht";
529        ListGBBez($ag);
530
531} else { // kein Self-Link sondern manuelle Eingabe im Formular
532        switch ($kennztyp) { // wurde oben bereits analysiert und zerlegt
533                case 0: // keine Eingabe
534                        $trans="Liste der Amtsgerichte";
535                        ListAG($ag_liste, false);
536                        break;
537                case 1: // Eingabe Bezirk-Name (-Teil) -> gefilterte Liste der Bezirke
538                        $trans="Bezirke suchen \"".$gbkennz."\"";
539                        $beznr=SuchGBBezName();
540                        if ($beznr > 0) {  // wenn der Suchbegriff eindeutig war, ..
541                                $zgbbez=$beznr;
542                                $trans="Bezirk gefunden, Bl&auml;tter dazu";
543                                EinBezirk(false); // .. dann gleich weiter
544                        };
545                        break;
546                case 2: // Eingabe Bezirk-Nummer -> Liste der BlÀtter im Bezirk
547                        $trans="Bl&auml;tter im GB-Bezirk";
548                        EinBezirk(true);
549                        break;
550                case 3: // Eingabe GB-Blatt -> Liste der Buchungen auf dem Blatt
551                        $trans="Buchungen auf GB-Blatt";
552                        $blattgml=gml_blatt(); // gml_id zum Blatt suchen
553                        if ($blattgml != "") { // gefunden             
554                                if (EinBlatt(true) == 1) { // wenn darauf genau eine Buchung ist
555                                        $trans="GB-Blatt und 1 Buchung"; // dann gleich tiefer rein
556                                        $buchunggml=gml_buchungsstelle(); // gml_id der Buchung
557                                        EinGrundstueck(false);
558                                }
559                        }
560                        break;
561                case 4: // Eingabe Buchung (GrundstÃŒck) -> Liste der FlurstÃŒcke
562                        $buchunggml=gml_buchungsstelle(); // gml_id zum Kennzeichen
563                        if ($buchunggml != "") {                // .. wurde geliefert
564                                $trans="Flurst&uuml;cke zur Buchungsstelle"; // Eingabe
565                                EinGrundstueck(true);   // mit Backlink
566                        } else{
567                                $trans="Suche Buchungsstelle";
568                        }
569                        break;
570                case 9: // Fehler
571                        $trans="fehlerhafte Eingabe";
572                        echo "\n<p class='err'>Bitte ein g&uuml;ltiges Grundbuchkennzeichen eingegeben, Format 'gggg-999999A-llll</p>";
573                        break;
574        }
575}
576
577// Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion
578//  im Kopf des Ergebnisrahmens anzeigen.
579// Dazu die im HTML-Header definierte Javascript-Function benutzen.
580// Alternativ wird auch aus dem Javascript "positionieren Karte" dieser Titel gesetzt.
581echo "
582<script type='text/javascript'>
583        transtitle('".$trans."');
584</script>";
585
586?>
587
588</body>
589</html>
Note: See TracBrowser for help on using the repository browser.