source: trunk/mapbender/http/nav/alkisnav_grd.php @ 339

Revision 339, 20.3 KB checked in by frank.jaeger, 10 years ago (diff)

Rückbau von "substring(gml_id)" in Views und Programmen.
Namensänderung von Schlüsseltabellen von ax_* auf v_*.

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