Ignore:
Timestamp:
12/01/16 12:43:03 (7 years ago)
Author:
frank.jaeger
Message:

Verbesserungen an der ALKIS-Buchauskunft (Geschwindigkeit, Fehlerkorrekturen, Mandantenfähigkeit) und an der Mapbender2-Navigation.

File:
1 edited

Legend:

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

    r372 r376  
    11<?php 
    22/*      Modul: alkisfkt.php 
     3 
    34        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo). 
    45        Functions 
    56 
    67        Version: 
    7         2010-12-17 Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute) 
    8         2011-11-01 *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen 
    9         2011-11-02 Parameter debug in function eigentuemer 
    10         2011-11-17 Variable ($debug, $idanzeige, $showkey) von Parameter nach global. Die heißen in allen Programmteilen gleich. 
    11         2014-01-22 Eigentuemerart: Mehr Werte und Zugriff auf DB-SchlÃŒssel-Tabelle 
    12         2014-02-06 Korrektur EigentÃŒmerart 
    13         2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    14         2014-09-15 Bei Relationen den Timestamp abschneiden 
    15         2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id) 
    16         2014-12-30 class='fsnr' 
    17         2015-12-09 Austausch .ico durch .png 
     8        2016-02-24 Version fuer norGIS-ALKIS-Import, "function linkgml" raus. Case-EntschlÃŒsselung raus. 
     9        2016-03-03 Hinweis auf Datenfehler wenn "ax_person" fehlt in function "eigentuemer" 
     10        2016-03-14 Kleine Korrekturen 
     11        2016-11-29 Gemeinsam genutzte Datenbanken ermöglichen (Filter Gemeinde) 
    1812*/ 
    1913 
    2014function footer($gmlid, $link, $append) { 
    2115        // Einen Seitenfuss ausgeben. 
    22         // Den URL-Parameter "&id=j/n" und "&showkey=j/n" in allen Kombinationen umschalten lassen. 
    2316        // Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor 
    24  
    25         // Der Parameter $append wird angehaengt wenn gefuellt 
    26         //  Anwendung: &eig=j bei FS-NW, &ltyp=m/p/o bei Lage 
    27         global $gkz, $idumschalter, $idanzeige, $showkey, $hilfeurl; 
    28  
    29         $customer=$_SESSION["mb_user_name"]; 
    30         echo "\n<div class='confbereich noprint'>"; 
    31         echo "\n<table class='outer'>\n<tr>"; 
     17        // Den URL-Parameter "&showkey=j/n" umschalten lassen. 
     18        // $append wird angehaengt wenn gefuellt. Anwendung: &eig=j bei FS-NW, &ltyp=m/p/o bei Lage 
     19        global $gkz, $showkey, $hilfeurl, $auth; 
     20 
     21        echo "\n<div class='confbereich noprint'>" 
     22        ."\n<table class='outer'>\n<tr>"; 
    3223 
    3324        // Spalte 1: Info Benutzerkennung 
    34         echo "\n\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></td>"; 
     25        if ($auth == "mapbender") { 
     26                $customer=$_SESSION["mb_user_name"]; 
     27                echo "\n\t<td title='Info'><i>Benutzer:&nbsp;".$customer."</i></td>"; 
     28        } else { 
     29                echo "\n\t<td>&nbsp;</td>"; 
     30        } 
    3531 
    3632        // Spalte 2: Umschalter 
    3733        echo "\n\t<td title='Konfiguration'>"; 
    3834                $mylink ="\n\t\t<a class='gmlid' href='".$link."gkz=".$gkz."&amp;gmlid=".$gmlid.$append; 
    39                 if ($showkey) {$mykey = "&amp;showkey=j";} else {$mykey = "&amp;showkey=n";} 
    40                 if ($idumschalter) { // fuer Entwicklung ODER Test 
    41                         if ($idanzeige) {$myid = "&amp;id=j";} else {$myid = "&amp;id=n";} 
    42  
    43                         // Umschalter nur ausgeben, wenn in conf gesetzt 
    44                         if ($idanzeige) { // Umschalten ID ein/aus 
    45                                 echo $mylink.$mykey."&amp;id=n' title='Ohne Verfolgung der ALKIS-Beziehungen'>"; 
    46                                 echo "<img src='ico/Beziehung_link.png' width='16' height='16' alt=''> ID aus</a>"; 
    47                         } else { 
    48                                 echo $mylink.$mykey."&amp;id=j' title='Verfolgung der GML-ID in den ALKIS-Beziehungen'>"; 
    49                                 echo "<img src='ico/Beziehung_link.png' width='16' height='16' alt=''> ID ein</a>"; 
    50                         } 
    51                         echo " | "; 
    52                 } else { // keinen ID-Umschalter 
    53                         $myid = ""; 
    54                 } 
    55  
    56                 if ($showkey) { // // Umschalten SchlÃŒssel ein/aus 
    57                         echo $mylink.$myid."&amp;showkey=n' title='Verschl&uuml;sselungen ausblenden'>Schl&uuml;ssel aus</a>"; 
     35 
     36                if ($showkey) { // Umschalten SchlÃŒssel ein/aus 
     37                        echo $mylink."&amp;showkey=n' title='Verschl&uuml;sselungen ausblenden'>Schl&uuml;ssel aus</a>"; 
    5838                } else { 
    59                         echo $mylink.$myid."&amp;showkey=j' title='Verschl&uuml;sselungen anzeigen'>Schl&uuml;ssel ein</a>"; 
     39                        echo $mylink."&amp;showkey=j' title='Verschl&uuml;sselungen anzeigen'>Schl&uuml;ssel ein</a>"; 
    6040                } 
    6141        echo "\n\t</td>"; 
    6242 
    6343        // Spalte 3 
    64         echo "\n\t<td title='Hilfe'>"; 
    65         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>"; 
    66         echo "\n</tr>\n</table>\n</div>\n"; 
     44        echo "\n\t<td title='Hilfe'>" 
     45        ."\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>" 
     46        ."\n</tr>\n</table>\n</div>\n"; 
    6747        return 0; 
    6848} 
    6949 
    70 function linkgml($gkz, $gml, $typ, $tabelle)  { 
    71         // Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php 
    72         // tabelle = nur angeben fÃŒr Tabellen, die Relationen-Spalten besitzen, sonst leer 
    73         $kurzid=substr($gml, 12, 4); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich 
    74         // PostNAS 0.8: Timestamp abschneiden 
    75         echo "\n\t\t<a target='_blank' title='ID ".$typ."' class='gmlid noprint' "; 
    76         echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."&amp;tabelle=".$tabelle."'>"; 
    77         echo "<img src='ico/Beziehung_link.png' width='16' height='16' alt=''>".$kurzid."</a>"; 
    78         return 0; 
     50function ber_bs_hinw($gmls) { 
     51        // Unter einem Grundbuch-Link den Hinweis auf "berechtigte Buchungssstellen" anzeigen 
     52        // In FS-Nachweis wird nur der EigentÃŒmer des direkt gebuchten GrundstÃŒcks angezeigt. 
     53        // Den Erbbauberechtigten sieht man erst in der Grundbuch-Auskunft. 
     54        global $debug, $showkey; 
     55 
     56        // Buchungstelle dien. >an> Buchungstelle herr. 
     57        $sql ="SELECT count(sh.gml_id) AS anz, sh.buchungsart, a.v " 
     58        ."FROM ax_buchungsstelle sd JOIN ax_buchungsstelle sh ON sd.gml_id=ANY(sh.an) "  
     59        ."LEFT JOIN alkis_wertearten a ON sh.buchungsart=cast(a.k AS integer) "  
     60        ."WHERE sd.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND a.element='ax_buchungsstelle' and a.bezeichnung='buchungsart' " 
     61        ."GROUP BY sh.buchungsart, a.v;"; 
     62 
     63        $v = array($gmls); // id dienende BS 
     64        $resan = pg_prepare("", $sql); 
     65        $resan = pg_execute("", $v); 
     66        if (!$resan) { 
     67                echo "\n<p class='err'>Fehler bei 'berechtigte Buchungsstellen'.</p>\n"; 
     68                if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";} 
     69        } 
     70        $an=0; 
     71        while($rowan = pg_fetch_array($resan)) { 
     72                $an++; 
     73                if ($an == 1) {echo "\n\t<br>\n\t<p class='nwlink' title='Andere Grundst&uuml;cke mit Rechten an diesem.'>Berechtigte Buchungen:<br><b>";} 
     74                if ($an > 1) {echo",<br>";} // kann es gemischste Buchungsarten geben? 
     75                echo $rowan["anz"]." ".htmlentities($rowan["v"], ENT_QUOTES, "UTF-8"); 
     76                if ($showkey) {echo " <span class='key'>(".$rowan["buchungsart"].")</span>";} 
     77        } 
     78        if ($an == 0) { 
     79                echo "<br><p class='nwlink' title='Kein anderes Grundst&uuml;ck hat ein Recht an diesem.'>Keine berechtigte Buchung</p>"; 
     80        } else { 
     81                echo "</b></p>"; 
     82        } 
     83        pg_free_result($resan); 
    7984} 
    8085 
     
    8590        $kurz=ltrim($kurz, "0"); // fuehrende Nullen am Anfang 
    8691        $kurz=str_replace(".0",".",$kurz); // fuehrende Null jeder Stufe 
     92        $kurz=rtrim($kurz); // Leerzeichen hinten 
     93        // echo "/n<p class='dbg'> lang='".$lang."'</p>/n<p class='dbg'> kurz='".$kurz."'</p>"; 
    8794        return $kurz; 
    8895} 
    8996 
    90 function bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, $bvnraus) { 
     97function bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, $bvnraus, $bartkey, $bartstory) { 
    9198/*      Bestandsnachweis - Flurstuecksdaten 
    9299        Die Tabellenzeilen mit den Flurstuecksdaten zu einer Buchungsstelle im Bestandsnachweis ausgeben. 
    93100        Die Funktion wird je einmal aufgerufen fÃŒr die Buchungen direkt auf dem GB (Normalfall). 
    94101        Weiterere Aufrufe ggf. bei Erbbaurecht fÃŒr die mit "an" verknuepften Buchungsstellen. 
    95         Table-Tag und Kopfzeile im aufrufenden Programm. */ 
    96         global $debug, $gkz, $idanzeige, $showkey; 
     102        Table-Tag und Tabellenkopf werden im aufrufenden Programm ausgegeben. */ 
     103        global $debug, $gkz, $showkey, $filtkreis, $filtgem; 
    97104 
    98105        // F L U R S T U E C K 
     
    100107        FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id  
    101108        LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
    102         WHERE s.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
    103  
    104         $v = array($gml_bs); 
     109        WHERE f.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL AND s.gml_id= $1 "; 
     110        if ($filtgem == '' ) { // ungefiltert 
     111                $v=array($gml_bs); 
     112        } else { 
     113                $sql.="AND f.kreis = $2 AND f.gemeinde = $3 "; // ZustÀndiges Gebiet 
     114                $v=array($gml_bs, $filtkreis, $filtgem); 
     115        } 
     116        $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
    105117        $resf = pg_prepare("", $sql); 
    106118        $resf = pg_execute("", $v); 
     
    109121        if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben 
    110122                $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 
     123        } else { 
     124                $bvnr=""; 
    111125        } 
    112126        $altlfdnr=""; 
     
    123137                echo "\n<tr>"; // eine Zeile je Flurstueck 
    124138                        // Sp. 1-3 der Tab. aus Buchungsstelle, nicht aus FS 
    125                         if($lfdnr == $altlfdnr) {       // gleiches Grundstueck 
    126                                 echo "\n\t<td>&nbsp;</td>"; 
    127                                 echo "\n\t<td>&nbsp;</td>"; 
    128                                 echo "\n\t<td>&nbsp;</td>"; 
    129                         } else { 
    130                                 echo "\n\t<td>"; 
    131                                         echo "<a name='bvnr".$lfdnr."'></a>"; // Sprungmarke 
    132                                         echo "<span class='wichtig'>".$bvnr."</span>";  // BVNR 
    133                                         if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle", "ax_buchungsstelle");} 
    134                                 echo "</td>"; 
    135  
    136                                 echo "\n\t<td>"; // Buchungsart  
    137                                         //      if ($showkey) {echo "<span class='key'>".$???."</span>&nbsp;";} // Schluessel 
     139                        if($lfdnr == $altlfdnr) { // gleiches Grundstueck 
     140                                echo "\n\t<td>&nbsp;</td>" 
     141                                ."\n\t<td>&nbsp;</td>" 
     142                                ."\n\t<td>&nbsp;</td>"; 
     143                        } else { // Sprungmarke, BVNR 
     144                                echo "\n\t<td>" 
     145                                        ."<a id='bvnr".$lfdnr."'></a><span class='wichtig'>".$bvnr."</span>" /// ++++ FEHLER?? $bvnr 
     146                                ."</td>"; 
     147 
     148                                echo "\n\t<td title ='".$bartstory."'>"; // Buchungsart  
     149                                        if ($showkey) {echo "<span class='key'>".$bartkey."</span>&nbsp;";} // Schluessel 
    138150                                        echo $ba; // entschluesselt 
    139                                 echo "</td>";  
    140                                 echo "\n\t<td>&nbsp;</td>"; // Anteil 
     151                                echo "</td>" 
     152                                ."\n\t<td>&nbsp;</td>"; // Anteil 
    141153                                $altlfdnr=$lfdnr; 
    142154                        } 
    143155                        //Sp. 4-7 aus Flurstueck 
    144156                        echo "\n\t<td>"; 
    145                         if ($showkey) { 
    146                                 echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> "; 
    147                         } 
    148                         echo $rowf["bezeichnung"]."</td>"; 
    149                         echo "\n\t<td>".$flur."</td>"; 
    150                         echo "\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span>"; 
    151                                 if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");} 
    152                         echo "</td>"; 
    153                         echo "\n\t<td class='fla'>".$flae."</td>"; 
    154  
    155                         echo "\n\t<td><p class='nwlink noprint'>"; 
    156                                 echo "<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n"; 
    157                                         if ($idanzeige) {echo "&amp;id=j";} 
     157                        if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";} 
     158                        echo $rowf["bezeichnung"]."</td>" 
     159                        ."\n\t<td>".$flur."</td>" 
     160                        ."\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span>" 
     161                        ."</td>" 
     162                        ."\n\t<td class='fla'>".$flae."</td>"; 
     163 
     164                        echo "\n\t<td><p class='nwlink noprint'>" 
     165                                ."<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n"; 
    158166                                        if ($showkey)   {echo "&amp;showkey=j";} 
    159                                         echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck "; 
    160                                         echo "<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"; 
    161                                 echo "</a>"; 
    162                         echo "</p></td>"; 
    163                 echo "\n</tr>"; 
     167                                        echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck " 
     168                                        ."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>" 
     169                                ."</a>" 
     170                        ."</p></td>" 
     171                ."\n</tr>"; 
    164172 
    165173                $j++; 
     
    170178                if ($debug > 2) {echo "<p class='dbg'>SQL='".$sql."'<br>$1 = '".$gml_bs."'</p>";} 
    171179        } */ 
    172  
    173180        pg_free_result($resf); 
    174181        return $j; 
     
    185192        // Schleife 1: N a m e n s n u m m e r 
    186193        // Beziehung: ax_namensnummer >istBestandteilVon> ax_buchungsblatt 
    187         global $debug, $gkz, $idanzeige, $showkey; 
     194        global $debug, $gkz, $showkey; 
    188195 
    189196        // Link ÃŒber Java-Class? (Ja in alkisinlayausk.php, sonst normal) 
     
    196203        } // Beispiel-Link href='javascript:imFenster(\"alkislage.php?gkz= ... ."\")'>xxx "; 
    197204 
    198         $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass "; 
    199         $sqln.="FROM ax_namensnummer n WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;"; 
     205        $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass, n.benennt, wn.v AS adrv, we.v AS eiartv 
     206FROM ax_namensnummer n  
     207LEFT JOIN alkis_wertearten wn ON cast(n.artderrechtsgemeinschaft AS character varying)=wn.k AND wn.element='ax_namensnummer' AND wn.bezeichnung='artderrechtsgemeinschaft'  
     208LEFT JOIN alkis_wertearten we ON cast(n.eigentuemerart AS character varying)=we.k AND we.element='ax_namensnummer' AND we.bezeichnung='eigentuemerart' 
     209WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;"; 
    200210 
    201211        $v = array($gmlid); // 16 Stellen bei Relationen 
     
    204214 
    205215        if (!$resn) { 
    206                 echo "<p class='err'>Fehler bei Eigent&uuml;mer</p>\n"; 
     216                echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>\n"; 
    207217                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqln."<br>$1=gml= '".$gmlid."'</p>";} 
    208218        } 
    209219 
    210         echo "\n\n<table class='eig'>"; 
     220        echo "\n<table class='eig'>"; 
    211221        $n=0; // Z.NamNum. 
    212222 
    213223        while($rown = pg_fetch_array($resn)) { 
    214224                $gmlnn=$rown["gml_id"]; 
    215                 echo "\n<tr>"; 
    216                         echo "\n\t<td class='nanu' title='Namens-Nummer'>\n\t\t<p>"; // Sp. 1 
    217                                 // VOR die Tabelle: "EigentÃŒmer" 
    218                                 $namnum=kurz_namnr($rown["lfd"]); 
    219                                 echo $namnum."&nbsp;"; 
    220                                 if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer", "ax_namensnummer");} 
    221                         echo "</p>\n\t</td>"; 
    222  
    223                         echo "\n\t<td>"; // Sp. 2 
    224                         $rechtsg=$rown["adr"]; 
     225                $namnum=kurz_namnr($rown["lfd"]); 
     226                $rechtsg=$rown["adr"]; 
     227                echo "\n<tr>" 
     228                        ."\n\t<td class='nanu' title='Namens-Nummer'>\n\t\t<p>" // Sp. 1 
     229                                .$namnum."&nbsp;" // VOR die Tabelle: "EigentÃŒmer" 
     230                        ."</p>\n\t</td>" 
     231                        . "\n\t<td>"; // Sp. 2 
    225232                        if ($rechtsg != "" ) { 
    226233                                if ($rechtsg == 9999) { // sonstiges 
    227234                                        echo "\n\t\t<p class='zus' title='Beschrieb der Rechtsgemeinschaft'>".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")."</p>"; 
    228235                                } else { 
    229                                         echo "\n\t\t<p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities(rechtsgemeinschaft($rown["adr"]), ENT_QUOTES, "UTF-8")."</p>"; 
     236                                        echo "\n\t\t<p class='zus' title='Art der Rechtsgemeinschaft'>".htmlentities($rown["adrv"], ENT_QUOTES, "UTF-8")."</p>"; 
    230237                                } 
    231238                        } 
     
    240247                        // die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt. 
    241248 
    242  
    243249                // Schleife 2: P e r s o n 
    244250                // Beziehung: ax_person  <benennt<  ax_namensnummer 
    245                 $sqlp ="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad "; 
    246                 $sqlp.="FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=p.gml_id WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;"; 
    247  
    248                 $v = array($gmlnn); 
     251 
     252        //      $sqlp="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad " 
     253        //      ."FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=p.gml_id WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;"; 
     254        //      $v = array($gmlnn); 
     255 
     256        // 03.03.16: 
     257                $sqlp="SELECT gml_id, nachnameoderfirma, vorname, geburtsname, geburtsdatum, namensbestandteil, akademischergrad " 
     258                ."FROM ax_person WHERE gml_id= $1 AND endet IS NULL;"; 
     259                $gmlpers=$rown["benennt"]; 
     260                $v = array($gmlpers); // gml_id von ax_person 
    249261                $resp = pg_prepare("", $sqlp); 
    250262                $resp = pg_execute("", $v); 
    251  
    252263                if (!$resp) { 
    253264                        echo "\n\t<p class='err'>Fehler bei Person</p>\n"; 
    254                         if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlp."<br>$1=gml= '".$gmlnn."'</p>";} 
     265                        if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlp."<br>$1=gml= '".$gmlpers."'</p>";} 
    255266                } 
    256267 
    257268                $i=0; // cnt Person 
    258                 while($rowp = pg_fetch_array($resp)) {  // ++ Schleife? nn >benennt> Person ist kein Array! 
    259                         $diePerson=""; 
     269                while($rowp = pg_fetch_array($resp)) { // Schleife weglassen? nn >benennt> Person ist KEIN Array! 
     270                        $diePerson=""; //++ Anrede? 
    260271                        if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";} 
    261272                        $diePerson.=$rowp["nachnameoderfirma"]; 
     
    266277                        $diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute 
    267278 
    268                         // Spalte 1 enthÀlt die Namensnummer, nur in Zeile 0 
    269                         if ($i > 0) { 
     279                        if ($i > 0) { // Spalte 1 enthÀlt die Namensnummer, nur in Zeile 0 
    270280                                echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td>"; 
    271281                        } 
    272282                        // Spalte 2 = Angaben 
    273                         $eiartkey=$rown["eigentuemerart"]; 
    274                         $eiart=eigentuemerart($eiartkey); 
     283                        $eiartkey=$rown["eigentuemerart"]; // Key 
     284                        $eiart=$rown["eiartv"]; // Value 
    275285                        echo "\n\t\t<p class='geig' title='Eigent&uuml;merart: ".$eiart."'>".$diePerson."</p>\n\t</td>"; 
    276286 
    277287                        // Spalte 3 = Link 
    278288                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
    279                                 if ($idanzeige) {linkgml($gkz, $rowp["gml_id"], "Person", "ax_person"); echo "&nbsp";} 
    280289                                if ($showkey AND $eiartkey != '') { // oft leer 
    281290                                                echo "<span class='key'>(".$eiartkey.")</span> "; 
    282291                                } 
    283                                 echo "\n\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowp["gml_id"]; 
    284                                 if ($idanzeige) {echo "&amp;id=j";} 
     292                                echo "\n\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowp[0]; 
    285293                                if ($showkey)   {echo "&amp;showkey=j";} 
    286                                 echo $lnknach."' title='vollst&auml;ndiger Name und Adresse eines Eigent&uuml;mers'>".$eiart; 
    287                                 echo " <img src='ico/Eigentuemer.png' width='16' height='16' alt=''></a>\n\t\t</p>"; 
    288                         echo "\n\t</td>\n</tr>"; 
     294                                echo $lnknach."' title='vollst&auml;ndiger Name und Adresse eines Eigent&uuml;mers'>".$eiart 
     295                                ." <img src='ico/Eigentuemer.png' width='16' height='16' alt=''></a>\n\t\t</p>" 
     296                        ."\n\t</td>\n</tr>"; 
    289297 
    290298                        if ($mitadresse) { 
    291299                                // Schleife 3:  A d r e s s e  (OPTIONAL) 
    292                                 $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland  
    293                                 FROM ax_anschrift a JOIN ax_person p ON a.gml_id=ANY(p.hat) WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL LIMIT 2;"; 
     300                                $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland " 
     301                                ."FROM ax_anschrift a JOIN ax_person p ON a.gml_id=ANY(p.hat) WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL LIMIT 2;"; 
    294302                                $gmlp=$rowp["gml_id"]; // Person 
    295303                                $v = array($gmlp); 
     
    319327                                                echo "\n<tr>\n\t<td>&nbsp;</td>"; //Sp. 1 
    320328                                                echo "\n\t<td><p class='gadr'>"; //Sp. 2 
    321                                                 if ($str.$hsnr != "") { 
    322                                                         echo $str." ".$hsnr."<br>"; 
    323                                                 } 
    324                                                 if ($plz.$ort != "") { 
    325                                                         echo $plz." ".$ort; 
    326                                                 } 
    327                                                 if ($land != "" and $land != "DEUTSCHLAND") { 
    328                                                         echo ", ".$land; 
    329                                                 } 
    330                                                 echo "</p></td>"; 
    331                                                 echo "\n\t<td>"; // Sp. 3 
    332                                                 if ($idanzeige) { 
    333                                                         echo "<p class='nwlink noprint'>"; 
    334                                                         linkgml($gkz, $gmla, "Adresse", "ax_adresse"); 
    335                                                         echo "</p>"; 
    336                                                 } else {  
    337                                                         echo "&nbsp;"; 
    338                                                 } 
    339                                                 echo "</td>\n</tr>"; 
     329                                                if ($str.$hsnr != "") {echo $str." ".$hsnr."<br>";} 
     330                                                if ($plz.$ort != "") {echo $plz." ".$ort;} 
     331                                                if ($land != "" and $land != "DEUTSCHLAND") {echo ", ".$land;} 
     332                                                echo "</p></td>\n\t<td>"; // Sp. 3 
     333                                                echo "&nbsp;</td>\n</tr>"; 
    340334                                        } else { // manchmal dopplete Angaben (_straße / _str.) 
    341335                                                echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td><p class='dbg' title='Siehe Auskunft zur Person'>weitere Adresse</p></td>\n\t<td>&nbsp;</td>\n</tr>"; 
     
    354348                                $nenner=str_replace(".", ",", $rown["nenner"]); 
    355349                                $comnt="Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (Grundst&uuml;ck oder Recht)."; 
    356                                 echo "\n<tr>\n\t<td>&nbsp;</td>"; // Sp. 1 
    357                                 echo "\n\t<td><p class='avh' title='".$comnt."'>".$zaehler."/".$nenner." Anteil</p></td>"; 
    358                                 echo "\n\t<td>&nbsp;</td>\n</tr>"; // Sp. 3 
     350                                echo "\n<tr>\n\t<td>&nbsp;</td>" // Sp. 1 
     351                                ."\n\t<td><p class='avh' title='".$comnt."'>".$zaehler."/".$nenner." Anteil</p></td>" 
     352                                ."\n\t<td>&nbsp;</td>\n</tr>"; // Sp. 3 
    359353                        } 
    360354                } // End Loop Person 
    361                 if ($i == 0) { // kommt vor hinter Zeile Erbengemeinschaft, ist dann KEIN Fehler 
    362                         if ($debug > 1) { // nur bei Entwicklung 
    363                                 echo "\n<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>"; 
    364                                 if ($rechtsg != 9999) { 
    365                                         echo "\n<p class='dbg'>Fehler: Keine Person zur Namensnummer ".$namnum."</p>"; 
    366                                 //      if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1 = gml(NamNum) = '".$gmlnn."'</p>";} 
    367                                 } 
    368                         } 
    369                         echo "</td>\n\t<td>&nbsp;</td>\n<tr>"; 
     355                if ($i == 0) { // Kine Parson. Kommt vor hinter Zeile "Erbengemeinschaft", ist dann KEIN Fehler 
     356                        if ($rechtsg != 9999) { 
     357                                echo "\n<p class='err'>(Die Person mit der ID '".$gmlpers."' fehlt im Datenbestand)</p>"; 
     358                        } else { 
     359                                if ($debug > 1) { // nur bei Entwicklung 
     360                                        echo "\n\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>"; 
     361                                } 
     362                        } 
     363                        echo "</td>\n\t<td>&nbsp;</td>\n</tr>"; 
    370364                } 
    371365                $n++; // cnt NamNum 
    372366        } // End Loop NamNum 
    373         echo "\n</table>\n"; 
     367        echo "\n</table>"; 
    374368        if ($n == 0) { // bei "Fiktives Blatt" KEIN Fehler  
    375                 if ($debug > 1) {echo "<p class='dbg'>keine Namensnummern zum Blatt</p>";} 
    376         //      if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";} 
     369                if ($debug > 1) { 
     370                        echo "\n<p class='dbg'>keine Namensnummern zum Blatt</p>"; 
     371                        if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";} 
     372                } 
    377373        } 
    378374        pg_free_result($resn); 
    379375        return $n;  
    380 } // End Function eigentuemer 
    381  
    382 // **  Functions  zum   E n t s c h l u e s s e l n  ** 
    383  
    384 // Entschluesslung ax_person.anrede 
    385 function anrede($key) { 
    386         switch ($key) { 
    387                 case 1000: $wert = "Frau"; break; 
    388                 case 2000: $wert = "Herr"; break; 
    389                 case 3000: $wert = "Firma"; break; 
    390                 default:   $wert = ""; break; 
    391         } 
    392         return $wert; 
    393 } 
    394  
    395 // Entschluesslung AX_Namensnummer.artDerRechtsgemeinschaft 
    396 function rechtsgemeinschaft($key) { 
    397         switch ($key) { 
    398                 case 1000: $wert = "Erbengemeinschaft"; break; 
    399                 case 2000: $wert = "GÃŒtergemeinschaft"; break; 
    400                 case 3000: $wert = "BGB-Gesellschaft"; break; 
    401                 case 9999: $wert = "Sonstiges"; break;  // dann: beschriebDerRechtsgemeinschaft 
    402                 default:   $wert = ""; break; 
    403         } 
    404         return $wert; 
    405 } 
    406  
    407 // Entschluesslung AX_Namensnummer.eigentuemerart 
    408 function eigentuemerart($key) { 
    409         // Die hÀufigsten Werte direkt aus den Programmcode liefern, ggf. angepasst. 
    410         // FÃŒr seltene Werte in der Datenbank nachschlagen. 
    411         // SchlÃŒsseltabelle dazu ist vorhanden seit 2014-01-22. 
    412         // Hier Verwendung fÃŒr Text zum Link. 
    413         // FÃŒr korrekte Wiedergabe der amtlichen Werte einen Join auf Tabelle verwenden statt dieser Function.  
    414         global $debug; 
    415         switch ($key) { 
    416                 case 1000: $wert = "Nat&uuml;rliche Person"; break; // singular fuer Link-Text 
    417                 case 2000: $wert = "Juristische Person"; break; // singl. 
    418                 case 3000: $wert = "Körperschaft"; break; // singl. 
    419                 case 4000: $wert = "Kirchliches Eigentum"; break; 
    420                 case 4100: $wert = "Evangelische Kirche"; break; 
    421                 case 4200: $wert = "Katholische Kirche"; break; 
    422                 case 5100: $wert = "Bundesrepublik Deutschland"; break; 
    423                 case 5400: $wert = "Kreis"; break; 
    424                 case 5500: $wert = "Gemeinde"; break; 
    425                 case 5920: $wert = "Land"; break; // "Eigenes Bundesland" 
    426                 case "":   $wert = "Person"; break; // falls (noch) nicht gefuellt 
    427                 default: // Datenbank-Abfrage 
    428                         $sql="SELECT bezeichner FROM v_namnum_eigart WHERE wert= $1 ;"; 
    429                         $v=array($key); 
    430                         $res=pg_prepare("", $sql); 
    431                         $res=pg_execute("", $v); 
    432                         if ($res) { 
    433                                 $row=pg_fetch_array($res); 
    434                                 $wert=htmlentities($row["bezeichner"], ENT_QUOTES, "UTF-8"); 
    435                                 if ($wert == "") {$wert="** Eigent&uuml;merart '".$key."' nicht gefunden **";} 
    436                         } else { 
    437                                 echo "\n\t<p class='err'>Fehler bei DB-Zugriff auf EigentÃŒmerart.</p>\n"; 
    438                                 $wert="** Unbekannte Eigent&uuml;merart '".$key."' **"; 
    439                         } 
    440                         pg_free_result($res); 
    441                         break; 
    442         } 
    443         return $wert; 
    444 } 
    445  
    446 // Entschluesslung ax_buchungsblatt.blattart 
    447 function blattart($key) { 
    448         switch ($key) { 
    449                 case 1000: $wert = "Grundbuchblatt"; break; 
    450                 // Ein Grundbuchblatt ist ein Buchungsblatt, das die Buchung im Grundbuch enthÀlt. 
    451                 case 2000: $wert = "Katasterblatt"; break; 
    452                 // Ein Katasterblatt ist ein Buchungsblatt, das die Buchung im Liegenschaftskataster enthÀlt. 
    453                 case 3000: $wert = "Pseudoblatt"; break; 
    454                 // Ein Pseudoblatt ist ein Buchungsblatt, das die Buchung, die bereits vor Eintrag im Grundbuch Rechtskraft erlangt hat, enthÀlt  
    455                 // (z.B. Übernahme von Flurbereinigungsverfahren, Umlegungsverfahren). 
    456                 case 5000: $wert = "Fiktives Blatt"; break; 
    457                 // Das fiktive Blatt enthÀlt die aufgeteilten GrundstÃŒcke und Rechte als Ganzes.  
    458                 // Es bildet um die Miteigentumsanteile eine fachliche Klammer. 
    459                 default: $wert = "** Unbekannter Wert '".$key."'"; break; 
    460         } 
    461         return $wert; 
    462 } 
    463 // Entschluesslung ax_dienststelle.stellenart 
    464 function dienststellenart($key) { 
    465         switch ($key) { 
    466                 case 1000: $wert = "Grundbuchamt"; break; 
    467                 case 1100: $wert = "Katasteramt"; break; 
    468                 case 1200: $wert = "Finanzamt"; break; 
    469                 case 1300: $wert = "Flurbereinigungsbeh&ouml;rde"; break; 
    470                 case 1400: $wert = "Forstamt"; break; 
    471                 case 1500: $wert = "Wasserwirtschaftsamt"; break; 
    472                 case 1600: $wert = "Straßenbauamt"; break; 
    473                 case 1700: $wert = "Gemeindeamt"; break; 
    474                 case 1900: $wert = "Kreis- oder Stadtverwaltung"; break; 
    475                 case 2000: $wert = "Wasser- und Bodenverband"; break; 
    476                 case 2100: $wert = "Umlegungsstelle"; break; 
    477                 case 2200: $wert = "Landesvermessungsverwaltung"; break; 
    478                 case 2300: $wert = "&Ouml;bVI"; break; 
    479                 case 2400: $wert = "Bundeseisenbahnverm&ouml;gen"; break; 
    480                 case 2500: $wert = "Landwirtschaftskammer"; break; 
    481                 default: $wert = "** Unbekannter Wert '".$key."'"; break; 
    482         } 
    483         return $wert; 
    484 } 
     376} // End function eigentuemer 
     377 
    485378?> 
Note: See TracChangeset for help on using the changeset viewer.