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

Revision 43, 25.4 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
10                08.09.2010  ..
[26]11*/
[41]12 function footer($gkz, $gmlid, $idanzeige, $link, $hilfeurl, $append, $showkey) {
[43]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 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
[41]33                if ($idanzeige) { // bleibt so
[43]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>";
[26]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
[41]66        echo "\n</tr>\n</table>\n</div>\n";         return 0;
67}
[26]68
69function linkgml($gkz, $gml, $typ)  {
[41]70        // Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php
[26]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' ";
[41]72        echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."'>";
[43]73        echo "<img src='ico/Beziehung_link.ico' width='16' height='16' alt=''>".$kurzid."</a>";
74        return 0;
75}
76
[26]77function kurz_namnr($lang) {
[41]78        // Namensnummer kuerzen. Nicht benoetigte Stufen der Dezimalklassifikation abschneiden
79        $kurz=str_replace(".00","",$lang);      // leere Stufen (nur am Ende)
[26]80        $kurz=str_replace("0000","",$kurz);     // ganz leer (am Anfang)
[41]81        $kurz=ltrim($kurz, "0");                                // fuehrende Nullen am Anfang
82        $kurz=str_replace(".0",".",$kurz);      // fuehrende Null jeder Stufe
83        return $kurz;
[26]84}
[41]85
[26]86function fs_gebietszug($con, $gemeinde, $kreis, $bezirk, $showkey) {
87        // eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben
[41]88        // Parameter = Schluesselwerte
[43]89        // Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist?
[41]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> ";
[43]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."' ";
[41]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> ";
[43]114        }       
115        echo $knam."<br>";
116
117        // R e g - B e z
118        $sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk='".$bezirk."' ";
[41]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> ";
[43]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>";
[41]131        return 0;
132}
133
134function fs_lage($con, $gmlid, $gkz, $showkey) {
135        // Tabellenzeilen mit Lage eines FS
136        // Parameter = ID des FS
[43]137
[41]138        // Lagebezeichnung Mit Hausnummer
139        //   ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer
[26]140        //                  <gehoertZu<
[41]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;";
[43]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        }
[41]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<
[43]190        $sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung ";
[41]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>";
[43]217                        echo "\n</tr>";         
218                }
219                // Gleicher DB-Eintrag in zwei HTML-Zeilen, besser nur ein Link
220                if ($skey > 0) {
[41]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                                }
[43]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        }
[41]236        $z=$z+$j;
237        return $z; // Anzahl Zeilen
238}
239
[43]240function fs_nutz($con, $gmlid) {
241        // Tabellenzeilen (3 Sp.) mit tats. Nutzung zu einem FS ausgeben
[41]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).
[43]252        Weiterere Aufrufe ggf. bei Erbbaurecht fÃŒr die mit "an" verknuepften Buchungsstellen.
[41]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, ";
[26]258        $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
[41]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         
[43]281                                echo "\n\t<td>&nbsp;</td>";
[41]282                                echo "\n\t<td>&nbsp;</td>";
[43]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}
[41]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
[43]326        //              $mitadresse = Option (true/false) ob auch die Adresszeile ausgegeben werden soll
[41]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;";
[43]339       
[41]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 -->";     
[43]348        while($rown = pg_fetch_array($resn)) {
349                echo "\n<tr>";
[41]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");}
[43]355                        echo "</p>\n\t</td>";
[41]356
357                        echo "\n\t<td>"; // Sp. 2
358                        $rechtsg=$rown["adr"];
359                        if ($rechtsg != "" ) {
[43]360                                if ($rechtsg == 9999) { // sonstiges
[41]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?                     
[43]366                                }
[41]367                        }
[43]368                        //if ($rown["anlass"] > 0 ) {echo "<p>Anlass=".$rown["anlass"]."</p>";} // TEST:
[41]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";}
[43]415                                echo "\n\t\t<a href='alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowe[0];
416                                if ($idanzeige) {echo "&amp;id=j";}
[41]417                                if ($showkey)   {echo "&amp;showkey=j";}
418                                echo "' title='vollst&auml;ndiger Name und Adresse eines Eigent&uuml;mers'>".$eiart;
[43]419                                echo " <img src='ico/Eigentuemer.ico' width='16' height='16' alt=''></a>\n\t\t</p>";
[41]420                        echo "\n\t</td>\n</tr>";
[43]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 ";
[41]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:
[26]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;
[43]598                case 2000:
599                        $wert = "Juristische Person";
[26]600                        break;
601                case 3000:
602                        $wert = "K&ouml;rperschaft";
[43]603                        break;
[26]604                case "": // falls (noch) nicht gefuellt
605                        $wert = "Person";
[43]606                        break;
[26]607                default:
608                        $wert = "** Unbekannte Eigent&uuml;merart '".$key."' **";;
[43]609                        break;
[26]610        }
[43]611        return $wert;
612}
613// Entschluesslung ax_buchungsblatt.blattart
[26]614function blattart($key) {
[43]615        switch ($key) {
[26]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.