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

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