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_grd.php

    r330 r333  
    33        2013-04-16      "import_request_variables" entfÀllt in PHP 5.4 
    44        2013-04-26      Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" 
    5                                         Code aus _eig nach_fkt ausgelegert, hier mit nutzen.  
    6                                         Dazu Var-Namen harmonisieren: $gblatt wird $blattgml 
    7                                         ZurÃŒck-Link, Titel der Transaktion anzeigen. 
     5                                Code aus _eig nach_fkt ausgelegert, hier mit nutzen.  
     6                                Dazu Var-Namen harmonisieren: $gblatt wird $blattgml 
     7                                ZurÃŒck-Link, Titel der Transaktion anzeigen. 
    88        2013-04-29      Test mit IE 
    99        2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen 
     
    1111        2013-12-12      Limit in EinBlatt von 200 weit hoch gesetzt (bis BlÀttern möglich wird) 
    1212        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     13        2014-09-10  Bei Relationen den Timestamp abschneiden 
    1314*/ 
    1415$cntget = extract($_GET); 
     
    5455        $linelimit=40; 
    5556 
    56         $sql ="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle "; 
    57         $sql.="WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL "; // AG aus Liste 
    58         $sql.="ORDER BY bezeichnung LIMIT $1 ;"; 
     57        $sql ="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle  
     58        WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL  
     59        ORDER BY bezeichnung LIMIT $1 ;"; 
    5960        $res = pg_prepare("", $sql); 
    6061        $res = pg_execute("", array($linelimit)); 
     
    9394 
    9495        // Body 
    95         $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    96         $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 
    97         $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL "; 
    98         // Diese Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten: 
    99         $sql.="AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land AND b.bezirk=g.bezirk AND b.endet IS NULL LIMIT 1) IS NULL "; 
    100         $sql.="ORDER BY g.bezeichnung LIMIT $2 ;"; 
     96        // Die Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten 
     97        $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g  
     98        JOIN ax_dienststelle a ON g.stelle=a.stelle  
     99        WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL  
     100        AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land AND b.bezirk=g.bezirk AND b.endet IS NULL LIMIT 1) IS NULL  
     101        ORDER BY g.bezeichnung LIMIT $2 ;"; 
     102 
    101103        $v = array($agkey, $linelimit); 
    102104        $res = pg_prepare("", $sql); 
     
    129131        // Parameter = SchlÃŒssel des Bezirks 
    130132        #global $debug; 
    131         $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    132         $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 
     133        $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g  
     134        JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 
    133135        $v=array($gbbez); 
    134136        $res=pg_prepare("", $sql); 
     
    159161        global $gkz, $gemeinde, $debug, $gbkennz; 
    160162        $linelimit=80; 
    161         $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    162         $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 
    163         $sql.="WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL "; // "AND a.stellenart=1000 " Amtsgericht 
    164         $sql.="ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; 
     163 
     164        $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g  
     165        JOIN ax_dienststelle a ON g.stelle=a.stelle  
     166        WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL  
     167        ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;";// "AND a.stellenart=1000 " Amtsgericht 
    165168        if ( $gbkennz == "") { 
    166169                $match = "%"; 
     
    220223        } 
    221224        // Body 
    222         $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b "; 
    223         $sql.="WHERE b.bezirk= $1 AND b.endet IS NULL ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 
     225        $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b  
     226        WHERE b.bezirk= $1 AND b.endet IS NULL ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 
    224227        $v=array($zgbbez, $linelimit); 
    225228        $res=pg_prepare("", $sql); 
     
    254257        // Kennzeichen "Bezirk + Blatt" eingegeben. Dazu die gml_id des Blattes ermitteln. 
    255258        global $debug, $zgbbez, $zblatt, $zblattn, $zblattz; 
    256         $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b ";  
    257         $sql.="WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 
     259        $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b  
     260        WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 
    258261 
    259262        if ($zblattz == "") { // Ohne Buchstabenerweiterung: Formate '123','000123 ','0000123' 
     
    303306 
    304307        // Blatt ->  B u c h u n g s s t e l l e 
    305         $sql ="SELECT s.gml_id FROM ax_buchungsstelle s "; 
    306         $sql.="JOIN ax_buchungsblatt b ON s.istbestandteilvon = b.gml_id ";  
    307         $sql.="WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 
     308        $sql ="SELECT s.gml_id FROM ax_buchungsstelle s  
     309        JOIN ax_buchungsblatt b ON s.istbestandteilvon=substring(b.gml_id,1,16) 
     310        WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 
    308311 
    309312        if ($zblattz == "") { // Ohne Buchstabenerweiterung 
     
    421424        $sql.="gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez "; // AG und Bezirk dazu 
    422425        $sql.="FROM ax_buchungsstelle sh "; // herrschend 
    423         $sql.="JOIN ax_buchungsstelle sd ON sd.gml_id = ANY(sh.an) "; // dienend 
    424         $sql.="JOIN ax_flurstueck f ON f.istgebucht = sd.gml_ID "; 
     426        $sql.="JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an) "; // dienend 
     427        $sql.="JOIN ax_flurstueck f ON f.istgebucht=substring(sd.gml_id,1,16) "; 
    425428        $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 
    426         $sql.="JOIN ax_buchungsblatt bd ON sd.istbestandteilvon = bd.gml_id ";  // Blatt dienend 
     429        $sql.="JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=substring(bd.gml_id,1,16) ";    // Blatt dienend 
    427430        $sql.="JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk "; // GB-Bez. dienend 
    428431        $sql.="WHERE sh.gml_id = $1 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND bd.endet IS NULL "; 
Note: See TracChangeset for help on using the changeset viewer.