zu> ax_buchungsstelle (des gleichen Blattes)
// ax_buchungsstelle >an> ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an)
// - "zu" kommt in der Praxis (NRW) nicht vor, wird hier nicht berücksichtigt
if ($ebene > 5) {echo "\n
Ungewöhnlich tiefe Schachtelung ".$ebene." der Buchungs-Stellen.
";}
$sql ="SELECT sd.gml_id, sd.buchungsart, sd.zaehler, sd.nenner, sd.laufendenummer AS lfd, sd.beschreibungdesumfangsderbuchung AS udb, "
."sd.nummerimaufteilungsplan AS nrap, sd.beschreibungdessondereigentums AS sond, "
."wb.beschreibung AS bart, wb.dokumentation, "
."b.gml_id as gbgml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, b.blattart, "
."bb.beschreibung AS blattartv, z.bezeichnung AS beznam "
."FROM ax_buchungsstelle sh "
."JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) "
."JOIN ax_buchungsblatt b ON b.gml_id=sd.istbestandteilvon "
."LEFT JOIN ax_buchungsart_buchungsstelle wb ON sd.buchungsart = wb.wert "
."LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk ".UnqKatAmt("b","z")
."LEFT JOIN ax_blattart_buchungsblatt bb ON b.blattart = bb.wert "
."WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL "
."ORDER BY sd.laufendenummer;";
$v=array($gml_h); // gml_id "herrschende" B-Stelle
$resan=pg_prepare($con, "", $sql);
$resan=pg_execute($con, "", $v);
if (!$resan) {
echo "\n
Verbunden mit dem Sondereigentum an: ".$row["sond"]."
\n
";
}
// Rekursiver Aufruf der gleichen Function, weitere Ebene dienend?
$tiefer = bnw_bsdaten($gml_bsan, ($ebene + 1));
If ($tiefer == 0) { // Wenn nicht, dann kann es Flurstücke dazu geben
$fscnt= bnw_fsdaten($gml_bsan, false); // Flurstücksdaten
}
}
pg_free_result($resan);
return $zeianz;
}
function bnw_fsdaten($gml_bs, $mit_buchung_link) {
/* Bestandsnachweis - Flurstücksdaten
Die Tabellenzeilen mit den Flurstücksdaten zu EINER Buchungsstelle im Bestandsnachweis ausgeben.
Die Funktion wird entweder aufgerufen für die Buchungen direkt auf dem GB (Normalfall)
oder bei Erbbaurecht für die mit "an" verknüpften Buchungsstellen der untersten Ebene (dienende Buchung).
Der Tabellenkopf wird im aufrufenden Programm ausgegeben.
Return: Anzahl der ausgegebenen Flurstücke */
global $dbg, $gkz, $showkey, $filtkreis, $filtgem, $trclass, $katAmtMix, $lfdnr, $altlfdnr, $bartkey, $bart, $bartstory, $anteil, $con;
$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche "
."FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g")
."WHERE f.endet IS NULL AND g.endet IS NULL AND f.istgebucht = $1 ";
if ($filtgem === '') { // ungefiltert
$v=array($gml_bs);
} else {
$sql.="AND f.gemeindezugehoerigkeit_kreis = $2 AND f.gemeindezugehoerigkeit_gemeinde = $3 "; // Zuständiges Gebiet
$v=array($gml_bs, $filtkreis, $filtgem);
}
$sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
$resf = pg_prepare($con, "", $sql);
$resf = pg_execute($con, "", $v);
if (!$resf) {echo "\n
"; // eine Zeile je Flurstueck
// Sp. 1-3 der Tab. Daten aus Buchungsstelle, nicht aus FS
if($lfdnr === $altlfdnr) { // gleiches Grundstück, leer lassen
echo "\n\t
";
// Buchung BVNR
If ($mit_buchung_link == true) { // nur bei Grundstück
echo "\n\t\t\tBuchung ";
$mit_buchung_link = false; // nur in erster Zeile
}
// Flurstk.
echo "\n\t\t\tFlurstück "
.""
."\n\t\t
\n\t
\n
";
}
pg_free_result($resf);
return $zeianz;
}
function bnw_bszeile_h() {
/* Bestandsnachweis - Buchungs-Stellen-Zeile ausgeben - herrschend.
Die GB-Daten hierzu stehen bereits im Kopf und bleiben in der Tab. leer */
global $dbg, $gkz, $trclass, $lfdnr, $bartkey, $bart, $bartstory, $anteil;
$bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
echo "\n
"
."\n\t
".$bvnr."
" // Sprungmarke=BVNR auf dem GB-Blatt
."\n\t
".DsKy($bartkey, 'Buchungsart-*').$bart."
"
."\n\t
".$anteil."
"
."\n\t
\n
";
}
function bnw_bszeile_d($bezkey, $beznam, $blatt, $blattartkey, $blattart, $lfdnran, $gbgml, $gml_bsan, $ebene, $und) {
/* Bestandsnachweis - Buchungsstellen-Zeile ausgeben - dienend
Eine Folge-Zeile für eine dienende Buchung ausgeben. */
global $gkz, $trclass, $bartkey, $bart, $bartstory, $anteil;
$bvnr=str_pad($lfdnran, 4, "0", STR_PAD_LEFT);
$filler=str_repeat(" ", $ebene - 2); // 3 und 4 Einrücken
if ($und){$filler.="und ";}; // Unterscheidung Hierarchie (Ebene wechselt) von Liste (gleiche Ebene)
echo "\n
";
// Link Bestand Blatt
echo "\n\t\t\t".DsKy($blattartkey, 'Blatt-Art-*')."".$blattart
." ";
if ($bartkey < 2000){
// Link Buchung BVNR nur für Grundstück usw.
echo " \n\t\t\tBuchung ";
}
echo "\n\t\t
"
."\n\t
\n
";
}
// Start
ini_set("session.cookie_httponly", 1);
session_start();
$showkey="n"; $nodebug=""; // Var. initalisieren
$cntget = extract($_GET); // Parameter in Variable umwandeln
// strikte Validierung aller Parameter
if (isset($gmlid)) {
if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");}
} else {
die("Fehlender Parameter");
}
if (isset($gkz)) {
if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");}
} else {
die("Fehlender Parameter");
}
if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");}
if ($showkey === "j") {$showkey=true;} else {$showkey=false;}
if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");}
include "alkis_conf_location.php";
include "alkisfkt.php";
?>
ALKIS Bestandsnachweis
Abbruch'); }
$dbg=$debug;
if ($nodebug === "j") {$dbg=0;}
$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbestnw.php'");
if (!$con) echo "\n
Fehler beim Verbinden der DB
";
// G R U N D B U C H
$sql="SELECT g.gml_id, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung AS blatt, g.blattart, wb.beschreibung AS blattartv, wb.dokumentation AS blattartd,
b.gml_id, b.bezirk, b.bezeichnung AS beznam, d.gml_id, d.land, d.bezeichnung, d.stelle, d.stellenart, wd.beschreibung AS stellev
FROM ax_buchungsblatt g
LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk ".UnqKatAmt("g","b")
."LEFT JOIN ax_dienststelle d ON b.land=d.land AND b.gehoertzu_stelle=d.stelle ".UnqKatAmt("b","d")
."LEFT JOIN ax_blattart_buchungsblatt wb ON g.blattart = wb.wert
LEFT JOIN ax_behoerde wd ON d.stellenart = wd.wert
WHERE g.gml_id= $1 AND g.endet IS NULL AND b.endet IS NULL AND d.endet IS NULL;";
// .. AND d.stellenart=1000
$v = array($gmlid);
$res = pg_prepare($con, "", $sql);
$res = pg_execute($con, "", $v);
if (!$res) {
echo "\n