Ignore:
Timestamp:
09/03/10 13:36:04 (14 years ago)
Author:
frank.jaeger
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/var/www/info/alkis/alkisfkt.php

    r26 r41  
    11<?php 
    2 /*      alkisfkt.php 
     2/*      Modul: alkisfkt.php 
    33        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo). 
    4         Functions z.B. zum Entschluesseln 
     4        Functions 
     5 
    56        Version: 
    6         26.01.2010      internet-Version  mit eigener confÂŽ 
     7                31.08.2010      $style=ALKIS entfernt, link zu alkislage.php 
     8                02.09.2010  mit Icons 
    79*/ 
    810 
    9 // Einen Seitenfuss ausgeben. 
    10 // Der URL-Parameter &id=j/n kann hinzugefuegt werden, solange die Parameter &gkz= &gmlid= 
    11 // in allen Modulen einheitlich und ausschlesslich vorkommen, 
    12 function footer($gkz, $gmlid, $idanzeige, $link, $hilfeurl, $style) { 
     11function footer($gkz, $gmlid, $idanzeige, $link, $hilfeurl, $append) { 
     12        // Einen Seitenfuss ausgeben. 
     13        // Den URL-Parameter "&id=j/n" in allen Kombinationen umschalten lassen. 
     14        // Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor 
     15 
     16        // Der Parameter "&eig=j" wird angehaengt wenn gefuellt.  // ALT 
     17        // Der Parameter $append wird angehaengt wenn gefuellt 
     18        //  Anwendung: &eig=j bei FS-NW, &ltyp=m/p/o bei Lage 
     19         
    1320        $customer=$_SESSION["mb_user_name"]; 
    1421        echo "\n<div class='confbereich noprint'>"; 
     22 
    1523        echo "\n<table class='outer'>\n<tr>"; 
    1624 
    17         // Spalte 1 
     25        // Spalte 1: Info Benutzerkennung 
    1826        echo "\n\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></td>"; 
    19  
    20         // Spalte 2 
     27         
     28        // Spalte 2: Umschalter 
    2129        echo "\n\t<td title='Konfiguration'>"; 
    22  
    23         // Umschalter Testmodus (ID-Verfolgung) 
    24         echo "\n\t\t<a href='".$link."gkz=".$gkz."&amp;gmlid=".$gmlid; 
    25         if ($idanzeige) { 
    26                 echo "' title='Ohne Verfolgung der ALKIS-Beziehungen'>ID aus</a>"; 
    27         } else { 
    28                  
    29                 echo "&amp;id=j' title='Verfolgung der GML-ID in den ALKIS-Beziehungen'>ID ein</a>"; 
    30         } 
    31         echo "&nbsp;"; 
    32  
    33         // Umschalter fuer Darstellung der Daten 
    34         echo "\n\t\t<a href='".$link."gkz=".$gkz."&amp;gmlid=".$gmlid; 
    35         if ($idanzeige) {echo "&amp;id=j";} 
    36         If ($style == "alkis") {  
    37                 echo "&amp;style=kompakt' title='Kurze tabellarische Darstellung'>Kompakt</a>"; 
    38         } else { // kompakter Style 
    39                 echo "&amp;style=alkis' title='Beschreibende Darstellung'>ALKIS-Style</a>"; 
    40         } 
    41  
     30                // Umschalter Testmodus I D - A n z e i g e 
     31                echo "\n\t\t<a class='gmlid' href='".$link."gkz=".$gkz."&amp;gmlid=".$gmlid; 
     32                //      if ($eig <> "") echo "&amp;eig=".$eig; // nur fuer FS-Nachw 
     33                        if ($append <> "") echo $append; // nur fuer FS-Nachw 
     34 
     35                        if ($idanzeige) { // Umschalten 
     36                                echo "&amp;id=n' title='Ohne Verfolgung der ALKIS-Beziehungen'>ID aus"; 
     37                        } else { 
     38                                echo "&amp;id=j' title='Verfolgung der GML-ID in den ALKIS-Beziehungen'>ID ein"; 
     39                        } 
     40                echo "</a>"; 
    4241        echo "\n\t</td>"; 
    4342 
     
    4746 
    4847        echo "\n</tr>\n</table>\n</div>\n"; 
    49          
    5048        return 0; 
    5149} 
    52 // Einen Link zur Verfolgung der Beziehungen mit dem Prog alkisrelationen 
     50 
    5351function linkgml($gkz, $gml, $typ)  { 
    54         $kurzid=substr($gml, 11); // kuerzen, der Anfang ist immer identisch 
    55         echo "\n\t\t<div class='gmlid noprint' title='ID ".$typ."'>"; 
    56         echo "\n\t\t\t<a target='_blank' class='gmlid' href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."'>".$kurzid."</a>\n\t\t</div>"; 
     52        // Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php 
     53        $kurzid=substr($gml, 11); // ID kuerzen, der Anfang ist immer gleich 
     54        echo "\n\t\t<a target='_blank' title='ID ".$typ."' class='gmlid noprint' href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."'>".$kurzid."</a>"; 
    5755        return 0; 
    5856} 
    59 // Namensnummer kuerzen, nicht benoetigte Stufen abschneiden 
     57 
    6058function kurz_namnr($lang) { 
    61         $kurz=str_replace(".00","",$lang);              // leere Stufen (nur am Ende) 
    62         $kurz=str_replace("0000","",$kurz);             // ganz leer (am Anfang) 
     59        // Namensnummer kuerzen. Nicht benoetigte Stufen der Dezimalklassifikation abschneiden 
     60        $kurz=str_replace(".00","",$lang);      // leere Stufen (nur am Ende) 
     61        $kurz=str_replace("0000","",$kurz);     // ganz leer (am Anfang) 
    6362        $kurz=ltrim($kurz, "0");                                // fuehrende Nullen am Anfang 
    64         $kurz=str_replace(".0",".",$kurz);              // fuehrende Null jeder Stufe 
     63        $kurz=str_replace(".0",".",$kurz);      // fuehrende Null jeder Stufe 
    6564        return $kurz; 
    6665} 
    6766 
    68 // **  E n t s c h l u e s s e l n  ** 
    69 /*  MUSTER 
    70 // Entschluesslung AX_Tab.Feld 
    71 function fkt_name($key) { 
    72         switch ($key) { 
    73                 case ___: 
    74                         $wert = "___";  
    75                         break; 
    76                 default: 
    77                         $wert = ""; 
    78                         break; 
    79         } 
    80         return $wert; 
    81 } 
     67function fs_gebietszug($con, $gemeinde, $kreis, $bezirk) { 
     68        // eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben 
     69        // Parameter = Schluesselwerte 
     70        // Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist? 
     71 
     72        echo "\n<tr>\n\t<td class='ll'><img src='ico/Gemeinde.ico' width='16' height='16' alt=''> Im Gebiet von:</td>"; 
     73         
     74        // G e m e i n d e 
     75        $sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk='".$bezirk."' AND kreis='".$kreis."' AND gemeinde='".$gemeinde."' ";  
     76        $res=pg_query($con, $sql); 
     77        if (!$res) echo "<p class='err'>Fehler bei Gemeinde<br>".$sql."<br></p>"; 
     78        $row = pg_fetch_array($res); 
     79        $gnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
     80        echo "\n\t<td class='lr'>Gemeinde <span class='key'>(".$gemeinde.")</span> ".$gnam."<br>"; 
     81 
     82        // K r e i s 
     83        $sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk='".$bezirk."' AND kreis='".$kreis."' ";  
     84        $res=pg_query($con, $sql); 
     85        if (!$res) echo "<p class='err'>Fehler bei Kreis<br>".$sql."<br></p>"; 
     86        $row = pg_fetch_array($res); 
     87        $knam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
     88        echo "Kreis <span class='key'>(".$kreis.")</span> ".$knam."<br>"; 
     89 
     90        // R e g - B e z 
     91        $sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk='".$bezirk."' ";  
     92        $res=pg_query($con, $sql); 
     93        if (!$res) echo "<p class='err'>Fehler bei Regierungsbezirk<br>".$sql."<br></p>"; 
     94        $row = pg_fetch_array($res); 
     95        $bnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
     96        echo "Regierungsbezirk <span class='key'>(".$bezirk.")</span> ".$bnam."</td>"; 
     97         
     98        // 3. Spalte fÃŒr NW-Link (in weiteren Tab-Zeilen) 
     99        echo "\n\t<td>&nbsp;</td>\n</tr>"; 
     100        return 0; 
     101} 
     102 
     103function fs_lage($con, $gmlid, $gkz) { 
     104        // Tabellenzeilen mit Lage eines FS 
     105        // Parameter = ID des FS 
     106 
     107        // Lagebezeichnung Mit Hausnummer 
     108        //   ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer 
     109        //                  <gehoertZu< 
     110        $sql ="SELECT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung "; 
     111        $sql.="FROM  alkis_beziehungen v "; 
     112        $sql.="JOIN  ax_lagebezeichnungmithausnummer  l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN 
     113        $sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage "; 
     114        $sql.="WHERE v.beziehung_von='".$gmlid."' "; // id FS"; 
     115        $sql.="AND   v.beziehungsart='weistAuf' "; 
     116        $sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
     117 
     118        // Theoretisch JOIN notwendig ÃŒber den kompletten SchlÃŒssel bestehend aus land+regierungsbezirk+kreis+gemeinde+lage 
     119        // bei einem SekundÀrbestand fÃŒr eine Gemeinde oder einen Kreis reicht dies hier: 
     120 
     121        //$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
     122        // Problem: ax_lagebezeichnungkatalogeintrag.lage  ist char, 
     123        //          ax_lagebezeichnungmithausnummer.lage   ist integer, 
     124 
     125        // cast() scheitert weil auch nicht numerische Inhalte 
     126        //$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.gemeinde=s.gemeinde AND l.lage=cast(s.lage AS integer) "; 
     127 
     128        // http://www.postgresql.org/docs/8.3/static/functions-formatting.html 
     129 
     130        $res=pg_query($con, $sql); 
     131        if (!$res) {echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer<br>\n".$sql."</p>";} 
     132        $j=0; 
     133        while($row = pg_fetch_array($res)) { 
     134                $sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 
     135                //echo "<!-- Adresse -->";               
     136                echo "\n<tr>\n\t"; 
     137                        if ($j == 0) {           
     138                                echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>"; 
     139                        } else { 
     140                                echo "<td>&nbsp;</td>"; 
     141                        } 
     142                        echo "\n\t<td class='lr'><span class='key'>(".$row["lage"].")</span>&nbsp;".$sname."&nbsp;".$row["hausnummer"]."</td>"; 
     143                        echo "\n\t<td><p class='nwlink noprint'><a href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"]."'>Lage</a></p></td>"; 
     144                echo "\n</tr>"; 
     145                $j++; 
     146        } 
     147        $z=$j; 
     148 
     149        // Lagebezeichnung Ohne Hausnummer (Gewanne oder nur Strasse) 
     150        //   ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer 
     151        //                  <gehoertZu< 
     152        $sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung "; 
     153        $sql.="FROM alkis_beziehungen v "; 
     154        $sql.="JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=v.beziehung_zu "; 
     155        $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde "; 
     156//      $sql.="AND l.lage=s.lage "; 
     157        // hier beide .lage als Char(5) 
     158        //  in ax_lagebezeichnungKatalogeintrag mit fÃŒhrenden Nullen 
     159        //  in ax_lagebezeichnungOhneHausnummer jedoch ohne fÃŒhrende Nullen 
     160        $sql.="AND l.lage=trim(leading '0' from s.lage) "; 
     161//      $sql.="AND cast(l.lage AS integer)=cast(s.lage AS integer) "; // Fehlversuch, auch nicht-numerische Inhalte 
     162        $sql.="WHERE v.beziehung_von='".$gmlid."' "; // id FS"; 
     163        $sql.="AND   v.beziehungsart='zeigtAuf';"; //ORDER? 
     164        $res=pg_query($con, $sql); 
     165        if (!$res) echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer<br>\n".$sql."</p>"; 
     166        $j=0; 
     167        // Es wird auch eine Zeile ausgegeben, wenn kein Eintrag gefunden!       
     168        while($row = pg_fetch_array($res)) { 
     169                $gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8"); 
     170                $skey=$row["lage"]; // Strassenschluessel 
     171                $lgml=$row["gml_id"]; // key der Lage 
     172                if (!$gewann == "") { 
     173                        echo "\n<tr>";           
     174                                echo "\n\t<td class='ll'><img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''> Gewanne:</td>"; 
     175                                echo "\n\t<td class='lr'>".$gewann."</td>"; 
     176                                echo "\n\t<td><p class='nwlink noprint'><a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml."'>Lage</a></p></td>"; 
     177                        echo "\n</tr>";          
     178                } 
     179                // Gleicher DB-Eintrag in zwei HTML-Zeilen, besser nur ein Link  
     180                if ($skey > 0) { 
     181                        echo "\n<tr>";   
     182                                echo "\n\t<td class='ll'><img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''> Stra&szlig;e:</td>";                          
     183                                echo "\n\t<td class='lr'><span class='key'>(".$skey.")</span>&nbsp;".$row["bezeichnung"]."</td>"; 
     184                                echo "\n\t<td><p class='nwlink noprint'><a  title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml."'>Lage</a></p></td>"; 
     185                        echo "\n</tr>"; 
     186                }                
     187                $j++; 
     188        } 
     189        $z=$z+$j; 
     190        //echo "<p class='err'>Anzahl ".$j."<br>SQL=<br>".$sql."<br></p>";       
     191        return $z; // Summe der ausgegebenen Zeilen 
     192} 
     193 
     194function fs_nutz($con, $gmlid) { 
     195        // Tabellenzeilen (3 Sp.) mit tats. Nutzung zu einem FS ausgeben 
     196        // Parameter = ID des FS 
     197        echo "\n<tr>\n\t<td class='ll'><img src='ico/Abschnitt.ico' width='16' height='16' alt=''> Nutzungsarten:</td>"; 
     198        echo "\n\t<td class='ph'>(Programmteil ist noch in Arbeit)</td>"; 
     199        echo "\n\t<td>&nbsp;</td>\n</tr>"; 
     200} 
     201 
     202function bnw_fsdaten($con, $gkz, $idanzeige, $lfdnr, $gml_bs, $ba, $anteil, $bvnraus) { 
     203/*      Bestandsnachweis - Flurstuecksdaten 
     204        Die Tabellenzeilen mit den Flurstuecksdaten zu einer Buchungsstelle im Bestandsnachweis ausgeben. 
     205        Die Funktion wird je einmal aufgerufen fÃŒr die Buchungen direkt auf dem GB (Normalfall). 
     206        Weiterere Aufrufe ggf. bei Erbbaurecht fÃŒr die mit "an" verknuepften Buchungsstellen. 
     207        Table-Tag und Kopfzeile im aufrufenden Programm.  
    82208*/ 
     209 
     210        // F L U R S T U E C K 
     211        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, "; 
     212        $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche "; 
     213        $sql.="FROM ax_gemarkung g "; 
     214        $sql.="JOIN ax_flurstueck f ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
     215        $sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von ";  
     216        $sql.="WHERE v.beziehung_zu='".$gml_bs."' "; // id buchungsstelle 
     217        $sql.="AND   v.beziehungsart='istGebucht' "; 
     218        $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     219        $resf=pg_query($con,$sql); 
     220        if (!$resf) {echo "<p class='err'>Fehler bei Flurst&uuml;ck<br><br>".$sql."</p>\n";} 
     221        if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben 
     222                $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);     
     223        } 
     224        $altlfdnr=""; 
     225        $j=0; 
     226        while($rowf = pg_fetch_array($resf)) { 
     227                if ($rowf["nenner"] != "") {$fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT);} 
     228                $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;"; 
     229                $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT); 
     230                $fskenn=str_pad($rowf["zaehler"], 5, "0", STR_PAD_LEFT); 
     231                echo "\n<tr>"; // eine Zeile je Flurstueck 
     232 
     233                // Sp. 1-3 der Tab. aus Buchungsstelle, nicht aus FS 
     234                if($lfdnr == $altlfdnr) {       // gleiches Grundstueck          
     235                        echo "\n\t<td>&nbsp;</td>\n\t<td>&nbsp;</td>\n\t<td>&nbsp;</td>"; 
     236                } else { 
     237                        echo "\n\t<td><img src='ico/Grundstueck.ico' width='16' height='16' alt='' title='Grundst&uuml;ck' /> <span class='wichtig'>".$bvnr."</span>";  // BVNR 
     238                        if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle");} 
     239                        echo "</td>"; 
     240                        echo "\n\t<td>".$ba."</td>"; // Buchungsart entschluesselt 
     241                        echo "\n\t<td>&nbsp;</td>"; // Anteil 
     242                        $altlfdnr=$lfdnr;        
     243                }                
     244                //Sp. 4-7 aus Flurstueck 
     245                echo "\n\t<td><span class='key'>".$rowf["gemarkungsnummer"]."</span> ".$rowf["bezeichnung"]."</td>"; 
     246                echo "\n\t<td>".$flur."</td>"; 
     247                echo "\n\t<td><span class='wichtig'>".$fskenn."</span>"; 
     248                if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");} 
     249                echo "</td>\n\t<td class='fla'>".$flae."</td>"; 
     250 
     251                echo "\n\t<td><p class='nwlink noprint'>"; 
     252                echo "<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n"; 
     253                if ($idanzeige) {echo "&amp;id=j";} 
     254                echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''></a></p></td>\n</tr>"; 
     255 
     256                $j++; 
     257        } // Ende Flurstueck 
     258        return $j; 
     259} 
     260 
     261function eigentuemer($con, $gkz, $idanzeige, $gmlid, $mitadresse) { 
     262        // Tabelle mit Eigentuemerdaten zu einem Grundbuchblatt ausgeben 
     263        // Sp.1 = Namennummer, Sp. 2 = Name / Adresse, Sp. 3 = Link 
     264        // Parameter: 
     265        //              $gmlid = ID des GB-Blattes 
     266        //              $mitadresse = Option (true/false) ob auch die Adresszeile ausgegeben werden soll 
     267        // Return = Anzahl Namensnummern 
     268         
     269        // Schleife 1: N a m e n s n u m m e r 
     270        // Beziehung: ax_namensnummer  >istBestandteilVon>  ax_buchungsblatt 
     271         
     272        $sql="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, "; 
     273        $sql.="n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass "; 
     274        $sql.="FROM  ax_namensnummer   n "; 
     275        $sql.="JOIN  alkis_beziehungen b ON b.beziehung_von=n.gml_id "; 
     276        $sql.="WHERE b.beziehung_zu='".$gmlid."' "; // id blatt 
     277        $sql.="AND   b.beziehungsart='istBestandteilVon' "; 
     278        $sql.="ORDER BY laufendenummernachdin1421;"; 
     279         
     280        $resn=pg_query($con, $sql); 
     281        if (!$resn) {echo "<p class='err'>Fehler bei Eigentuemer<br>SQL= ".$sql."<br></p>\n";} 
     282 
     283        echo "<p class='nwlink noprint'>weitere Auskunft:</p>"; // oben rechts von der Tabelle 
     284        echo "\n<table class='eig'>"; 
     285        $n=0; // Z.NamNum. 
     286 
     287        //echo "\n\n<!-- vor Schleife 1 Namensnummer -->";       
     288        while($rown = pg_fetch_array($resn)) { 
     289                echo "\n<tr>"; 
     290                        echo "\n\t<td class='nanu' title='Namens-Nummer'><p>"; // Sp. 1 
     291                                // VOR die Tabelle: "EigentÃŒmer" 
     292                                $namnum=kurz_namnr($rown["lfd"]); 
     293                                echo $namnum."&nbsp;"; 
     294                                if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer");} 
     295                        echo "</p></td>"; 
     296 
     297                        echo "\n\t<td>"; // Sp. 2 
     298                        $rechtsg=$rown["adr"]; 
     299                        if ($rechtsg != "" ) { 
     300                                if ($rechtsg == 9999) { // sonstiges 
     301                                        echo "<p class='zus' title='Beschrieb der Rechtsgemeinschaft'>".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")."</p>"; 
     302                                } else { 
     303                                        echo "<p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities(rechtsgemeinschaft($rown["adr"]), ENT_QUOTES, "UTF-8")."</p>"; 
     304                                        // !! Feld /td und Zeile /tr nicht geschlossen 
     305                                        //      echo "\n\t</td>\n</tr>"; // !!! IMMER? oder nur wenn letzte Zeile?                       
     306                                } 
     307                        } 
     308                        //if ($rown["anlass"] > 0 ) {echo "<p>Anlass=".$rown["anlass"]."</p>";} // TEST: 
     309                 
     310                        //echo "\n\t\t</td>\n\t\t<td></td>\n</tr>"; 
     311                 
     312                        // Schleife Ebene 2: andere Namensnummern 
     313                        // Beziehung   ax_namensnummer >bestehtAusRechtsverhaeltnissenZu>  ax_namensnummer  
     314                 
     315                        // Die Relation 'Namensnummer' besteht aus RechtsverhÀltnissen zu 'Namensnummer' sagt aus,  
     316                        // dass mehrere Namensnummern zu einer Rechtsgemeinschaft gehören können.  
     317                        // Die Rechtsgemeinschaft selbst steht unter einer eigenen AX_Namensnummer,  
     318                        // die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt. 
     319                 
     320                        // Die Relation 'Namensnummer' hat VorgÀnger 'Namensnummer' gibt Auskunft darÃŒber,  
     321                        // aus welchen Namensnummern die aktuelle entstanden ist. 
     322         
     323                // Schleife 2: P e r s o n   
     324                // Beziehung: ax_person  <benennt<  ax_namensnummer 
     325                $sql="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad "; 
     326                $sql.="FROM  ax_person p "; 
     327                $sql.="JOIN  alkis_beziehungen v ON v.beziehung_zu=p.gml_id "; 
     328                $sql.="WHERE v.beziehung_von='".$rown["gml_id"]."' "; // id num 
     329                $sql.="AND   v.beziehungsart='benennt';"; 
     330                //echo "\n\t<p class='err'>Schleife Person SQL=<br>".$sql."</p>"; // test 
     331         
     332                $rese=pg_query($con, $sql); 
     333                if (!$rese) {echo "\n\t<p class='err'>Fehler bei Eigentuemer<br>SQL= ".$sql."<br></p>\n";} 
     334                $i=0; // Z.Eig. 
     335                //echo "\n<!-- vor Schleife 2 Person -->";               
     336                while($rowe = pg_fetch_array($rese)) { 
     337                        $diePerson=""; 
     338                        if ($rowe["akademischergrad"] <> "") {$diePerson=$rowe["akademischergrad"]." ";} 
     339                        $diePerson.=$rowe["nachnameoderfirma"]; 
     340                        if ($rowe["vorname"] <> "") {$diePerson.=", ".$rowe["vorname"];} 
     341                        if ($rowe["namensbestandteil"] <> "") {$diePerson.=". ".$rowe["namensbestandteil"];} 
     342                        if ($rowe["geburtsdatum"] <> "") {$diePerson.=", geb. ".$rowe["geburtsdatum"];} 
     343                        if ($rowe["geburtsname"] <> "") {$diePerson.=", geb. ".$rowe["geburtsname"];} 
     344                        $diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute 
     345         
     346                        // Spalte 1 enthÀlt die Namensnummer, nur in Zeile 0 
     347                        if ($i > 0) { 
     348                                echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td>"; 
     349                        } 
     350                        // Spalte 2 = Angaben 
     351                        echo "<p class='geig' title='Eigent&uuml;merart ".eigentuemerart($rown["eigentuemerart"])."'>".$diePerson."</p></td>"; 
     352 
     353                        // Spalte 3 = Link 
     354                        echo "\n\t<td><p class='nwlink noprint'>"; 
     355                                if ($idanzeige) {linkgml($gkz, $rowe["gml_id"], "Person"); echo "&nbsp";} 
     356                                echo "<a href='alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowe[0]; 
     357                                if ($idanzeige) {echo "&amp;id=j";} 
     358                                echo "' title='vollst&auml;ndiger Name und Adresse eines Eigent&uuml;mers'>Person <img src='ico/Eigentuemer.ico' width='16' height='16' alt=''></a></p>"; 
     359                        echo "</td>\n</tr>"; 
     360         
     361                        if ($mitadresse) { 
     362                                // Schleife 3:  A d r e s s e  (OPTIONAL) 
     363                                $sql ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland "; 
     364                                $sql.="FROM ax_anschrift a "; 
     365                                $sql.="JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu "; 
     366                                $sql.="WHERE b.beziehung_von='".$rowe["gml_id"]."' "; 
     367                                $sql.="AND b.beziehungsart='hat';"; // ORDER? 
     368 
     369                                $resa=pg_query($con,$sql); 
     370                                if (!$resa) { 
     371                                        echo "\n\t<p class='err'>Fehler bei Adressen.<br>\nSQL= ".$sql."</p>\n"; 
     372                                } 
     373                                $j=0; 
     374                                //echo "\n<!-- vor Schleife 3 Adresse -->";      
     375                                while($rowa = pg_fetch_array($resa)) { 
     376                                        $gmla=$rowa["gml_id"]; 
     377                                        $plz=$rowa["plz"]; // integer 
     378                                        if($plz == 0) { 
     379                                                $plz=""; 
     380                                        } else { 
     381                                                $plz=str_pad($plz, 5, "0", STR_PAD_LEFT); 
     382                                        } 
     383                                        $ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8"); 
     384                                        $str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8"); 
     385                                        $hsnr=$rowa["hausnummer"]; 
     386                                        $land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8"); 
     387 
     388                                        echo "\n<tr>\n\t<td>&nbsp;</td>"; // Spalte 1 
     389                                        echo "\n\t<td><p class='gadr'>"; //Spalte 2 
     390                                        if ($str.$hsnr != "") { 
     391                                                echo $str." ".$hsnr."<br>"; 
     392                                        } 
     393                                        if ($plz.$ort != "") { 
     394                                                echo $plz." ".$ort; 
     395                                        } 
     396                                        if ($land != "" and $land != "DEUTSCHLAND") { 
     397                                                echo ", ".$land; 
     398                                        } 
     399                                        echo "</p></td>"; 
     400                                        echo "\n\t<td>"; // Spalte 3 
     401                                        if ($idanzeige) { 
     402                                                echo "<p class='nwlink noprint'>"; 
     403                                                linkgml($gkz, $gmla, "Adresse"); 
     404                                                echo "</p>"; 
     405                                        } else {  
     406                                                echo "&nbsp;";                                   
     407                                        } 
     408                                        echo "</td>\n</tr>"; 
     409                                        $j++; 
     410                                } 
     411                                //echo "\n<!-- nach Schleife 3 Adresse -->"; 
     412                        } // if 
     413                        // 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG" 
     414                        $i++; // Z. Person 
     415 
     416                        // als eigene Tab-Zeile? 
     417                        // 'Anteil' ist der Anteil der Berechtigten in Bruchteilen (Par. 47 GBO)  
     418                        // an einem gemeinschaftlichen Eigentum (GrundstÃŒck oder Recht). 
     419                        if ($rown["zaehler"] != "") { 
     420                                echo "\n<tr>\n\t<td>&nbsp;</td>"; // Sp. 1 
     421                                echo "\n\t<td><p class='avh' title='Anteil'>".$rown["zaehler"]."/".$rown["nenner"]." Anteil</p></td>"; 
     422                                echo "\n\t<td>&nbsp;</td>\n</tr>"; // Sp. 3 
     423                        } 
     424                } 
     425                //echo "\n<!-- nach Schleife 2 Person -->";      
     426                 
     427                if ($i == 0) { // keine Pers zur NamNum 
     428                        echo "\n<!-- Rechtsgemeinscahft='".$rechtsg."' -->"; 
     429                        // Wann warnen? 
     430                        //if ($rechtsg != 9999) { 
     431                                // Art der Rechtsgemeinsachft, 0 Eigent. ist Normal bei Sondereigentum 
     432                                //echo "\n<tr>\n<td>"; 
     433                                //linkgml($gkz, $rown["gml_id"], "Namensnummer"); 
     434                                //echo "</td>\n<td>\n\t\t<p class='err'>Kein Eigent&uuml;mer gefunden. (Rechtsgemeinschaft=".$rechtsg.")</p>"; 
     435                        //} 
     436                        echo "</td>\n\t<td>&nbsp;</td>\n<tr>"; 
     437                } 
     438                $n++; // cnt NamNum      
     439        } // End Loop NamNum 
     440        //echo "\n<!-- nach Schleife 1 Namensnummer -->";        
     441        echo "\n</table>\n";     
     442        return $n;  
     443} // End Function eigentuemer 
     444 
     445// **  Functions  zum   E n t s c h l u e s s e l n  ** 
     446 
    83447// Entschluesslung ax_person.anrede 
    84448function anrede($key) { 
Note: See TracChangeset for help on using the changeset viewer.