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

Revision 45, 25.1 KB checked in by frank.jaeger, 14 years ago (diff)
RevLine 
[26]1<?php
[41]2/*      Modul: alkisfkt.php
[26]3        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
[41]4        Functions
5
[26]6        Version:
[41]7                31.08.2010      $style=ALKIS entfernt, link zu alkislage.php
[43]8                02.09.2010  mit Icons
9                07.09.2010  Schluessel anschaltbar
[45]10                15.09.2010  Function "buchungsart" durch JOIN ersetzt
[26]11*/
[41]12 function footer($gkz, $gmlid, $idumschalter, $idanzeige, $link, $hilfeurl, $append, $showkey) {
[45]13        // Einen Seitenfuss ausgeben.
[41]14        // Den URL-Parameter "&id=j/n" und "&showkey=j/n" in allen Kombinationen umschalten lassen.
[43]15        // Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor
[41]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"];
[26]21        echo "\n<div class='confbereich noprint'>";
22
[41]23        echo "\n<table class='outer'>\n<tr>";
[26]24
[41]25        // Spalte 1: Info Benutzerkennung
26        echo "\n\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></td>";
[26]27       
[41]28        // Spalte 2: Umschalter
29        echo "\n\t<td title='Konfiguration'>";
[43]30                // Umschalter:
[45]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;
[43]36
[41]37                if ($showkey) { // bleibt so
[43]38                        $mykey = "&amp;showkey=j";
39                } else {
40                        $mykey = "&amp;showkey=n";
41                }
42
43                if ($idumschalter) { // fuer Entwicklung ODER Test
[45]44
[43]45                        if ($idanzeige) { // bleibt so
[45]46                                $myid = "&amp;id=j";
47                        } else {
48                                $myid = "&amp;id=n";
49                        }
50
[43]51                        // Umschalter nur ausgeben, wenn in conf gesetzt
[45]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
[43]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
[45]70        echo "\n\t</td>";
[26]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
[41]76        echo "\n</tr>\n</table>\n</div>\n";
[45]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}
[26]90
91function linkgml($gkz, $gml, $typ)  {
[41]92        // Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php
[26]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' ";
[41]94        echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."'>";
[43]95        echo "<img src='ico/Beziehung_link.ico' width='16' height='16' alt=''>".$kurzid."</a>";
96        return 0;
97}
98
[26]99function kurz_namnr($lang) {
[41]100        // Namensnummer kuerzen. Nicht benoetigte Stufen der Dezimalklassifikation abschneiden
101        $kurz=str_replace(".00","",$lang);      // leere Stufen (nur am Ende)
[26]102        $kurz=str_replace("0000","",$kurz);     // ganz leer (am Anfang)
[41]103        $kurz=ltrim($kurz, "0");                                // fuehrende Nullen am Anfang
104        $kurz=str_replace(".0",".",$kurz);      // fuehrende Null jeder Stufe
105        return $kurz;
[26]106}
[41]107
[26]108function fs_gebietszug($con, $gemeinde, $kreis, $bezirk, $showkey) {
109        // eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben
[41]110        // Parameter = Schluesselwerte
[43]111        // Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist?
[41]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> ";
[43]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."' ";
[41]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> ";
[43]136        }       
137        echo $knam."<br>";
138
139        // R e g - B e z
140        $sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk='".$bezirk."' ";
[41]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> ";
[43]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>";
[41]153        return 0;
154}
155
156function fs_lage($con, $gmlid, $gkz, $showkey) {
157        // Tabellenzeilen mit Lage eines FS
158        // Parameter = ID des FS
[43]159
[41]160        // Lagebezeichnung Mit Hausnummer
161        //   ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer
[26]162        //                  <gehoertZu<
[41]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;";
[43]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        }
[41]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<
[43]212        $sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung ";
[41]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>";
[43]239                        echo "\n</tr>";         
240                }
241                // Gleicher DB-Eintrag in zwei HTML-Zeilen, besser nur ein Link
242                if ($skey > 0) {
[41]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                                }
[43]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        }
[41]258        $z=$z+$j;
259        return $z; // Anzahl Zeilen
260}
261
[43]262function fs_nutz($con, $gmlid) {
263        // Tabellenzeilen (3 Sp.) mit tats. Nutzung zu einem FS ausgeben
[41]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).
[43]274        Weiterere Aufrufe ggf. bei Erbbaurecht fÃŒr die mit "an" verknuepften Buchungsstellen.
[41]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, ";
[26]280        $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
[41]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
[45]291        if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben
[41]292                $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);   
293        }
[45]294
[41]295        $altlfdnr="";
296        $j=0;
297        while($rowf = pg_fetch_array($resf)) {
[45]298                $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
[41]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);
[43]303                } */
[45]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>";
[41]317                                echo "\n\t<td>&nbsp;</td>";
[43]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
[45]324                                        if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle");}
[43]325                                echo "</td>";
[45]326
[43]327                                echo "\n\t<td>"; // Buchungsart
328                                        //      if ($showkey) {echo "<span class='key'>".$???."</span>&nbsp;";} // Schluessel
329                                        echo $ba; // entschluesselt
[45]330                                echo "</td>";
331                                echo "\n\t<td>&nbsp;</td>"; // Anteil
332                                $altlfdnr=$lfdnr;       
333                        }               
334                        //Sp. 4-7 aus Flurstueck
[43]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;
[41]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:
[43]365        //              $gmlid = ID des GB-Blattes
[41]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' ";
[43]378        $sql.="ORDER BY laufendenummernachdin1421;";
[41]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
[43]387        //echo "\n\n<!-- vor Schleife 1 Namensnummer -->";     
388        while($rown = pg_fetch_array($resn)) {
[41]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;";
[43]394                                if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer");}
[41]395                        echo "</p>\n\t</td>";
396
397                        echo "\n\t<td>"; // Sp. 2
398                        $rechtsg=$rown["adr"];
[43]399                        if ($rechtsg != "" ) {
[41]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
[43]405                                        //      echo "\n\t</td>\n</tr>"; // !!! IMMER? oder nur wenn letzte Zeile?                     
[41]406                                }
[43]407                        }
[41]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'>";
[43]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];
[41]456                                if ($idanzeige) {echo "&amp;id=j";}
457                                if ($showkey)   {echo "&amp;showkey=j";}
[43]458                                echo "' title='vollst&auml;ndiger Name und Adresse eines Eigent&uuml;mers'>".$eiart;
[41]459                                echo " <img src='ico/Eigentuemer.ico' width='16' height='16' alt=''></a>\n\t\t</p>";
[43]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 ";
[41]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;
[26]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";
[45]571                        break;
[26]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";
[43]594                        break;
595                case 2000:
[26]596                        $wert = "Juristische Person";
597                        break;
598                case 3000:
[43]599                        $wert = "K&ouml;rperschaft";
[26]600                        break;
601                case "": // falls (noch) nicht gefuellt
[43]602                        $wert = "Person";
[26]603                        break;
604                default:
[43]605                        $wert = "** Unbekannte Eigent&uuml;merart '".$key."' **";;
[26]606                        break;
[43]607        }
608        return $wert;
609}
[26]610// Entschluesslung ax_buchungsblatt.blattart
[43]611function blattart($key) {
[26]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.