Changeset 411


Ignore:
Timestamp:
11/05/18 11:14:30 (5 years ago)
Author:
frank.jaeger
Message:

Suche nach Grundstück findet GB-Blatt mit Zusatzbuchstaben auch wenn man den Buchstaben nicht mit angibt.

Location:
trunk/mapbender/http/nav
Files:
2 edited

Legend:

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

    r405 r411  
    88        2018-02-15 Überarbeitung des Code 
    99        2018-05-02 Link "Buchung" zum neuen GrundstÃŒcks-Nachweis 
     10        2018-11-02 Suche GB-Blatt mit Wildcard wenn Zusatzbuchstabe nicht angegeben. 
    1011*/ 
    1112 
     
    1617 
    1718function ZerlegungGBKennz($gbkennz) { 
    18         // Das eingegebene Grundbuch-Kennzeichen auseinander nehmen (gggg-999999z-BVNR) 
     19        // Das EINGEGEBENE Grundbuch-Kennzeichen auseinander nehmen (gggg-999999z-BVNR) 
    1920        // Return: 9=Fehler, 0=Listen alle Bezirke 1=Such Bezirk-Name 
    2021        //  2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR 
     
    4546        //'0300001' gefÃŒllt 7, bei Blattart 5000 "fiktives Blatt" 
    4647                $len=strlen($zblatt); 
    47                 if ($len > 0 AND $len < 8) {             
    48                         if (trim($zblatt, "0..9 ") == "") { // Normalfall: nur Zahlen (und Blank)) 
     48                if ($len > 0 AND $len < 8) { // Eingabe LÀnge 1 bis 7 
     49                //      if (trim($zblatt, "0..9 ") == "") {  
     50                        if (preg_match('#^[0-9]{1,6}[ ]{0,1}$#', $zblatt)) { // Normalfall: nur Zahlen (und Blank am Ende)) 
    4951                                $zblattn= rtrim(ltrim($zblatt, "0"), " "); 
    5052                                $zblattz=""; 
    5153                        } else { // Sonderfall: Zusatz-Buchstabe am Ende 
    5254                                $zblattn=substr($zblatt,0,$len-1); 
    53                                 $zblattz=strtoupper(substr($zblatt,$len-1,1));  
    54                                 if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) { 
     55                                $zblattz=strtoupper(substr($zblatt,$len-1,1)); 
     56                        //      if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) { 
     57                                if (preg_match('#^[0-9]{1,6}$#', $zblattn) and preg_match('#^[A-Z]{1}$#', $zblattz)) {  
    5558                                        $zblattn= ltrim($zblattn, "0"); // ohne fuehrende Nullen 
    5659                                } else { 
     
    127130        // Zeile Grundbuch - B l a t t 
    128131        // Aufruf aus Teil "Grundbuch" und Teil "EigentÃŒmer" 
    129         // Parameter $beznam = Name des GB-Bezirks. Sollte nur gefÃŒllt sein, bei dienendem Blatt ("Recht an"). 
    130         //              sonst steht der Bezirk als Header-Zeile darÃŒber. 
     132        // Parameter $beznam = Name des GB-Bezirks. Sollte nur gefÃŒllt sein, bei dienendem Blatt ("Recht an"). Wird vor die Zeile gesetzt. 
     133        // Normalerweise steht der Bezirk als Header-Zeile darÃŒber. 
    131134        global $gkz, $gemeinde, $epsg, $auskpath; 
    132135 
     
    152155        ."&amp;blattgml=".$blattgml."&amp;gbkennz=".$bezirk."-".$blattlnk; 
    153156 
    154         echo "&amp;gbbeznam=".urlencode($beznam); 
    155  
     157        if ($beznam != "") {echo "&amp;gbbeznam=".urlencode($beznam);} 
    156158        if ($person != "") {echo "&amp;person=".$person;} // nur fÃŒr EigentÃŒmer-Suche 
    157159        echo "'>Blatt&nbsp;".$blattd."</a>\n</div>"; 
  • trunk/mapbender/http/nav/alkisnav_grd.php

    r410 r411  
    77        2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 
    88        2018-02-15 Strikte Input-Validation der Parameter 
    9         2018-11-02 Suche GB-Blatt in "function gml_blatt": Jetzt einheitliches DB-Format. Zusatzbuchstabe mit Wildcard wenn nicht angegeben. 
     9        2018-11-02 Einheitliches DB-Format der GB-Blatt-Nummer vorausgesetzt. Suche GB-Blatt in Function "gml_blatt" und "gml_buchungsstelle" mit Wildcard wenn Zusatzbuchstabe nicht angegeben. 
    1010*/ 
    1111 
     
    356356 
    357357        // Blatt ->  B u c h u n g s s t e l l e 
    358         $sql ="SELECT s.gml_id FROM ax_buchungsstelle s " 
    359         ."JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id " 
     358        $sql ="SELECT s.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id " 
    360359        ."WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 
    361360 
    362         if ($zblattz == "") { // Ohne Buchstabenerweiterung 
    363                 //Formate '123','000123 ','0000123' 
    364                 $sql.="IN ('".$zblattn."','".str_pad($zblattn, 6, "0", STR_PAD_LEFT)." ','".str_pad($zblattn, 7, "0", STR_PAD_LEFT)."')"; 
     361        if ($zblattz == "") { // Eingabe ohne Buchstabenerweiterung 
     362                $sql.="LIKE '".str_pad($zblattn, 6, "0", STR_PAD_LEFT)."_'"; 
    365363        } else { // Mit Buchstabenerweiterung: '000123A' 
    366364                $sql.="='".str_pad($zblattn, 6, "0", STR_PAD_LEFT).$zblattz."'"; 
     
    368366        $sql.=" AND s.laufendenummer= $2 ;"; 
    369367 
    370         $v=array($zgbbez, $zbvnr); 
     368        $v=array($zgbbez, str_pad($zbvnr, 4, "0", STR_PAD_LEFT)); 
    371369        $res=pg_prepare("", $sql); 
    372370        $res=pg_execute("", $v); 
     
    378376        while($row = pg_fetch_array($res)) {     
    379377                $bs_gml=$row["gml_id"]; 
     378                $gef_blatt=$row["blatt"];       // gefunden ggf. mit Buchstabe (Wildcard) 
     379                if ($zblatt != $gef_blatt) { 
     380                        echo "\n<p>Blatt mit Buchstabenerweiterung gefunden.</p>"; 
     381                        $zblatt=$gef_blatt; 
     382                        $zblattz=substr($zblatt,$len-1,1); 
     383                } 
    380384                $zbs++; 
    381385        } 
     
    403407                        echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>"; 
    404408                } // ++ suchen! 
    405                 zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz, false, true); 
     409        //      zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz, false, true); 
     410                zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblatt, false, true); // $zblatt wird aktualisiert, wenn Buchstabe gefunden wurde 
    406411        } 
    407412 
Note: See TracChangeset for help on using the changeset viewer.