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

Revision 356, 20.8 KB checked in by frank.jaeger, 4 years ago (diff)

ALKIS-Mapbender-Navigation umgestellt von .ico- auf .png-Grafiken.
Weitere kleine Korrekturen an ALKIS-Mapbender-Navigation.

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