Fehler bei 'berechtigte Buchungsstellen zaehlen'.
";}
$rowan = pg_fetch_assoc($resan);
$anz=$rowan["anz"];
pg_free_result($resan);
return $anz; // Funktionswert = Anzahl der berechtigten Buchungen
}
function buchung_anzg($gmlbs, $eig, $jsfenster, $gml_fs, $trtyp) {
// In einem FS-Nachw. EINE Buchungsstelle anzeigen.
// Parameter:
// $gmlbs: GML-ID der anzuzeigenden Buchungs-Stelle
// $eig: Eigentümer ausgeben j/n
// $jsfenster: Javascript-Funktion zum Verlassen des Feature-Info-Fensters verwenden (bool)
// $gml_fs: GML-ID des Flurstücke (nur bei erstem Aufruf in einem FS-Nachweis notwendig)
// $trtyp: Tabellen-Zeilen-Typ. Werte: 1="mit GS-Link", 2="ohne GS-Link", 3="ohne GS-Link +Zeile einfärben"
global $gkz, $debug, $showkey, $bartgrp, $barttypgrp, $stufe;
$sqlbs="SELECT sh.gml_id AS hgml, sh.buchungsart, sh.laufendenummer as lfd, sh.zaehler, sh.nenner, sh.nummerimaufteilungsplan as nrpl, sh.beschreibungdessondereigentums as sond, " // Buchungs-Stelle herrschend
."b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.beschreibung AS bart, a.dokumentation AS barttitle, w.beschreibung AS blattartv "
."FROM ax_buchungsstelle sh "
."JOIN ax_buchungsblatt b ON b.gml_id=sh.istbestandteilvon "
."LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "
."LEFT JOIN ax_buchungsart_buchungsstelle a ON sh.buchungsart = a.wert " // entschl. Buchungsart
."LEFT JOIN ax_blattart_buchungsblatt w ON b.blattart = w.wert " // entschl. Blatt-Art
."WHERE sh.gml_id= $1 AND sh.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL;";
$v = array($gmlbs); // ID dienende Buchungs-Stelle
$resbs = pg_prepare("", $sqlbs);
$resbs = pg_execute("", $v);
if (!$resbs) {
echo "\nFehler bei 'Buchungsstelle ausgeben'.
";
if ($debug > 2) {echo "\n" // Zeile mit 4 Spalten für Buchung und Eigentümer
."\n\t\t Buchung:"; // 1
if ($showkey and $debug > 2) {echo " Stufe ".$stufe." ".$hgml." ";}
echo " | \n\t\t"; // 2-3
// innere Tabelle: Rahmen mit GB-Kennz.
if ($blattkeyber == 1000) {
echo "\n\t\t\t";
} else {
echo "\n\t\t\t"; // dotted
}
echo "\n\t\t\t"
."\n\t\t\t\tBezirk | "
."\n\t\t\t\t";
if ($showkey) {echo "".$blattkeyber." ";}
echo $blattartber." | "
."\n\t\t\t\tLfd-Nr | "
."\n\t\t\t ";
if ($trtyp == 3) { // Treffer-Grundst. einfärben
echo "\n\t\t\t";
} else {
echo "\n\t\t\t ";
}
echo "\n\t\t\t\t";
if ($showkey) {echo "".$rowbs["bezirk"]." ";}
echo $beznam." | "
."\n\t\t\t\t".$blatt." | "
."\n\t\t\t\t".$lfd." | "
."\n\t\t\t "
."\n\t\t\t ";
if ($rowbs["zaehler"] <> "") {
echo "\n\t\t\t".$rowbs["zaehler"]."/".$rowbs["nenner"]." Anteil am Flurstück ";
}
if ($nrpl != "") {
echo "\n\t\t\tNummer ".$nrpl." im Aufteilungsplan. ";
}
if ($sond != "") {
echo "\n\t\t\tVerbunden mit dem Sondereigentum: ".$sond." ";
}
echo "\n\t\t"; // 2-3
echo "\n\t\t"; // 4
echo "\n\t\t\t ";
// Bestand
if ($showkey) {echo "".$blattkeyber." ";}
$url="alkisbestnw.php?gkz=".$gkz."&gmlid=".$gbgml;
if ($showkey) {$url.="&showkey=j";}
if ($jsfenster) {$url="javascript:imFenster(\"".$url."\")";} // Sonderfall "Inlay" aus Feature-Info
echo "\n\t\t\t\t".$blattartber
." "
."";
// Buchung
if ($trtyp == 1) {
echo " ";
if ($showkey) {echo "".$bartkey." ";}
$url="alkisgsnw.php?gkz=".$gkz."&gmlid=".$hgml;
if ($showkey) {$url.="&showkey=j";}
if ($jsfenster) {$url="javascript:imFenster(\"".$url."\")";}
echo "\n\t\t\t\tBuchung"
." "
."";
}
echo "\n\t\t\t "
."\n\t\t | " // 4
."\n\t";
if ($eig == "j") {
if ($jsfenster) {$lnkclass = "imFenster";} else {$lnkclass = "";}
$n = eigentuemer($gbgml, true, $lnkclass); // mit Adresse
}
}
}
pg_free_result($resbs);
return $gezeigt; // true wenn eine Buchung ausgegeben wurde
}
function ber_bs_anzg($gmls, $eig, $jsfenster, $gml_fs, $gsanfrd) {
// In einem FS-Nachw. die berechtigten (herrschenden) Buchungsstellen anzeigen z.B. "Wohnungs-/Teileigentum".
// Parameter:
// $gmls: GML-ID der dienenden Buchungs-Stelle. Im ersten Durchlauf also, die BS auf der das FS gebucht ist.
// $eig: Eigentümer ausgeben j/n
// $jsfenster: Javascript-Funktion zum Verlassen des Feature-Info-Fensters verwenden (bool)
// $gml_fs: GML-ID des Flurstücke (nur bei erstem Aufruf in einem FS-Nachweis notwendig)
// $gsanfrd: In einem GS-Nachw. die GML-ID der in de URL angeforderten Buchungsstelle (-> Hervorhebung)
global $debug, $gezeigt;
// sh=Buchungstelle herrschend >(Recht)an> sd=Buchungstelle dienend >istBestandteilVon> BLATT -> Bezirk
$sql="SELECT sh.gml_id AS hgml, sh.buchungsart, sh.laufendenummer as lfd, sh.zaehler, sh.nenner, sh.nummerimaufteilungsplan as nrpl, sh.beschreibungdessondereigentums as sond, "
."b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart "
."FROM ax_buchungsstelle sh JOIN ax_buchungsblatt b ON b.gml_id=sh.istbestandteilvon "
."WHERE $1 = ANY(sh.an) AND sh.endet IS NULL AND b.endet IS NULL "
."ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer;";
$v = array($gmls); // ID dienende BuchungsStelle
$resber = pg_prepare("", $sql);
$resber = pg_execute("", $v);
if (!$resber) {
echo "\nFehler bei 'berechtigte Buchungsstellen'. ";
if ($debug > 2) {echo "\nSQL= ".htmlentities($sql, ENT_QUOTES, "UTF-8")." $1 = gml_id = '".$gmls."' ";}
}
$an=0;
$verfolg=array(); // Ein (zunächst leeres) Array für weitere GML-IDs anlegen
while($rowan = pg_fetch_assoc($resber)) { // Loop durch Result von berechtigte BS
$hgml=$rowan["hgml"]; // GML-ID der berechtigten Buchungs-Stelle
if ($hgml == $gsanfrd) {
$trtyp=3; // einfärben, o. Lnk.
} else {
if ($gezeigt) {
$trtyp=2; // ohne Link auf GS
} else { // Wenn Stufe 1 "Fiktives Blatt" war, welches ausgeblendet wurde, dann auf Stufe 2 einen GS-Link ausgeben
$trtyp=1; // mit Link auf GS
}
}
$gezeigt2=buchung_anzg($hgml, $eig, $jsfenster, $gml_fs, $trtyp); // Die herrschende Buchung anzeigen wenn nicht fiktiv
$an++;
$weitere=ber_bs_zaehl($hgml);
if ($weitere > 0) { // gibt es WEITERE berechtigte Buchungen dazu?
$verfolg[] = $hgml; // neuen Wert für weitere Verfolgung in Array anfügen
}
}
pg_free_result($resber);
return $verfolg; // weitere zu verfolgende GML-ID zurück geben
}
function kurz_namnr($lang) {
// Namensnummer kürzen. Nicht benötigte Stufen der Dezimalklassifikation abschneiden
$kurz=str_replace(".00","",$lang); // leere Stufen (nur am Ende)
$kurz=str_replace("0000","",$kurz); // ganz leer (am Anfang)
$kurz=ltrim($kurz, "0"); // fuehr. Nullen
$kurz=str_replace(".0",".",$kurz); // fuehr. Null jeder Stufe
$kurz=rtrim($kurz); // Leerzeichen hinten
// echo "/n lang='".$lang."' /n kurz='".$kurz."' ";
return $kurz;
}
function bnw_fsdaten($lfdnr, $gml_bs, $ba, $anteil, $bvnraus, $bartkey, $bartstory) {
/* Bestandsnachweis - Flurstuecksdaten
Die Tabellenzeilen mit den Flurstuecksdaten zu EINER Buchungsstelle im Bestandsnachweis ausgeben.
Die Funktion wird je einmal aufgerufen für die Buchungen direkt auf dem GB (Normalfall).
Weiterere Aufrufe ggf. bei Erbbaurecht für die mit "an" verknuepften Buchungsstellen.
Tabellenkopf wird im aufrufenden Programm ausgegeben. */
global $debug, $gkz, $showkey, $filtkreis, $filtgem, $trclass;
// F L U R S T U E C K
$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 "
."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("", $sql);
$resf = pg_execute("", $v);
if (!$resf) {echo "\nFehler bei Flurstück ";}
if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben
$bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT);
} else {
$bvnr="";
}
$altbvnr=""; // ++ besser mit "$j == 0" steuern?
$j=0;
while($rowf = pg_fetch_assoc($resf)) {
$flur= $rowf["flurnummer"];
$fskenn=$rowf["zaehler"];
if ($rowf["nenner"] != "") { // Bruch
$fskenn.="/".$rowf["nenner"];
}
$flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m²";
echo "\n"; // eine Zeile je Flurstueck
// Sp. 1-3 der Tab. aus Buchungsstelle, nicht aus FS
if($bvnr == $altbvnr) { // gleiches Grundstueck, leer lassen
echo "\n\t | "
."\n\t | "
."\n\t | ";
} else { // Sprungmarke, BVNR
echo "\n\t"; // Sprungmarke
// echo "\n\t\t";
echo "".$bvnr.""
."\n\t | ";
echo "\n\t"; // Buchungsart
if ($showkey) {echo "".$bartkey." ";} // Schluessel
echo $ba; // entschluesselt
echo " | "
."\n\t | "; // Anteil
}
// Sp. 4-7 aus Flurstueck
echo "\n\t";
if ($showkey) {echo "".$rowf["gemarkungsnummer"]." ";}
echo $rowf["bezeichnung"]." | "
."\n\t".$flur." | "
."\n\t".$fskenn.""
." | "
."\n\t".$flae." | "; // "width" hier (flaG) erweiterbar, weil in andere Zeile die Buchungsart steht
echo "\n\t\n\t\t ";
// if($bvnr != $altbvnr) {
if($j == 0) {
echo "\n\t\t\tBuchung "
.""
."";
}
echo "\n\t\t\tFlurstück "
.""
.""
."\n\t\t \n\t | "
."\n ";
$altbvnr=$bvnr;
$j++;
} // Ende Loop Flurstueck
pg_free_result($resf);
return $j;
}
function eigentuemer($gmlid, $mitadresse, $lnkclass) {
// Tabelle mit Eigentuemerdaten zu einem Grundbuchblatt ausgeben
// Sp.1="Eigentümer" Sp.2=NamNr, Sp.3=Name/Adresse, Sp.4=Link
// Parameter:
// $gmlid = ID GB-Blattes
// $mitadresse = Option (true/false) ob die Adresszeile ausgegeben werden soll
// Return = Anzahl Namensnummern
// Schleife 1: N a m e n s n u m m e r
// Beziehung: ax_namensnummer >istBestandteilVon> ax_buchungsblatt
global $debug, $gkz, $showkey;
if ($lnkclass == "") {
$lnkvor = "";
$lnknach = "";
} else { // Link über Java-Class "imFenster" aus alkisinlayausk.php
$lnkvor = "javascript:".$lnkclass."(\"";
$lnknach = "\")";
}
$sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass, n.benennt, wn.beschreibung AS adrv, we.beschreibung AS eiartv "
."FROM ax_namensnummer n "
."LEFT JOIN ax_artderrechtsgemeinschaft_namensnummer wn ON n.artderrechtsgemeinschaft = wn.wert "
."LEFT JOIN ax_eigentuemerart_namensnummer we ON n.eigentuemerart = we.wert "
."WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;";
// +++ LEFT JOIN bis ax_Person statt Person als Schleife zu holen,
// Verknüpfungsfeld "benennt" ist leer bei "Beschrieb der Rechtsgemeinschaft".
$v = array($gmlid); // GB-Blatt
$resn = pg_prepare("", $sqln);
$resn = pg_execute("", $v);
if (!$resn) {
echo "\nFehler bei Eigentümer "; // kein Fehler bei Blattarten > 1000
//if ($debug > 2) {echo "\nSQL= ".$sqln." $1=gml= '".$gmlid."' ";}
}
$n=0; // Z.NamNum.
while($rown = pg_fetch_assoc($resn)) {
$gmlnn=$rown["gml_id"];
$namnum=kurz_namnr($rown["lfd"]);
$rechtsg=$rown["adr"];
echo "\n\t";
if($n == 0) { // erste Eigentümer-Zeile zu einer Buchung
echo "\n\t\t Eigentümer: | "; // 1
} else { // Folgezeile
echo "\n\t\t | "; // 1
}
if ($rechtsg != "" ) { // Erbengemeinschaft usw.
echo "\n\t\t"; // 2-3
if ($rechtsg == 9999) { // sonstiges
echo "\n\t\t\t ".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")." ";
} else {
echo "\n\t\t\t".htmlentities($rown["adrv"], ENT_QUOTES, "UTF-8")." ";
}
} else { // Namensnummer
echo "\n\t\t | \n\t\t\t ".$namnum." \n\t\t | " // 2
. "\n\t\t"; // 3
}
//if ($rown["anlass"] > 0 ) {echo " Anlass=".$rown["anlass"]." ";}
// Andere Namensnummern? Relation: ax_namensnummer >bestehtAusRechtsverhaeltnissenZu> ax_namensnummer
// Die Relation 'Namensnummer' besteht aus Rechtsverhältnissen zu 'Namensnummer' sagt aus, dass mehrere Namensnummern zu einer Rechtsgemeinschaft gehören können.
// Die Rechtsgemeinschaft selbst steht unter einer eigenen AX_Namensnummer, die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt.
// Schleife 2: P e r s o n
// +++ bei SQL Namensnummer oben gleich mit JOIN dazu holen, statt dieser Schleife
// Beziehung: ax_person Fehler bei Person";
if ($debug > 2) {echo "\nSQL= ".$sqlp." $1=gml= '".$gmlpers."' ";}
}
$i=0; // cnt Person
while($rowp = pg_fetch_assoc($resp)) { // Schleife weglassen: "benennt" ist KEIN Array!
$diePerson=""; //++ Anrede?
if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";}
$diePerson.=$rowp["nachnameoderfirma"];
if ($rowp["vorname"] <> "") {$diePerson.=", ".$rowp["vorname"];}
if ($rowp["namensbestandteil"] <> "") {$diePerson.=". ".$rowp["namensbestandteil"];}
if ($rowp["geburtsdatum"] <> "") {$diePerson.=", geb. ".$rowp["geburtsdatum"];}
if ($rowp["geburtsname"] <> "") {$diePerson.=", geb. ".$rowp["geburtsname"];}
$diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute
$eiartkey=$rown["eigentuemerart"]; // Key
$eiart=$rown["eiartv"]; // Value
echo "\n\t\t\t".$diePerson." \n\t\t | "; // 3 - Person in Sp.3 hinter NamNum (Sp.2)
echo "\n\t\t\n\t\t\t "; // 4
if ($showkey AND $eiartkey != '') {echo "".$eiartkey." ";}
echo "\n\t\t\t\t".$eiart
." \n\t\t\t "
."\n\t\t | " // 4
."\n\t ";
if ($mitadresse) {
// Schleife 3: optional A d r e s s e zur Person
$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland "
."FROM ax_anschrift a JOIN ax_person p ON a.gml_id=ANY(p.hat) WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL ORDER BY a.beginnt DESC LIMIT 2;";
$v = array($gmlpers);
$resa = pg_prepare("", $sqla);
$resa = pg_execute("", $v);
if (!$resa) {
echo "\n\tFehler bei Adressen ";
if ($debug > 2) {echo "\nSQL= ".$sqla." $1=gml= '".$gmlpers."' ";}
}
$j=0;
while($rowa = pg_fetch_assoc($resa)) {
$j++;
if ($j == 1) { // erste ("jüngste") Adresse anzeigen
$gmla=$rowa["gml_id"];
$plz=$rowa["plz"]; // integer
if($plz == 0) {
$plz="";
} else {
$plz=str_pad($plz, 5, "0", STR_PAD_LEFT);
}
$ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8");
$str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8");
$hsnr=$rowa["hausnummer"];
$land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8");
echo "\n\t"
."\n\t\t | " // 1
."\n\t\t | " // 2
."\n\t\t"; // 3
if ($str.$hsnr != "") {echo $str." ".$hsnr." ";}
if ($plz.$ort != "") {echo $plz." ".$ort;}
if ($land != "" and $land != "DEUTSCHLAND") {echo ", ".$land;}
echo " | " // 3
."\n\t\t | \n\t "; // 4
} else { // manchmal doppelte Angaben
echo "\n\t"
."\n\t\t | " // 1
."\n\t\t | " // 2
."\n\t\tweitere Adresse | " // 3
."\n\t\t | \n\t "; // 4
}
} // Ende Loop Adresse zur Person
pg_free_result($resa);
}
// 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG"
$i++; // cnt Person
$zaehler=$rown["zaehler"];
if ($zaehler != "") { // Anteil als eigene Tab-Zeile
$zaehler=str_replace(".", ",", $zaehler); // Dezimal-KOMMA wenn dem Notar der Bruch nicht reicht
$nenner=str_replace(".", ",", $rown["nenner"]);
$comnt="Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (Grundstück oder Recht).";
echo "\n\t"
."\n\t\t | " // 1
."\n\t\t | " // 2
."\n\t\t".$zaehler."/".$nenner." Anteil | " // 3
."\n\t\t | \n\t "; // 4
}
} // End Loop Person
pg_free_result($resp);
if ($i == 0) { // KEINE Person. benennt ist leer. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler
if ($rechtsg == 9999) {
if ($debug > 1) {echo "\n\t\t\tRechtsgemeinschaft = '".$rechtsg."' ";}
} else {
echo "\n(Die Person mit der ID '".$gmlpers."' fehlt im Datenbestand) ";
}
echo "\n\t\t | \n\t";
}
$n++; // cnt NamNum
} // End Loop NamNum
pg_free_result($resn);
return $n;
} // End function eigentuemer
function werteliste ($element, $bezeichnung ,$sqlin) {
// Eine oder mehrere Entschlüsselungen in eine Zeile ausgeben.
// Dient dazu, Schlüssel-ARRAYs auflösen ohne die Zeile mehrfach aufzulisten (JOIN)
// Anwendung: FS-Nachweis Bodenschätzung "Klimastufe + Wasserverhältnisse"
// 2018-11-09: Umstellung von "alkis_wertearten" auf individuelle Tabellen
global $debug;
if ($element == 'ax_bodenschaetzung' AND $bezeichnung = 'entstehungsartoderklimastufewasserverhaeltnisse' ) {
$tabelle = 'ax_entstehungsartoderklimastufewasserverhaeltnisse_bodensc';
} elseif ($element == 'ax_bodenschaetzung' AND $bezeichnung = 'sonstigeangaben' ) {
$tabelle = 'ax_sonstigeangaben_bodenschaetzung';
}
$sql="SELECT wert, beschreibung FROM ".$tabelle." WHERE wert IN (".$sqlin.") ORDER BY wert LIMIT $1 ;";
$v = array(100);
$res = pg_prepare("", $sql);
$res = pg_execute("", $v);
if (!$res) {
echo "\nFehler bei Werteliste. ";
if ($debug > 2) {echo "\nSQL= ".htmlentities($sql, ENT_QUOTES, "UTF-8")." $1 = '".$sqlin."' ";}
return;
}
$i=0;
while($row = pg_fetch_assoc($res)) {
echo " ".$row["beschreibung"];
$i++;
}
pg_free_result($res);
if ($i == 0) {echo "(kein Treffer)";}
return;
}
function fortfuehrungen($entsteh, $dbzeart, $dbzename) {
// Tabelle im Kopf von Flurstück und FS-Historie. 2 Z./Sp. Entstehung/Fortführung
// Parameter: Die DB-Spalten "zeitpunktderentstehung", "zeigtaufexternes_art" und "zeigtaufexternes_name"
global $debug, $showkey;
// if ($debug > 2) {echo "function fortfuehrungen 1: ".$dbzeart." 2: ".$dbzename." ";}
echo "\n\t" // FS-Daten 2 Spalten
."\n\t\t\n\t\t\tEntstehung | "
."\n\t\t\t".$entsteh." | \n\t\t ";
echo "\n\t"
."\n\t\t\t";
$arrart=explode(",", trim($dbzeart, "{}"));
foreach($arrart AS $artval) { // Zeile für jedes Element
$artval=trim($artval, '"');
// ibR: {"Entstehung des Flurstücks/5200","Letzte Fortführung des Flurstücks/5300",urn:adv:fachdatenverbindung:AA_Antrag}
// AED: {http://geoportal.kreis-herford.de/alkis/alkis.html#5200,http://geoportal.kreis-herford.de/alkis/alkis.html#5300,urn:adv:fachdatenverbindung:AA_Antrag}
$artpos=strpos($artval, '#');
if ($artpos > 0) { // AED
$artkey=substr($artval, $artpos + 1);
switch ($artkey) { // keine Schlüsseltabelle?
case '5100': $arttxt="Grundstückshinweis (aus ALB-Historie)"; break;
case '5200': $arttxt="Entstehung des Flurstücks"; break;
case '5300': $arttxt="Letzte Fortführung des Flurstücks"; break;
default: $arttxt=$artval;
}
if ($showkey) {echo "".$artkey." ";}
echo $arttxt." ";
} else {
$artpos=strpos($artval, '/');
if ($artpos > 0) { // ibR
$artkey=substr($artval, $artpos + 1);
$arttxt=substr($artval, 0, $artpos);
if ($showkey) {echo "".$artkey." ";}
echo $arttxt." ";
}
}
}
echo " | "
."\n\t\t\t";
$arrname=explode(",", trim($dbzename, "{}"));
foreach($arrname AS $val) {
echo trim($val, '"')." ";
}
echo " | "
."\n\t\t "
."\n\t ";
}
function fskenn_dbformat ($fskennz) {
// Erzeugt, wenn notwendig, aus dem Bindetrich-getrennten Flurstückskennzeichen "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz"
// das ALKIS-DB-interne Format des Flurstückskennzeichens.
global $defland;
$arr=explode("-", $fskennz, 4); // zerlegen
$zgemkg=trim($arr[0]);
if (strlen($zgemkg) == 20 and !isset($arr[1])) {
$fskzdb=$zgemkg; // ist schon Datenbank-Feldformat
} else { // Das Kennzeichen auseinander nehmen.
if (strlen($zgemkg) == 6) {
$land=substr($zgemkg, 0, 2);
$zgemkg=substr($zgemkg, 2, 4);
} else { // kein schöner Land ..
$land=$defland; // Default-Land aus config
}
$zflur=str_pad($arr[1], 3 , "0", STR_PAD_LEFT); // Flur-Nr
$zfsnr=trim($arr[2]); // Flurstücke-Nr
$zn=explode("/", $zfsnr, 2); // Bruch?
$zzaehler=str_pad(trim($zn[0]), 5 , "0", STR_PAD_LEFT);
if (isset($zn[1])) {
$znenner=trim($zn[1]);
} else {
$znenner="";
}
if (trim($znenner, " 0.") == "") { // kein Bruch oder nur Nullen
$znenner="____"; // in DB-Spalte mit Tiefstrich aufgefüllt
} else {
$zn=explode(".", $znenner, 2); // .00 wegwerfen
$znenner=str_pad($zn[0], 4 , "0", STR_PAD_LEFT);
}
// die Teile stellengerecht wieder zusammen setzen
$fskzdb=$land.$zgemkg.$zflur.$zzaehler.$znenner.'__'; // FS-Kennz. Format Datenbank
}
return $fskzdb;
}
?> |