\n\t"; // Kennz. im Rahmen
if ($blattkey == 1000) {
echo "\n\t\t";
} else {
echo "\n\t\t"; // dotted
}
echo "\n\t\t"
."\n\t\t\t"; // .d nicht gefüllt
if ($showkey) {echo "".$row["stellenart"]." ";}
echo $row["stellev"]." | ";
echo "\n\t\t\tBezirk | "
."\n\t\t\t";
if ($showkey) {echo "".$blattkey." ";}
echo $blattart." | "
."\n\t\t \n\t\t"
."\n\t\t\t";
if ($showkey) {echo "".$row["stelle"]." ";}
echo htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8")." | "
."\n\t\t\t";
if ($showkey) {echo "".$row["bezirk"]." ";}
echo htmlentities($row["beznam"], ENT_QUOTES, "UTF-8")." | "
."\n\t\t\t".$row["nr"]." | "
."\n\t\t "
."\n\t\t "
."\n\t\n\t "
."\n\t | \n\n ";
}
if ($blattkey == 5000) { // fikt. Blatt
echo "\nKeine Angaben zum Eigentum bei fiktivem Blatt. ";
} else {
// E I G E N T U E M E R
$n = eigentuemer($gmlid, true, ""); // MIT Adressen.
if ($n == 0) { // keine NamensNr, kein Eigentuemer
echo "\nKeine Namensnummer gefunden. "
."\nBezirk: ".$row["bezirk"].", Blatt: ".$row["nr"].", Blattart ".$blattkey." (".$blattart.") ";
}
}
// Vorab pruefen, ob der Fall "Rechte an .." vorliegt.
// ToDo: +++ Es gibt auch den Fall, dass auf der nächsten Stufe "nur Rechte" angezeigt werden, noch keine Flurstücke
// ++ Also 3 Möglichkeiten:
// - Nur Rechte an (+++ FEHLT NOCH ++)
// - Rechte und Flurstücke
// - Flurstücke
// +++ Herrschend/Dienend per "title" auf den Überschriften ("Rechte" / "Berechtigte Grundbücher") erläutern
// GB-Blatt an/zu> sd=dienend
$sql="SELECT count(sd.laufendenummer) AS anzahl "
."FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (sd.gml_id=ANY(sh.an) OR sd.gml_id=ANY(sh.zu)) "
."WHERE sh.istbestandteilvon= $1 AND sd.endet IS NULL AND sh.endet IS NULL;";
$v=array($gmlid); // GB-Blatt
$res=pg_prepare("", $sql);
$res=pg_execute("", $v);
if (!$res) echo "\nFehler bei Suche nach Buchungen. ";
$row=pg_fetch_array($res);
$anz=$row["anzahl"];
echo "\n \n\n";
if ($anz > 0) { // auch "Rechte an"
echo " Rechte und Flurstücke\n";
// zusaetzliche Kopfzeile "Rechte"
echo "\n"
."\n\t | "
."\n\therrschende Buchungsart | "
."\n\tAnteil | "
."\n\tBezirk | "
."\n\tBlatt | "
."\n\tBVNR | "
."\n\tBuchungsart | "
."\n\t | "
."\n ";
} else { // keine Rechte an .., nur Flurstücke gebucht
echo " Flurstücke\n";
}
// gemeinsame Kopfzeile "Buchung + Flurstück"
echo "\n"
."\n\tBVNR | "
."\n\tBuchungsart | "
."\n\t | "
."\n\tGemarkung | "
."\n\tFlur | "
."\n\tFlurst. | "
."\n\tFläche | "
."\n\tweitere Auskunft | "
."\n ";
// Blatt -> B u c h u n g s s t e l l e
// aktuelles ax_buchungsblatt Fehler bei Buchung.";
if ($debug > 2) {echo "\nSQL= ".htmlentities($sql, ENT_QUOTES, "UTF-8")." $1 = gml_id = '". $gmlid."' ";}
}
$i=0;
$fscnt=0;
$zpaar=false;
while($row = pg_fetch_array($res)) { // Loop Buchungsstelle (Grundstück)
$lfdnr=$row["lfd"];
$bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
$gml_bs=$row["gml_id"]; // id der buchungsstelle
$bartkey=$row["buchungsart"]; // Schlüsselwert
$bart=$row["bart"]; // BuchungsART Text dazu
$bartstory=htmlentities($row["d"], ENT_QUOTES, "UTF-8"); // .. für Anzeige aufbereitet
if ($row["zaehler"] == "") {
$anteil = "";
} else {
$anteil = $row["zaehler"]."/".$row["nenner"];
}
if ($zpaar) {$trclass='paa';} else {$trclass='unp';} // Farbwechsel je Grundstück
$zpaar=!$zpaar;
// F l u r s t u e c k s d a t e n zur direkten Buchungsstelle
$j = bnw_fsdaten($con, $lfdnr, $gml_bs, $bart, $anteil, true, $bartkey, $bartstory); // return=Anzahl der FS
$fscnt=$fscnt + $j;
if ($j == 0) { // k e i n e Flurstuecke gefunden (Miteigentumsnteil usw.)
// Bei "normalen" Grundstuecken wurden Flurstuecksdaten gefunden und ausgegeben.
// Bei Miteigentumsanteil, Erbbaurecht usw. muss nach weiteren Buchungsstellen gesucht werden:
// Buchungsstelle >an/zu> (andere)Buchungsstelle >istBestandTeilVon> "FiktivesBlatt (ohne) Eigentuemer"
// dann andere "dienende" Buchungsstellen
// sh=herrschend sd=dienend
// ax_buchungsstelle >zu> ax_buchungsstelle (des gleichen Blattes)
// ax_buchungsstelle >an> ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an)
// Mit "UNION" um die Fälle mit JOIN über die Arrays "an" und "zu" unterscheiden zu können
$sql="SELECT uni.*, wb.v AS bart FROM "
."(SELECT sda.gml_id, sda.buchungsart, sda.laufendenummer AS lfd, sda.beschreibungdesumfangsderbuchung AS udb, sda.nummerimaufteilungsplan AS nrap, sda.beschreibungdessondereigentums AS sond, 'an' as anzu "
."FROM ax_buchungsstelle sha JOIN ax_buchungsstelle sda ON sda.gml_id=ANY(sha.an) "
."WHERE sha.gml_id= $1 AND sha.endet IS NULL AND sda.endet IS NULL "
."UNION SELECT sdz.gml_id, sdz.buchungsart, sdz.laufendenummer AS lfd, sdz.beschreibungdesumfangsderbuchung AS udb, sdz.nummerimaufteilungsplan AS nrap, sdz.beschreibungdessondereigentums AS sond, 'zu' as anzu "
."FROM ax_buchungsstelle shz JOIN ax_buchungsstelle sdz ON sdz.gml_id=ANY(shz.zu) "
."WHERE shz.gml_id= $1 AND shz.endet IS NULL AND sdz.endet IS NULL "
.") AS uni LEFT JOIN alkis_wertearten wb ON cast(uni.buchungsart AS character varying)=wb.k AND wb.element='ax_buchungsstelle' AND wb.bezeichnung='buchungsart' "
."ORDER BY uni.lfd;";
// Testfall suchen: SELECT gml_id, zu, durch FROM ax_buchungsstelle WHERE NOT zu IS NULL OR NOT durch IS NULL;
// Die Relationen "an" und "durch" kommen in der Praxis nicht vor.
$v=array($gml_bs); // gml_id der "herrschenden" Buchungs-Stelle
$resan=pg_prepare("", $sql); // Suche nach "dienender" Buchungsstelle
$resan=pg_execute("", $v);
if (!$resan) {
echo "\nFehler bei 'andere Buchungsstelle'. ";
if ($debug > 2) {echo "\nSQL= ".htmlentities($sql, ENT_QUOTES, "UTF-8")." $1 = '".$gml_bs."' ";}
}
$a=0; // count
$altbvnr=""; // Gruppenwechsel
while($rowan= pg_fetch_array($resan)) {
$lfdnran=$rowan["lfd"]; // BVNR an
$gml_bsan=$rowan["gml_id"]; // id der buchungsstelle an
$baan=$rowan["bart"]; // Buchungsart an, entschluesselt
$anzu=$rowan["anzu"]; // Welche Relation? Recht an oder Recht zu ?
// a n d e r e s B l a t t (an dem das aktuelle Blatt Rechte hat)
// dienendes Grundbuch
$sql ="SELECT b.gml_id, b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, b.blattart, wb.v AS blattartv, z.bezeichnung AS beznam "
."FROM ax_buchungsblatt b JOIN ax_buchungsstelle s ON b.gml_id=s.istbestandteilvon "
."LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk "
."LEFT JOIN alkis_wertearten wb ON cast(b.blattart AS character varying)=wb.k AND wb.element='ax_buchungsblatt' AND wb.bezeichnung='blattart' "
."WHERE s.gml_id= $1 AND b.endet IS NULL AND s.endet IS NULL AND z.endet IS NULL ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
$v=array($gml_bsan);
$fbres=pg_prepare("", $sql);
$fbres=pg_execute("", $v);
if (!$fbres) {
echo "\nFehler bei fiktivem Blatt. ";
if ($debug > 2) {echo "\nSQL= ".htmlentities($sql, ENT_QUOTES, "UTF-8")." $1 = gml_id = '".$gmlid."' ";}
}
$b=0;
while($fbrow = pg_fetch_array($fbres)) { // genau 1
$fbgml=$fbrow["gml_id"];
$fbland=$fbrow["land"];
$fbbez=$fbrow["bezirk"];
$beznam=$fbrow["beznam"];
$fbblatt=$fbrow["blatt"];
$fbbartkey=$fbrow["blattart"]; // Key
$fbbart=$fbrow["blattartv"]; // Value
$b++;
}
if ($b != 1) { // Überwachen: genau 1?
echo "\nAnzahl fiktive Blätter zu anderer Buchungstelle = ".$b." ";
}
// G r u n d b u c h d a t e n zur a n d e r e n Buchungsstelle
echo "\n"
."\n\t"; // Sp.1 Erbbau BVNR, Sprungmarke
if($bvnr == $altbvnr) { // gleiches Grundstueck
echo " "; // dann Anzeige unterdruecken
} else {
// echo "" // Sprungmarke
echo "".$bvnr."";
$altbvnr = $bvnr; // Gruppenwechsel merken
}
echo " | "
."\n\t"; // Sp.2 Buchung
if ($showkey) {echo "".$row["buchungsart"]." ";}
echo $bart." an | "
."\n\t".$anteil." | " // Sp.3 Anteil
."\n\t"; // Sp.4 Gemarkg., hier Bezirk
if ($showkey) {echo "".$fbbez." ";}
echo htmlentities($beznam, ENT_QUOTES, "UTF-8")
." | ";
echo "\n\t".$fbblatt." | " // Sp. 5 Blatt
."\n\t".str_pad($lfdnran, 4, "0", STR_PAD_LEFT)." | " // Sp.6 BVNR
."\n\t"; // Sp.7 Buchungsart
if ($showkey) {echo "".$rowan["buchungsart"]." ";}
echo $baan." "
." | "
."\n\t" // Sp.8 Link ("an" oder "zu"?)
."\n\t\t ".$anzu; // Recht "an" oder "zu"
if ($showkey) {echo " ".$fbbartkey."";} // Blatt-Art Schlüssel
echo "\n\t\t\t";
echo $fbbart // Blatt-Art entschlüsselt
." \n\t\t "
."\n\t | "
."\n ";
// F l u r s t u e c k s d a t e n zur a n d e r e n Buchungsstelle
// Buchungsart wird nur in erster Zeile ausgegeben, hier leer
$aj = bnw_fsdaten($con, $lfdnran, $gml_bsan, "", $anteil, false, "", ""); // return=Anz.FS
$fscnt=$fscnt + $aj;
// +++ Gibt es Sondereigentum beim fiktiven Blatt?
if ($rowan["nrap"] != "") {
echo "\n"
."\n\tNr. im Aufteilungsplan: ".$rowan["nrap"]." | "
."\n ";
}
if ($rowan["sond"] != "") {
echo "\n"
."\n\tVerbunden mit dem Sondereigentum an: ".htmlentities($rowan["sond"], ENT_QUOTES, "UTF-8")." | "
."\n ";
}
$a++;
}
if ($a == 0) {
echo "\n"
."\n\t".$bvnr." | "
."\n\tKeine Flurstücke zu Buchung ".$bvnr." im berechtigten Bereich. | "
."\n ";
}
}
$i++;
if ($row["nrap"] != "") { // Nr im Auft.Plan
echo "\n"
."\n\tNummer ".$row["nrap"]." im Aufteilungsplan. | "
."\n ";
}
if ($row["sond"] != "") { // Sondereigentumsbeschreibung
echo "\n"
."\n\tVerbunden mit dem Sondereigentum an: ".$row["sond"]." | "
."\n ";
} // Ende Buchungsstelle/BVNR
} // Ende Loop
echo "\n ";
if ($i == 0) {
echo "\nKeine Buchung gefunden. ";
} else {
if ($i > 5 and $fscnt > 5) { // nur wenn nicht auf einen Blick zu erkennen
echo "\n".$i." Buchungen mit ".$fscnt." Flurstücken ";
}
}
// B e r e c h t i g t e Buchungsblaetter mit Recht an/zu dem aktuellen (fiktiven?) Blatt
// bf sf sb bb
// Blatt istBestandteilVon> Blatt
// Fiktiv Fiktiv Fehler bei 'Berechtigte Blätter.";
if ($debug > 2) {echo "\nSQL= ".htmlentities($sql, ENT_QUOTES, "UTF-8")." $1 = gml_id = '".$gmlid."' ";}
}
$b=0; // count: Buchungen / Blätter
$zpaar=false;
while($rowb = pg_fetch_array($resb)) {
if ($b == 0) { // Ueberschrift und Tabelle nur ausgeben, wenn etwas gefunden wurde
echo "\n\n Berechtigte Grundbücher"
."\n"
."\n"
."\n\tan BVNR | "
."\n\tDienststelle | "
."\n\tBezirk | "
."\n\tBlatt | "
."\n\tBVNR | "
."\n\tBuchungsart | "
."\n\tWeitere Auskunft | "
."\n ";
}
$anlfdnr=$rowb["anlfdnr"]; // an BVNR
$anlfdnr0=str_pad($anlfdnr, 4, "0", STR_PAD_LEFT); // mit führ.0
$gml_b=$rowb["gml_id"]; // id des ber. Blattes
$gml_s=$rowb["gml_s"]; // id der ber. B-Stelle
$blart=$rowb["blattart"];
$buch=$rowb["buchungsart"]; // Buchungsart Stelle berechtigt
$bart=$rowb["bart"]; // BA entschl.
$lfdnr=$rowb["lfdnr"]; // BVNR ber.
$bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
if ($zpaar) {$trclass='paa';} else {$trclass='unp';} // Farbwechsel je Zeile = Grundstück
$zpaar=!$zpaar;
echo "\n"; // Der Teil "berechtigte Grundbücher" ist sortiert wie oberer Teil "Flurstücke"
echo "\n\t".$anlfdnr0." | "
."\n\t"; // Amtsgericht,Grundbuchamt
echo htmlentities($rowb["stellev"], ENT_QUOTES, "UTF-8")." ";
if ($showkey) {echo "".$rowb["stelle"]." ";}
echo htmlentities($rowb["bezeichnung"], ENT_QUOTES, "UTF-8")
." | "
."\n\t";
if ($showkey) {echo "".$rowb["bezirk"]." ";}
echo htmlentities($rowb["beznam"], ENT_QUOTES, "UTF-8")
." | "
."\n\t".$rowb["blatt"]." | "
."\n\t".$bvnr." | "
."\n\t";
if ($showkey) {echo "".$buch." ";}
echo $bart
." | "
."\n\t"
."\n\t\t ";
if ($showkey) {echo "".$blart." ";} // NEU!
echo "\n\t\t\t".$rowb["blattartv"]; // "an" ggf. durch "zu" ersetzen?
echo " \n\t\t\t"
."\n\t\t "
." | "
."\n ";
$b++;
}
if ($b == 0) {
if ($blattkey > 2000 ) { // Warnung nicht bei Grundbuchblatt 1000 und Katasterblatt 2000
echo "\nKeine berechtigten Blätter zu ".$blattart." (".$blattkey.") gefunden. ";
}
} else {
echo "\n ";
if ($i > 1) {
echo "\nRechte anderer Buchungsstellen an ".$b." der ".$i." Buchungen ";
}
}
?>
|