source: trunk/var/www/info/alkis/alkisfkt.php @ 45

Revision 45, 25.1 KB checked in by frank.jaeger, 14 years ago (diff)
Line 
1<?php
2/*      Modul: alkisfkt.php
3        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
4        Functions
5
6        Version:
7                31.08.2010      $style=ALKIS entfernt, link zu alkislage.php
8                02.09.2010  mit Icons
9                07.09.2010  Schluessel anschaltbar
10                15.09.2010  Function "buchungsart" durch JOIN ersetzt
11*/
12 function footer($gkz, $gmlid, $idumschalter, $idanzeige, $link, $hilfeurl, $append, $showkey) {
13        // Einen Seitenfuss ausgeben.
14        // Den URL-Parameter "&id=j/n" und "&showkey=j/n" in allen Kombinationen umschalten lassen.
15        // Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor
16
17        // Der Parameter $append wird angehaengt wenn gefuellt
18        //  Anwendung: &eig=j bei FS-NW, &ltyp=m/p/o bei Lage
19       
20        $customer=$_SESSION["mb_user_name"];
21        echo "\n<div class='confbereich noprint'>";
22
23        echo "\n<table class='outer'>\n<tr>";
24
25        // Spalte 1: Info Benutzerkennung
26        echo "\n\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></td>";
27       
28        // Spalte 2: Umschalter
29        echo "\n\t<td title='Konfiguration'>";
30                // Umschalter:
31                // - Schluessel         
32                // - Testmodus ID-Anzeige
33               
34                // bei beiden           
35                $mylink ="\n\t\t<a class='gmlid' href='".$link."gkz=".$gkz."&amp;gmlid=".$gmlid.$append;
36
37                if ($showkey) { // bleibt so
38                        $mykey = "&amp;showkey=j";
39                } else {
40                        $mykey = "&amp;showkey=n";
41                }
42
43                if ($idumschalter) { // fuer Entwicklung ODER Test
44
45                        if ($idanzeige) { // bleibt so
46                                $myid = "&amp;id=j";
47                        } else {
48                                $myid = "&amp;id=n";
49                        }
50
51                        // Umschalter nur ausgeben, wenn in conf gesetzt
52                        if ($idanzeige) { // Umschalten ID ein/aus
53                                echo $mylink.$mykey."&amp;id=n' title='Ohne Verfolgung der ALKIS-Beziehungen'>";
54                                echo "<img src='ico/Beziehung_link.ico' width='16' height='16' alt=''> ID aus</a>";
55                        } else {
56                                echo $mylink.$mykey."&amp;id=j' title='Verfolgung der GML-ID in den ALKIS-Beziehungen'>";
57                                echo "<img src='ico/Beziehung_link.ico' width='16' height='16' alt=''> ID ein</a>";
58                        }
59                        echo " | ";
60                } else { // keinen ID-Umschalter
61                        $myid = "";
62                }
63
64                if ($showkey) { // // Umschalten SchlÃŒssel ein/aus
65                        echo $mylink.$myid."&amp;showkey=n' title='Verschl&uuml;sselungen ausblenden'>Schl&uuml;ssel aus</a>";
66                } else {
67                        echo $mylink.$myid."&amp;showkey=j' title='Verschl&uuml;sselungen anzeigen'>Schl&uuml;ssel ein</a>";
68                }
69
70        echo "\n\t</td>";
71
72        // Spalte 3
73        echo "\n\t<td title='Hilfe'>";
74        echo "\n\t\t<p class='nwlink'>\n\t\t\t<a target='_blank' href='".$hilfeurl."' title='Dokumentation'>Hilfe zur ALKIS-Auskunft</a>\n\t\t</p>\n\t</td>";
75
76        echo "\n</tr>\n</table>\n</div>\n";
77
78/*      echo "<br><p class='err'>";
79        echo "gkz=".$gkz."<br>";
80        echo "gmlid=".$gmlid."<br>";
81        echo "idumschalter=".$idumschalter."<br>";
82        echo "idanzeige=".$idanzeige."<br>";
83        echo "link=".$link."<br>";
84        echo "hilfeurl=".$hilfeurl."<br>";
85        echo "append=".$append."<br>";
86        echo "showkey=".$showkey;       
87        echo "</p>"; */
88         return 0;
89}
90
91function linkgml($gkz, $gml, $typ)  {
92        // Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php
93        $kurzid=substr($gml, 12); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich         echo "\n\t\t<a target='_blank' title='ID ".$typ."' class='gmlid noprint' ";
94        echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."'>";
95        echo "<img src='ico/Beziehung_link.ico' width='16' height='16' alt=''>".$kurzid."</a>";
96        return 0;
97}
98
99function kurz_namnr($lang) {
100        // Namensnummer kuerzen. Nicht benoetigte Stufen der Dezimalklassifikation abschneiden
101        $kurz=str_replace(".00","",$lang);      // leere Stufen (nur am Ende)
102        $kurz=str_replace("0000","",$kurz);     // ganz leer (am Anfang)
103        $kurz=ltrim($kurz, "0");                                // fuehrende Nullen am Anfang
104        $kurz=str_replace(".0",".",$kurz);      // fuehrende Null jeder Stufe
105        return $kurz;
106}
107
108function fs_gebietszug($con, $gemeinde, $kreis, $bezirk, $showkey) {
109        // eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben
110        // Parameter = Schluesselwerte
111        // Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist?
112
113        echo "\n<tr>\n\t<td class='ll'><img src='ico/Gemeinde.ico' width='16' height='16' alt=''> Im Gebiet von:</td>";
114       
115        // G e m e i n d e
116        $sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk='".$bezirk."' AND kreis='".$kreis."' AND gemeinde='".$gemeinde."' ";
117        $res=pg_query($con, $sql);
118        if (!$res) echo "<p class='err'>Fehler bei Gemeinde<br>".$sql."<br></p>";
119        $row = pg_fetch_array($res);
120        $gnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
121        echo "\n\t<td class='lr'>Gemeinde ";
122        if ($showkey) {
123                echo "<span class='key'>(".$gemeinde.")</span> ";
124        }
125        echo $gnam."<br>";
126
127        // K r e i s
128        $sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk='".$bezirk."' AND kreis='".$kreis."' ";
129        $res=pg_query($con, $sql);
130        if (!$res) echo "<p class='err'>Fehler bei Kreis<br>".$sql."<br></p>";
131        $row = pg_fetch_array($res);
132        $knam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
133        echo "Kreis ";
134        if ($showkey) {
135                echo "<span class='key'>(".$kreis.")</span> ";
136        }       
137        echo $knam."<br>";
138
139        // R e g - B e z
140        $sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk='".$bezirk."' ";
141        $res=pg_query($con, $sql);
142        if (!$res) echo "<p class='err'>Fehler bei Regierungsbezirk<br>".$sql."<br></p>";
143        $row = pg_fetch_array($res);
144        $bnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
145        echo "Regierungsbezirk ";
146        if ($showkey) {
147                echo "<span class='key'>(".$bezirk.")</span> ";
148        }
149        echo $bnam."</td>";
150       
151        // 3. Spalte fÃŒr NW-Link (in weiteren Tab-Zeilen)
152        echo "\n\t<td>&nbsp;</td>\n</tr>";
153        return 0;
154}
155
156function fs_lage($con, $gmlid, $gkz, $showkey) {
157        // Tabellenzeilen mit Lage eines FS
158        // Parameter = ID des FS
159
160        // Lagebezeichnung Mit Hausnummer
161        //   ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer
162        //                  <gehoertZu<
163        $sql ="SELECT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung ";
164        $sql.="FROM  alkis_beziehungen v ";
165        $sql.="JOIN  ax_lagebezeichnungmithausnummer  l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN
166        $sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage ";
167        $sql.="WHERE v.beziehung_von='".$gmlid."' "; // id FS";
168        $sql.="AND   v.beziehungsart='weistAuf' ";
169        $sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;";
170
171        // Theoretisch JOIN notwendig ÃŒber den kompletten SchlÃŒssel bestehend aus land+regierungsbezirk+kreis+gemeinde+lage
172        // bei einem SekundÀrbestand fÃŒr eine Gemeinde oder einen Kreis reicht dies hier:
173
174        //$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.gemeinde=s.gemeinde AND l.lage=s.lage ";
175        // Problem: ax_lagebezeichnungkatalogeintrag.lage  ist char,
176        //          ax_lagebezeichnungmithausnummer.lage   ist integer,
177
178        // cast() scheitert weil auch nicht numerische Inhalte
179        //$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.gemeinde=s.gemeinde AND l.lage=cast(s.lage AS integer) ";
180
181        // http://www.postgresql.org/docs/8.3/static/functions-formatting.html
182
183        $res=pg_query($con, $sql);
184        if (!$res) {echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer<br>\n".$sql."</p>";}
185        $j=0;
186        while($row = pg_fetch_array($res)) {
187                $sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name
188                //echo "<!-- Adresse -->";             
189                echo "\n<tr>\n\t";
190                        if ($j == 0) {         
191                                echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>";
192                        } else {
193                                echo "<td>&nbsp;</td>";
194                        }
195                        echo "\n\t<td class='lr'>";
196                        if ($showkey) {
197                                echo "<span class='key'>(".$row["lage"].")</span>&nbsp;";
198                        }
199                        echo $sname."&nbsp;".$row["hausnummer"]."</td>";
200                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
201                                echo "\n\t\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"]."'>Lage ";
202                                echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>";
203                        echo "\n\t\t</p>\n\t</td>";
204                echo "\n</tr>";
205                $j++;
206        }
207        $z=$j;
208
209        // 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)
210        //   ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer
211        //                  <gehoertZu<
212        $sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung ";
213        $sql.="FROM alkis_beziehungen v ";
214        $sql.="JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=v.beziehung_zu ";
215        $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
216//      $sql.="AND l.lage=s.lage ";
217        // hier beide .lage als Char(5)
218        //  in ax_lagebezeichnungKatalogeintrag mit fÃŒhrenden Nullen
219        //  in ax_lagebezeichnungOhneHausnummer jedoch ohne fÃŒhrende Nullen
220        $sql.="AND l.lage=trim(leading '0' from s.lage) ";
221//      $sql.="AND cast(l.lage AS integer)=cast(s.lage AS integer) "; // Fehlversuch, auch nicht-numerische Inhalte
222        $sql.="WHERE v.beziehung_von='".$gmlid."' "; // id FS";
223        $sql.="AND   v.beziehungsart='zeigtAuf';"; //ORDER?
224        $res=pg_query($con, $sql);
225        if (!$res) echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer<br>\n".$sql."</p>";
226        $j=0;
227        // Es wird auch eine Zeile ausgegeben, wenn kein Eintrag gefunden!     
228        while($row = pg_fetch_array($res)) {
229                $gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8");                 $skey=$row["lage"]; // Strassenschluessel
230                $lgml=$row["gml_id"]; // key der Lage
231                if (!$gewann == "") {
232                        echo "\n<tr>";         
233                                echo "\n\t<td class='ll'><img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''> Gewanne:</td>";
234                                echo "\n\t<td class='lr'>".$gewann."</td>";
235                                echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
236                                        echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml."'>";
237                                        echo "\n\t\t\tLage <img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''></a>";
238                                echo "\n\t\t</p>\n\t</td>";
239                        echo "\n</tr>";         
240                }
241                // Gleicher DB-Eintrag in zwei HTML-Zeilen, besser nur ein Link
242                if ($skey > 0) {
243                        echo "\n<tr>"; 
244                                echo "\n\t<td class='ll'><img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''> Stra&szlig;e:</td>";                         
245                                echo "\n\t<td class='lr'>";
246                                if ($showkey) {
247                                        echo "<span class='key'>(".$skey.")</span>&nbsp;";
248                                }
249                                echo $row["bezeichnung"]."</td>";
250                                echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
251                                        echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml."'>";
252                                        echo "\n\t\t\tLage <img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''>\n\t\t\t</a>";
253                                echo "\n\t\t</p>\n\t</td>";
254                        echo "\n</tr>";
255                }               
256                $j++;
257        }
258        $z=$z+$j;
259        return $z; // Anzahl Zeilen
260}
261
262function fs_nutz($con, $gmlid) {
263        // Tabellenzeilen (3 Sp.) mit tats. Nutzung zu einem FS ausgeben
264        // Parameter = ID des FS
265        echo "\n<tr>\n\t<td class='ll'><img src='ico/Abschnitt.ico' width='16' height='16' alt=''> Nutzungsarten:</td>";
266        echo "\n\t<td class='ph'>(Programmteil ist noch in Arbeit)</td>";
267        echo "\n\t<td>&nbsp;</td>\n</tr>";
268}
269
270function bnw_fsdaten($con, $gkz, $idanzeige, $lfdnr, $gml_bs, $ba, $anteil, $bvnraus, $showkey) {
271/*      Bestandsnachweis - Flurstuecksdaten
272        Die Tabellenzeilen mit den Flurstuecksdaten zu einer Buchungsstelle im Bestandsnachweis ausgeben.
273        Die Funktion wird je einmal aufgerufen fÃŒr die Buchungen direkt auf dem GB (Normalfall).
274        Weiterere Aufrufe ggf. bei Erbbaurecht fÃŒr die mit "an" verknuepften Buchungsstellen.
275        Table-Tag und Kopfzeile im aufrufenden Programm.
276*/
277
278        // F L U R S T U E C K
279        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, ";
280        $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
281        $sql.="FROM ax_gemarkung g ";
282        $sql.="JOIN ax_flurstueck f ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
283        $sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von ";
284        $sql.="WHERE v.beziehung_zu='".$gml_bs."' "; // id buchungsstelle
285        $sql.="AND   v.beziehungsart='istGebucht' ";
286        $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
287
288        $resf=pg_query($con,$sql);
289        if (!$resf) {echo "<p class='err'>Fehler bei Flurst&uuml;ck<br><br>".$sql."</p>\n";}
290
291        if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben
292                $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);   
293        }
294
295        $altlfdnr="";
296        $j=0;
297        while($rowf = pg_fetch_array($resf)) {
298                $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
299
300/*              $fskenn=str_pad($rowf["zaehler"], 5, "0", STR_PAD_LEFT);
301                if ($rowf["nenner"] != "") { // Bruchnummer
302                        $fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT);
303                } */
304
305                // ohne fuehrende Nullen?
306                $fskenn=$rowf["zaehler"];
307                if ($rowf["nenner"] != "") { // Bruchnummer
308                        $fskenn.="/".$rowf["nenner"];
309                }
310
311                $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
312
313                echo "\n<tr>"; // eine Zeile je Flurstueck
314                        // Sp. 1-3 der Tab. aus Buchungsstelle, nicht aus FS
315                        if($lfdnr == $altlfdnr) {       // gleiches Grundstueck         
316                                echo "\n\t<td>&nbsp;</td>";
317                                echo "\n\t<td>&nbsp;</td>";
318                                echo "\n\t<td>&nbsp;</td>";
319                        } else {
320
321                                echo "\n\t<td>";
322                                        echo "<a name='bvnr".$lfdnr."'></a>"; // Sprungmarke   
323                                        echo "<span class='wichtig'>".$bvnr."</span>";  // BVNR
324                                        if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle");}
325                                echo "</td>";
326
327                                echo "\n\t<td>"; // Buchungsart
328                                        //      if ($showkey) {echo "<span class='key'>".$???."</span>&nbsp;";} // Schluessel
329                                        echo $ba; // entschluesselt
330                                echo "</td>";
331                                echo "\n\t<td>&nbsp;</td>"; // Anteil
332                                $altlfdnr=$lfdnr;       
333                        }               
334                        //Sp. 4-7 aus Flurstueck
335                        echo "\n\t<td>";
336                        if ($showkey) {
337                                echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";
338                        }
339                        echo $rowf["bezeichnung"]."</td>";
340                        echo "\n\t<td>".$flur."</td>";
341                        echo "\n\t<td><span class='wichtig'>".$fskenn."</span>";
342                                if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");}
343                        echo "</td>";
344                        echo "\n\t<td class='fla'>".$flae."</td>";
345       
346                        echo "\n\t<td><p class='nwlink noprint'>";
347                                echo "<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
348                                        if ($idanzeige) {echo "&amp;id=j";}
349                                        if ($showkey)   {echo "&amp;showkey=j";}
350                                        echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck ";
351                                        echo "<img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''>";
352                                echo "</a>";
353                        echo "</p></td>";
354                echo "\n</tr>";
355
356                $j++;
357        } // Ende Flurstueck
358        return $j;
359}
360
361function eigentuemer($con, $gkz, $idanzeige, $gmlid, $mitadresse, $showkey) {
362        // Tabelle mit Eigentuemerdaten zu einem Grundbuchblatt ausgeben
363        // Sp.1 = Namennummer, Sp. 2 = Name / Adresse, Sp. 3 = Link
364        // Parameter:
365        //              $gmlid = ID des GB-Blattes
366        //              $mitadresse = Option (true/false) ob auch die Adresszeile ausgegeben werden soll
367        // Return = Anzahl Namensnummern
368       
369        // Schleife 1: N a m e n s n u m m e r
370        // Beziehung: ax_namensnummer  >istBestandteilVon>  ax_buchungsblatt
371       
372        $sql="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, ";
373        $sql.="n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass ";
374        $sql.="FROM  ax_namensnummer n ";
375        $sql.="JOIN  alkis_beziehungen b ON b.beziehung_von=n.gml_id ";
376        $sql.="WHERE b.beziehung_zu='".$gmlid."' "; // id blatt
377        $sql.="AND   b.beziehungsart='istBestandteilVon' ";
378        $sql.="ORDER BY laufendenummernachdin1421;";
379       
380        $resn=pg_query($con, $sql);
381        if (!$resn) {echo "<p class='err'>Fehler bei Eigentuemer<br>SQL= ".$sql."<br></p>\n";}
382
383        //echo "<p class='nwlink noprint'>weitere Auskunft:</p>"; // oben rechts von der Tabelle
384        echo "\n\n<table class='eig'>";
385        $n=0; // Z.NamNum.
386
387        //echo "\n\n<!-- vor Schleife 1 Namensnummer -->";     
388        while($rown = pg_fetch_array($resn)) {
389                echo "\n<tr>";
390                        echo "\n\t<td class='nanu' title='Namens-Nummer'>\n\t\t<p>"; // Sp. 1
391                                // VOR die Tabelle: "EigentÃŒmer"
392                                $namnum=kurz_namnr($rown["lfd"]);
393                                echo $namnum."&nbsp;";
394                                if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer");}
395                        echo "</p>\n\t</td>";
396
397                        echo "\n\t<td>"; // Sp. 2
398                        $rechtsg=$rown["adr"];
399                        if ($rechtsg != "" ) {
400                                if ($rechtsg == 9999) { // sonstiges
401                                        echo "\n\t\t<p class='zus' title='Beschrieb der Rechtsgemeinschaft'>".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")."</p>";
402                                } else {
403                                        echo "\n\t\t<p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities(rechtsgemeinschaft($rown["adr"]), ENT_QUOTES, "UTF-8")."</p>";
404                                        // !! Feld /td und Zeile /tr nicht geschlossen
405                                        //      echo "\n\t</td>\n</tr>"; // !!! IMMER? oder nur wenn letzte Zeile?                     
406                                }
407                        }
408                        //if ($rown["anlass"] > 0 ) {echo "<p>Anlass=".$rown["anlass"]."</p>";} // TEST:
409               
410                        //echo "\n\t\t</td>\n\t\t<td></td>\n</tr>";
411               
412                        // Schleife Ebene 2: andere Namensnummern
413                        // Beziehung   ax_namensnummer >bestehtAusRechtsverhaeltnissenZu>  ax_namensnummer
414               
415                        // Die Relation 'Namensnummer' besteht aus RechtsverhÀltnissen zu 'Namensnummer' sagt aus,
416                        // dass mehrere Namensnummern zu einer Rechtsgemeinschaft gehören können.
417                        // Die Rechtsgemeinschaft selbst steht unter einer eigenen AX_Namensnummer,
418                        // die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt.
419               
420                        // Die Relation 'Namensnummer' hat VorgÀnger 'Namensnummer' gibt Auskunft darÃŒber,
421                        // aus welchen Namensnummern die aktuelle entstanden ist.
422       
423                // Schleife 2: P e r s o n 
424                // Beziehung: ax_person  <benennt<  ax_namensnummer
425                $sql="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad ";
426                $sql.="FROM  ax_person p ";
427                $sql.="JOIN  alkis_beziehungen v ON v.beziehung_zu=p.gml_id ";
428                $sql.="WHERE v.beziehung_von='".$rown["gml_id"]."' "; // id num
429                $sql.="AND   v.beziehungsart='benennt';";
430       
431                $rese=pg_query($con, $sql);
432                if (!$rese) {echo "\n\t<p class='err'>Fehler bei Eigentuemer<br>SQL= ".$sql."<br></p>\n";}
433                $i=0; // Z.Eig.
434                //echo "\n<!-- vor Schleife 2 Person -->";             
435                while($rowe = pg_fetch_array($rese)) {
436                        $diePerson="";
437                        if ($rowe["akademischergrad"] <> "") {$diePerson=$rowe["akademischergrad"]." ";}
438                        $diePerson.=$rowe["nachnameoderfirma"];
439                        if ($rowe["vorname"] <> "") {$diePerson.=", ".$rowe["vorname"];}
440                        if ($rowe["namensbestandteil"] <> "") {$diePerson.=". ".$rowe["namensbestandteil"];}
441                        if ($rowe["geburtsdatum"] <> "") {$diePerson.=", geb. ".$rowe["geburtsdatum"];}
442                        if ($rowe["geburtsname"] <> "") {$diePerson.=", geb. ".$rowe["geburtsname"];}
443                        $diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute
444       
445                        // Spalte 1 enthÀlt die Namensnummer, nur in Zeile 0
446                        if ($i > 0) {
447                                echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td>";
448                        }
449                        // Spalte 2 = Angaben
450                        $eiart=eigentuemerart($rown["eigentuemerart"]);
451                        echo "\n\t\t<p class='geig' title='Eigent&uuml;merart ".$eiart."'>".$diePerson."</p>\n\t</td>";
452
453                        // Spalte 3 = Link                         echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
454                                if ($idanzeige) {linkgml($gkz, $rowe["gml_id"], "Person"); echo "&nbsp";}
455                                echo "\n\t\t<a href='alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowe[0];
456                                if ($idanzeige) {echo "&amp;id=j";}
457                                if ($showkey)   {echo "&amp;showkey=j";}
458                                echo "' title='vollst&auml;ndiger Name und Adresse eines Eigent&uuml;mers'>".$eiart;
459                                echo " <img src='ico/Eigentuemer.ico' width='16' height='16' alt=''></a>\n\t\t</p>";
460                        echo "\n\t</td>\n</tr>";
461       
462                        if ($mitadresse) {
463                                // Schleife 3:  A d r e s s e  (OPTIONAL)
464                                $sql ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland ";
465                                $sql.="FROM ax_anschrift a ";
466                                $sql.="JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu ";
467                                $sql.="WHERE b.beziehung_von='".$rowe["gml_id"]."' ";
468                                $sql.="AND b.beziehungsart='hat';"; // ORDER?
469
470                                $resa=pg_query($con,$sql);
471                                if (!$resa) {
472                                        echo "\n\t<p class='err'>Fehler bei Adressen.<br>\nSQL= ".$sql."</p>\n";
473                                }
474                                $j=0;
475                                //echo "\n<!-- vor Schleife 3 Adresse -->";     
476                                while($rowa = pg_fetch_array($resa)) {
477                                        $gmla=$rowa["gml_id"];
478                                        $plz=$rowa["plz"]; // integer
479                                        if($plz == 0) {
480                                                $plz="";
481                                        } else {
482                                                $plz=str_pad($plz, 5, "0", STR_PAD_LEFT);
483                                        }
484                                        $ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8");
485                                        $str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8");
486                                        $hsnr=$rowa["hausnummer"];
487                                        $land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8");
488
489                                        echo "\n<tr>\n\t<td>&nbsp;</td>"; // Spalte 1
490                                        echo "\n\t<td><p class='gadr'>"; //Spalte 2
491                                        if ($str.$hsnr != "") {
492                                                echo $str." ".$hsnr."<br>";
493                                        }
494                                        if ($plz.$ort != "") {
495                                                echo $plz." ".$ort;
496                                        }
497                                        if ($land != "" and $land != "DEUTSCHLAND") {
498                                                echo ", ".$land;
499                                        }
500                                        echo "</p></td>";
501                                        echo "\n\t<td>"; // Spalte 3
502                                        if ($idanzeige) {
503                                                echo "<p class='nwlink noprint'>";
504                                                linkgml($gkz, $gmla, "Adresse");
505                                                echo "</p>";
506                                        } else {
507                                                echo "&nbsp;";                                 
508                                        }
509                                        echo "</td>\n</tr>";
510                                        $j++;
511                                }
512                                //echo "\n<!-- nach Schleife 3 Adresse -->";
513                        } // if
514                        // 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG"
515                        $i++; // Z. Person
516                        // als eigene Tab-Zeile?
517                        // 'Anteil' ist der Anteil der Berechtigten in Bruchteilen (Par. 47 GBO)
518                        // an einem gemeinschaftlichen Eigentum (GrundstÃŒck oder Recht).
519                        if ($rown["zaehler"] != "") {
520                                echo "\n<tr>\n\t<td>&nbsp;</td>"; // Sp. 1
521                                echo "\n\t<td><p class='avh' title='Anteil'>".$rown["zaehler"]."/".$rown["nenner"]." Anteil</p></td>";
522                                echo "\n\t<td>&nbsp;</td>\n</tr>"; // Sp. 3
523                        }
524                }
525                //echo "\n<!-- nach Schleife 2 Person -->";     
526               
527                if ($i == 0) { // keine Pers zur NamNum
528                        echo "\n<!-- Rechtsgemeinscahft='".$rechtsg."' -->";
529                        // Wann warnen?
530                        //if ($rechtsg != 9999) {
531                                // Art der Rechtsgemeinsachft, 0 Eigent. ist Normal bei Sondereigentum
532                                //echo "\n<tr>\n<td>";
533                                //linkgml($gkz, $rown["gml_id"], "Namensnummer");
534                                //echo "</td>\n<td>\n\t\t<p class='err'>Kein Eigent&uuml;mer gefunden. (Rechtsgemeinschaft=".$rechtsg.")</p>";
535                        //}
536                        echo "</td>\n\t<td>&nbsp;</td>\n<tr>";
537                }
538                $n++; // cnt NamNum     
539        } // End Loop NamNum
540        //echo "\n<!-- nach Schleife 1 Namensnummer -->";       
541        echo "\n</table>\n";   
542        return $n;
543} // End Function eigentuemer
544
545// **  Functions  zum   E n t s c h l u e s s e l n  **
546
547// Entschluesslung ax_person.anrede
548function anrede($key) {
549        switch ($key) {
550                case 1000:
551                        $wert = "Frau";
552                        break;
553                case 2000:
554                        $wert = "Herr";
555                        break;
556                case 3000:
557                        $wert = "Firma";
558                        break;
559                default:
560                        $wert = "";
561                        break;
562        }
563        return $wert;
564}
565
566// Entschluesslung AX_Namensnummer.artDerRechtsgemeinschaft
567function rechtsgemeinschaft($key) {
568        switch ($key) {
569                case 1000:
570                        $wert = "Erbengemeinschaft";
571                        break;
572                case 2000:
573                        $wert = "GÃŒtergemeinschaft";
574                        break;
575                case 3000:
576                        $wert = "BGB-Gesellschaft";
577                        break;
578                case 9999:
579                        $wert = "Sonstiges";
580                // dann: beschriebDerRechtsgemeinschaft
581                        break;
582                default:
583                        $wert = "";
584                        break;
585        }
586        return $wert;
587}
588// Entschluesslung AX_Namensnummer.eigentuemerart
589// Abweichend hier in singular fuer Link-Text
590function eigentuemerart($key) {
591        switch ($key) {
592                case 1000:
593                        $wert = "Nat&uuml;rliche Person";
594                        break;
595                case 2000:
596                        $wert = "Juristische Person";
597                        break;
598                case 3000:
599                        $wert = "K&ouml;rperschaft";
600                        break;
601                case "": // falls (noch) nicht gefuellt
602                        $wert = "Person";
603                        break;
604                default:
605                        $wert = "** Unbekannte Eigent&uuml;merart '".$key."' **";;
606                        break;
607        }
608        return $wert;
609}
610// Entschluesslung ax_buchungsblatt.blattart
611function blattart($key) {
612        switch ($key) {
613                case 1000:
614                        $wert = "Grundbuchblatt";
615                        // Ein Grundbuchblatt ist ein Buchungsblatt, das die Buchung im Grundbuch enthÀlt.
616                        break;
617                case 2000:
618                        $wert = "Katasterblatt";
619                        // Ein Katasterblatt ist ein Buchungsblatt, das die Buchung im Liegenschaftskataster enthÀlt.
620                        break;
621                case 3000:
622                        $wert = "Pseudoblatt";
623                        // Ein Pseudoblatt ist ein Buchungsblatt, das die Buchung, die bereits vor Eintrag im Grundbuch Rechtskraft erlangt hat, enthÀlt
624                        // (z.B. Übernahme von Flurbereinigungsverfahren, Umlegungsverfahren).
625                        break;
626                case 5000:
627                        $wert = "Fiktives Blatt";
628                        // Das fiktive Blatt enthÀlt die aufgeteilten GrundstÃŒcke und Rechte als Ganzes.
629                        // Es bildet um die Miteigentumsanteile eine fachliche Klammer.
630                        break;
631                default:
632                        $wert = "** Unbekannter Wert '".$key."'";;
633                        break;
634        }
635        return $wert;
636}
637// Entschluesslung ax_dienststelle.stellenart
638function dienststellenart($key) {
639        switch ($key) {
640                case 1000:
641                        $wert = "Grundbuchamt";
642                        break;
643                case 1100:
644                        $wert = "Katasteramt";
645                        break;
646                case 1200:
647                        $wert = "Finanzamt";
648                        break;
649                case 1300:
650                        $wert = "Flurbereinigungsbeh&ouml;rde";
651                        break;
652                case 1400:
653                        $wert = "Forstamt";
654                        break;
655                case 1500:
656                        $wert = "Wasserwirtschaftsamt";
657                        break;
658                case 1600:
659                        $wert = "Straßenbauamt";
660                        break;
661                case 1700:
662                        $wert = "Gemeindeamt";
663                        break;
664                case 1900:
665                        $wert = "Kreis- oder Stadtverwaltung";
666                        break;
667                case 2000:
668                        $wert = "Wasser- und Bodenverband";
669                        break;
670                case 2100:
671                        $wert = "Umlegungsstelle";
672                        break;
673                case 2200:
674                        $wert = "Landesvermessungsverwaltung";
675                        break;
676                case 2300:
677                        $wert = "&Ouml;bVI";
678                        break;
679                case 2400:
680                        $wert = "Bundeseisenbahnverm&ouml;gen";
681                        break;
682                case 2500:
683                        $wert = "Landwirtschaftskammer";
684                        break;
685                default:
686                        $wert = "** Unbekannter Wert '".$key."'";
687                        break;
688        }
689        return $wert;
690}
691?>
Note: See TracBrowser for help on using the repository browser.