0 AND $len < 8) {
if (trim($zblatt, "0..9 ") == "") { // Normalfall: nur Zahlen (und Blank))
$zblattn= rtrim(ltrim($zblatt, "0"), " ");
$zblattz="";
} else { // Sonderfall: Zusatz-Buchstabe am Ende
$zblattn=substr($zblatt,0,$len-1);
$zblattz=strtoupper(substr($zblatt,$len-1,1));
if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) {
$zblattn= ltrim($zblattn, "0"); // ohne fuehrende Nullen
} else {
echo "
";
return 9;
}
}
if ($zbvnr == "") {
return 3; // Such BLATT
} elseif (is_ne_zahl($zbvnr)) {
// $zbvnr=ltrim($zbvnr,"0"); // DB-Format ist integer
// Vorsicht, Wert "0" ist moeglich und gueltig
return 4; // Such Grundstueck
} else {
echo "
";
return 9;
}
} else {
echo "
";
return 9;
}
}
}
function suchfeld($suchstring) { // Suchstring Ausgeben UND das Eingabeformular damit belegen
$out="".$suchstring."";
return $out;
}
function zeile_ag ($ag, $anr, $aktuell) { // Zeile A m t s g e r i c h t
global $gkz, $gemeinde, $epsg, $auskpath;
if ($ag == "") {
$agd=$anr; // Ersatz: Nummer statt Name. Besser: Name immer füllen
} else {
$agd=htmlentities($ag, ENT_QUOTES, "UTF-8");
}
if ($aktuell) {$cls=" aktuell";}
echo "\n
";
return;
}
function zeile_gbbez ($gnam, $zgbbez, $aktuell) { // Zeile Grundbuch - B e z i r k
// Parameter: aktuell = Bool für farbliche Markierung der Zeile als aktuell angeklicktes Obj.
global $gkz, $gemeinde, $epsg, $person;
$gnamd=htmlentities($gnam, ENT_QUOTES, "UTF-8");
if ($aktuell) {$cls=" aktuell";}
echo "\n";
echo "\n\t\t
";
echo "
";
echo "Bezirk ".$gnamd." (".$zgbbez.")";
} else { // Grundbuch-Suche
echo "'>";
echo "Bezirk ".$gnamd." (".suchfeld($zgbbez).")";
}
echo "\n
";
return;
}
function zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, $dienend, $person, $aktuell) {
global $gkz, $gemeinde, $epsg, $auskpath;
// Zeile Grundbuch - B l a t t
$blattd=ltrim($blatt, "0"); // Display-Version ohne führende Nullen
if ( $dienend) {$dientxt="dienendes ";}
$blattlnk=urlencode($blatt); // trailing Blank
if ($beznam != "") {$nam = $beznam." ";}
if ($aktuell) {$cls=" aktuell";}
echo "\n";
return;
}
function zeile_buchung($buchunggml, $bvnr, $blattkennz, $dienend, $aktuell) {
// Zeile B u c h u n g s s t e l l e - Grundstück ausgeben
global $gkz, $gemeinde, $epsg, $auskpath;
if ($bvnr == 0) {
$bvnra = "-";
} else {
$bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen
}
if ($diened) {
$ti="dienendes ";
$re="Recht an ";
} else {
$ti="";
$re="";
}
if ($aktuell) {$cls=" aktuell";}
echo "\n";
echo "\n\t
".$re;
if ($blattkennz == "") { // ohne Link
echo "Buchung ".$bvnra;
} else {
$gbkennlnk=urlencode($blattkennz."-".$bvnr); // Trailing Blanks!
echo "
Buchung ".$bvnra."";
}
echo "\n
";
return;
}
function zeile_gemeinde ($gmdnr, $gmdname, $aktuell) {
// Eine Zeile zu Gemeinde ausgeben, Schlüssel und Name wird übergeben
global $gkz, $gemeinde, $epsg;
$stadt=htmlentities($gmdname, ENT_QUOTES, "UTF-8");
$bez=urlencode($gmdname);
if ($aktuell) {$cls=" aktuell";}
echo "\n";
return;
}
function zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur, $aktuell) {
// Zeile mit Icon (Link zum Buch-Nachweis) und Text (Link zum Positionieren)
global $gkz, $gemeinde, $epsg, $auskpath, $scalefs;
if ($aktuell) {$cls=" aktuell";}
echo "\n";
return;
}
function zeile_person ($persongml, $nachname, $vorname) {
global $gkz, $gemeinde, $epsg, $auskpath;
// Zeile P e r s o n (oder Firma)
$nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8");
$namlnk=urlencode($nachname);
$vnam=htmlentities($vorname, ENT_QUOTES, "UTF-8");
// Link zur Auskunft Person ++ Icon differenzieren nach Eigentuemerart?
echo "";
return;
}
function GB_Buchung_FS ($linelimit, $blattgbkenn) {
// Zu einem Grundbuch-Blatt (identifiziert über seine gml_id) suchen der
// Buchungen (Gruppenwechsel) und Flurstücke (Links)
global $gemeinde, $blattgml, $epsg, $gfilter, $debug;
// SQL-Bausteine vorbereiten
// SQL vorne gleich
$sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ";
if($epsg == "25832") { // Transform nicht notwendig
$sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, ";
$sql1.="st_y(st_centroid(f.wkb_geometry)) AS y, ";
} else {
$sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
$sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";
}
$sql1.="g.gemarkung, g.gemarkungsname ";
$sql1.="FROM alkis_beziehungen vbg ";
$sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id ";
// Zwischen-JOIN verschieden
$sqlz1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu ";
$sqlz2 ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id ";
$sqlz2.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id ";
$sqlz2.="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu ";
// SQL hinten gleich
$sql2 ="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id ";
$sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung ";
$sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' ";
switch ($gfilter) {
case 1: // Einzelwert
$sql2.="AND g.gemeinde=".$gemeinde." "; break;
case 2: // Liste
$sql2.="AND g.gemeinde in (".$gemeinde.") "; break;
}
$sql2.="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;";
// Abfrage: d i r e k t e B u c h u n g e n
// Blatt Fehler bei Buchung und Flurstück.";
#if ($debug >= 3) {echo "\n".$sql1.$sqlz1.$sql2."
";}
return;
}
$zfs1=0;
$gwbv="";
while($row = pg_fetch_array($res)) {
$bvnr=$row["lfd"];
$bsgml=$row["bsgml"]; // Buchungsstelle gml_id
if ($gwbv != $bvnr) { // Gruppierung Buchungs-Stelle (BVNR)
$gwbv = $bvnr;
zeile_buchung($bsgml, $bvnr, $blattgbkenn, false, false);
}
$fs_gml=$row["gml_id"];
$gmkg=$row["gemarkungsname"];
$flur=$row["flurnummer"];
$fskenn=$row["zaehler"];
if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr
$x=$row["x"];
$y=$row["y"];
zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur, false);
$zfs1++;
}
// "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet
if($zfs1 > 1) { // ab 2
echo "\n".$zfs1." Flurstücke zum Grundbuch";
if($zfs1 >= $linelimit) {
echo "... und weitere"; //++ Blättern einführen?
}
echo "
";
}
if($zfs1 > 0) {echo "
";} // Trennen
// Abfrage: R e c h t e a n / d i e n e n d e B u c h u n g e n
$v=array($blattgml, $linelimit);
$res=pg_prepare("", $sql1.$sqlz2.$sql2);
$res=pg_execute("", $v);
if (!$res) {
echo "\nFehler bei Recht an Buchung.
";
#if ($debug >= 3) {echo "\n".$sql1.$sqlz2.$sql2."
";}
return;
}
$zfs2=0;
$gwbv="";
while($row = pg_fetch_array($res)) {
$bvnr=$row["lfd"];
$bsgml=$row["bsgml"]; // Buchungsstelle gml_id
if ($gwbv != $bvnr) { // Gruppierung Buchung (BVNR) - dienend
$gwbv = $bvnr;
zeile_buchung($bsgml, $bvnr, $blattgbkenn, true, false);
}
$fs_gml=$row["gml_id"];
$gmkg=$row["gemarkungsname"];
$flur=$row["flurnummer"];
$fskenn=$row["zaehler"];
if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer
zeile_flurstueck ($fs_gml, $fskenn, $row["x"], $row["y"], $gmkg, $flur, false);
$zfs2++;
}
// Foot
if($zfs1 + $zfs2 == 0) {
echo "\nKein Flurstück im berechtigten Bereich.
";
} elseif($zfs2 > 1) { // keine Meldung "nichts gefunden - Rechte an" wenn Treffer in Teil 1
echo "\n".$zfs2." Rechte an Flurst.";
if($zfs2 >= $linelimit) {
echo "... und weitere"; // Blättern einführen?
}
echo "
";
}
return;
}
?>