Ignore:
Timestamp:
09/15/14 15:11:32 (10 years ago)
Author:
frank.jaeger
Message:

Anpassung der Programme und Views an verschieden lange gm_id und Datenbanken mit historischen Objekten.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mapbender/http/nav/alkisnav_eig.php

    r330 r333  
    1313                                Title auch auf Icon, IE zeigt sonst alt= als Title dar. 
    1414        2014-09-09  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     15        2014-09-15  Bei Relationen den Timestamp abschneiden 
    1516*/ 
    1617$cntget = extract($_GET); 
     
    6263        global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug 
    6364 
    64         $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; 
    65         $sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer "; 
    66         $sql.="FROM ax_person p LEFT JOIN ax_anschrift a ON a.gml_id = ANY(p.hat) "; 
    67         $sql.="WHERE p.gml_id= $1 AND p.endet IS NULL AND a.endet IS NULL LIMIT 1;";     
     65        $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil,  
     66        a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer  
     67        FROM ax_person p LEFT JOIN ax_anschrift a ON substring(a.gml_id,1,16)=ANY(p.hat)  
     68        WHERE p.gml_id= $1 AND p.endet IS NULL AND a.endet IS NULL LIMIT 1;";    
    6869        // Es wird nur eine Zeile ausgewertet 
    6970 
     
    128129        $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; 
    129130        if ($gfilter > 0) { 
    130                 $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; 
     131        //      $sql.="JOIN gemeinde_person g ON substring(p.gml_id,1,16) = substring(g.person,1,16) WHERE "; 
     132                $sql.="JOIN gemeinde_person g ON p.gml_id=g.person WHERE "; 
    131133                switch ($gfilter) { 
    132134                        case 1: // Einzel 
     
    192194        // Body 
    193195        // Suche nach GrundbÃŒchern der Person 
    194         $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam "; 
    195         $sql.="FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon = gb.gml_id "; 
    196         $sql.="JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk = b.bezirk "; 
    197         $sql.="WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL "; 
     196        $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam  
     197        FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon=substring(gb.gml_id,1,16)  
     198        JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk  
     199        WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL;"; 
    198200 
    199201        // Parameter $gbkennz, z.B. nach Klick auf Zeile "Bezirk" 
     
    218220                echo "\n<p class='ein'>Teil ".$bltseite; 
    219221        } 
    220         $v=array($person, $linelimit); 
     222        $v=array(substr($person,0,16), $linelimit); // nur 16 Stellen in Relation "benennt" 
    221223        $res=pg_prepare("", $sql); 
    222224        $res=pg_execute("", $v); 
     
    239241                $cnt++; 
    240242        } 
    241  
     243/* 
     244        if ($cnt == 0) { // Nur Entwicklg. 
     245                if ($debug > 1) { 
     246                        echo "\n<p class='err'>keine Buchung</p>"; 
     247                } 
     248                if ($debug > 2) { 
     249                        echo "<p class='dbg'>SQL = '".$sql."',<br>$1 = '".substr($person,0,16)."'<p>"; 
     250                } 
     251        } 
     252*/ 
    242253        // Foot 
    243254        if($cnt == 0) {  
     
    328339 
    329340        // Baustein 1: SQL-Anfang fuer beide Varianten 
    330         $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam, "; 
    331         $sql1.="s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemarkung, ot.gemarkungsname, "; 
     341        $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam,  
     342        s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemarkung, ot.gemarkungsname, "; 
    332343        if($epsg == "25832") { // Transform nicht notwendig 
    333344                $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; 
     
    339350 
    340351        // NamenNummer >istbestandteilvon> buchungsblatt <istbestandteilvon< buchungsstelle-1 
    341         $sql1.="FROM ax_namensnummer nn "; 
    342         $sql1.="JOIN ax_buchungsblatt gb ON gb.gml_id = nn.istbestandteilvon "; 
    343         $sql1.="JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; 
    344         $sql1.="JOIN ax_buchungsstelle s1 ON gb.gml_id = s1.istbestandteilvon "; 
     352        $sql1.="FROM ax_namensnummer nn  
     353        JOIN ax_buchungsblatt gb ON substring(gb.gml_id,1,16)=nn.istbestandteilvon  
     354        JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk 
     355        JOIN ax_buchungsstelle s1 ON substring(gb.gml_id,1,16)=s1.istbestandteilvon "; 
    345356 
    346357        // Baustein A: Auswahl 1 oder 2 
    347358        // buchungsstelle-1 <istGebucht< FS 
    348         $sqla1 ="JOIN ax_flurstueck f ON s1.gml_id = f.istgebucht "; 
     359        $sqla1 ="JOIN ax_flurstueck f ON substring(s1.gml_id,1,16)=f.istgebucht "; 
    349360 
    350361        // buchungsStelle1 (herr.) >an> buchungsStelle2 (dien.) <istGebucht< FS 
    351         $sqla2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id = ANY(s1.an) "; 
    352         $sqla2.="JOIN ax_flurstueck f ON s2.gml_id = f.istgebucht "; 
     362        $sqla2 ="JOIN ax_buchungsstelle s2 ON substring(s2.gml_id,1,16)=ANY(s1.an) "; 
     363        $sqla2.="JOIN ax_flurstueck f ON substring(s2.gml_id,1,16)=f.istgebucht "; 
    353364 
    354365        // Baustein 2: SQL-Ende fuer beide Varianten 
     
    360371        if ($kennztyp > 1) { // 2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR 
    361372                #if ($debug > 0) {echo "<p class='dbg'>Filter Bezirk '".$zgbbez."'<p>";} 
    362                 $sql2.="AND b.bezirk = ".$zgbbez." "; 
     373                $sql2.="AND b.bezirk = '".$zgbbez."' "; 
    363374                $bezirkaktuell = true; 
    364375        } else { 
     
    402413                // Blatt <istBestandteilVon<  Buchungsstelle <istGebucht< Flurstck. 
    403414                $sql=$sql1.$sqla1.$sql2.$bltwhere.$sql3; // Direkte Buchungen 
    404                 $v=array($person, $linelimit); 
     415 
     416                $v=array(substr($person,0,16), $linelimit); // Rel. "benennt" nur 16 Zeichen 
    405417                $res=pg_prepare("", $sql); 
    406418                $res=pg_execute("", $v); 
    407419                if (!$res) { 
    408420                        echo "\n<p class='err'>Fehler bei Buchung und Flurst&uuml;ck.</p>"; 
    409                         if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<p>";} 
     421                        if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."', $1 = '".substr($person,0,16)."'<p>";} 
    410422                        return; 
    411423                } 
     
    473485        } 
    474486 
     487/*      if ($zfs1 == 0) { // Nur Entw. - Start 
     488                if ($debug > 1) { 
     489                        echo "\n<p class='dbg'>Keine Buchung</p>"; 
     490                } 
     491                if ($debug > 2) { 
     492                        echo "<p class='dbg'>SQL = '".$sql."'<p>"; 
     493                } 
     494        } // Nur Entw. - Ende */ 
     495 
    475496        // FÀlle mit "Rechte an" 
    476497        if ($bltrecht != "ohne") { // "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung  
     
    478499                // buchungsStelle2 <an< buchungsStelle1 
    479500                $sql=$sql1.$sqla2.$sql2.$bltwhere."AND s2.endet IS NULL ".$sql3; // Rechte an 
    480                 $v=array($person, $linelimit); 
     501                $v=array(substr($person,0,16), $linelimit); 
    481502                $res=pg_prepare("", $sql); 
    482503                $res=pg_execute("", $v); 
Note: See TracChangeset for help on using the changeset viewer.