Ignore:
Timestamp:
09/10/14 12:08:18 (10 years ago)
Author:
frank.jaeger
Message:

Umstellung von PostNAS 0.7 auf PostNAS 0.8, ohne Tabelle "alkis_beziehungen".

File:
1 edited

Legend:

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

    r315 r330  
    1111        2014-01-22 Eigentuemerart: Mehr Werte und Zugriff auf DB-SchlÃŒssel-Tabelle 
    1212        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-10 Bei Relationen den Timestamp abschneiden 
    1315*/ 
    1416 
     
    6365} 
    6466 
    65 function linkgml($gkz, $gml, $typ)  { 
     67function linkgml($gkz, $gml, $typ, $tabelle)  { 
    6668        // Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php 
    67         $kurzid=substr($gml, 12); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich 
     69        // tabelle = nur angeben fÃŒr Tabellen, die Relationen-Spalten besitzen, sonst leer 
     70        $kurzid=substr($gml, 12, 4); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich 
     71        // PostNAS 0.8: Timestamp abschneiden 
    6872        echo "\n\t\t<a target='_blank' title='ID ".$typ."' class='gmlid noprint' "; 
    69         echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."'>"; 
     73        echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."&amp;tabelle=".$tabelle."'>"; 
    7074        echo "<img src='ico/Beziehung_link.ico' width='16' height='16' alt=''>".$kurzid."</a>"; 
    7175        return 0; 
     
    7377 
    7478function kurz_namnr($lang) { 
    75         // Namensnummer kuerzen. Nicht benoetigte Stufen der Dezimalklassifikation abschneiden 
     79        // Namensnummer kÃŒrzen. Nicht benötigte Stufen der Dezimalklassifikation abschneiden 
    7680        $kurz=str_replace(".00","",$lang); // leere Stufen (nur am Ende) 
    7781        $kurz=str_replace("0000","",$kurz); // ganz leer (am Anfang) 
     
    8993*/ 
    9094        global $gkz, $idanzeige, $showkey; 
     95 
    9196        // F L U R S T U E C K 
    92         $sql="SELECT g.gemarkungsnummer, g.bezeichnung, "; 
    93         $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche "; 
    94         $sql.="FROM ax_flurstueck f "; 
    95         $sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von ";  
     97        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche "; 
     98        $sql.="FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16) ";  
    9699        $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    97         $sql.="WHERE v.beziehung_zu= $1 "; // id buchungsstelle 
    98         $sql.="AND v.beziehungsart='istGebucht' "; 
    99         $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     100        $sql.="WHERE s.gml_id= $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
    100101 
    101102        $v = array($gml_bs); 
     
    116117                if ($rowf["nenner"] != "") { // Bruchnummer 
    117118                        $fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT); 
    118                 } */ 
    119  
     119                } 
     120*/ 
    120121                // ohne fuehrende Nullen? 
    121122                $fskenn=$rowf["zaehler"]; 
     
    136137                                        echo "<a name='bvnr".$lfdnr."'></a>"; // Sprungmarke 
    137138                                        echo "<span class='wichtig'>".$bvnr."</span>";  // BVNR 
    138                                         if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle");} 
     139                                        if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle", "ax_buchungsstelle");} 
    139140                                echo "</td>"; 
    140141 
     
    154155                        echo "\n\t<td>".$flur."</td>"; 
    155156                        echo "\n\t<td><span class='wichtig'>".$fskenn."</span>"; 
    156                                 if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");} 
     157                                if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");} 
    157158                        echo "</td>"; 
    158159                        echo "\n\t<td class='fla'>".$flae."</td>"; 
     
    178179        // Sp.1 = Namennummer, Sp. 2 = Name / Adresse, Sp. 3 = Link 
    179180        // Parameter: 
    180         //      $gmlid = ID des GB-Blattes 
    181         //      $mitadresse = Option (true/false) ob auch die Adresszeile ausgegeben werden soll 
     181        //      $gmlid = ID GB-Blattes 
     182        //      $mitadresse = Option (true/false) ob die Adresszeile ausgegeben werden soll 
    182183        // Return = Anzahl Namensnummern 
    183184 
    184185        // Schleife 1: N a m e n s n u m m e r 
    185         // Beziehung: ax_namensnummer  >istBestandteilVon> ax_buchungsblatt 
     186        // Beziehung: ax_namensnummer >istBestandteilVon> ax_buchungsblatt 
    186187        global $debug, $gkz, $idanzeige, $showkey; 
    187188 
     
    195196        } // Beispiel-Link href='javascript:imFenster(\"alkislage.php?gkz= ... ."\")'>xxx "; 
    196197 
    197         $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, "; 
    198         $sqln.="n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass "; 
    199         $sqln.="FROM ax_namensnummer n JOIN alkis_beziehungen b ON b.beziehung_von=n.gml_id "; 
    200         $sqln.="WHERE b.beziehung_zu= $1 AND b.beziehungsart='istBestandteilVon' ORDER BY laufendenummernachdin1421;"; 
     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 ORDER BY n.laufendenummernachdin1421;"; 
    201200 
    202201        $v = array($gmlid); 
     
    219218                                $namnum=kurz_namnr($rown["lfd"]); 
    220219                                echo $namnum."&nbsp;"; 
    221                                 if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer");} 
     220                                if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer", "ax_namensnummer");} 
    222221                        echo "</p>\n\t</td>"; 
    223222 
     
    247246                // Beziehung: ax_person  <benennt<  ax_namensnummer 
    248247                $sqlp ="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad "; 
    249                 $sqlp.="FROM ax_person p JOIN alkis_beziehungen v ON v.beziehung_zu=p.gml_id "; 
    250                 $sqlp.="WHERE v.beziehung_von= $1 AND v.beziehungsart='benennt';"; 
     248                $sqlp.="FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=substring(p.gml_id,1,16) WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;"; 
     249                // Timestamp an ID abschneiden! 
    251250 
    252251                $v = array($gmlnn); 
     
    260259 
    261260                $i=0; // cnt Person 
    262                 while($rowp = pg_fetch_array($resp)) { 
     261                while($rowp = pg_fetch_array($resp)) {  // ++ Schleife? nn >benennt> Person ist kein Array! 
    263262                        $diePerson=""; 
    264263                        if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";} 
     
    281280                        // Spalte 3 = Link 
    282281                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
    283                                 if ($idanzeige) {linkgml($gkz, $rowp["gml_id"], "Person"); echo "&nbsp";} 
    284                                 if ($showkey) {echo "<span class='key'>(".$eiartkey.")</span> ";} 
     282                                if ($idanzeige) {linkgml($gkz, $rowp["gml_id"], "Person", "ax_person"); echo "&nbsp";} 
     283                                if ($showkey AND $eiartkey != '') { // oft leer 
     284                                                echo "<span class='key'>(".$eiartkey.")</span> "; 
     285                                } 
    285286                                echo "\n\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowp[0]; 
    286287                                if ($idanzeige) {echo "&amp;id=j";} 
     
    293294                                // Schleife 3:  A d r e s s e  (OPTIONAL) 
    294295                                $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland "; 
    295                                 $sqla.="FROM ax_anschrift a JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu "; 
    296                                 $sqla.="WHERE b.beziehung_von= $1 AND b.beziehungsart='hat';"; // ORDER? 
     296                                $sqla.="FROM ax_anschrift a JOIN ax_person p ON substring(a.gml_id,1,16) = ANY(p.hat) WHERE p.gml_id= $1 ;"; // ORDER? 
    297297                                $gmlp=$rowp["gml_id"]; // Person 
    298298                                $v = array($gmlp); 
     
    332332                                        if ($idanzeige) { 
    333333                                                echo "<p class='nwlink noprint'>"; 
    334                                                 linkgml($gkz, $gmla, "Adresse"); 
     334                                                linkgml($gkz, $gmla, "Adresse", "ax_adresse"); 
    335335                                                echo "</p>"; 
    336336                                        } else {  
     
    342342                                pg_free_result($resa); 
    343343                        } // End if 
    344  
    345344                        // 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG" 
     345 
    346346                        $i++; // cnt Person 
    347347                        // als eigene Tab-Zeile? 
     
    353353                        } 
    354354                } // End Loop Person 
    355                 if ($i == 0) { // kommt vor hinter Zeile Erbengemeinschaft, dann kein Fehler 
     355                if ($i == 0) { // kommt vor hinter Zeile Erbengemeinschaft, ist dann kein Fehler 
    356356                        if ($debug > 0) { 
    357357                                echo "\n<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>"; 
    358358                                if ($rechtsg != 9999) { 
    359                                         echo "\n<p class='dbg'>Keine Person zur Namensnummer ".$namnum."</p>"; 
     359                                        echo "\n<p class='dbg'>Fehler: Keine Person zur Namensnummer ".$namnum."</p>"; 
    360360                                } 
    361                                 //if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1=gml(NamNum)= '".$gmlnn."'</p>";} 
     361                                if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1 = gml(NamNum) = '".$gmlnn."'</p>";} 
    362362                        } 
    363363                        echo "</td>\n\t<td>&nbsp;</td>\n<tr>"; 
     
    367367        echo "\n</table>\n"; 
    368368        if ($n == 0) { 
     369                // kommt vor bei "Fiktives Blatt", kein Fehler  
    369370                if ($debug > 0) {echo "<p class='dbg'>keine Namensnummern zum Blatt</p>";} 
     371 
    370372                if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";} 
    371373        } 
Note: See TracChangeset for help on using the changeset viewer.