Index: trunk/info/info/alkisn/alkisfsnw.php
===================================================================
--- trunk/info/info/alkisn/alkisfsnw.php (revision 401)
+++ trunk/info/info/alkisn/alkisfsnw.php (revision 402)
@@ -18,24 +18,16 @@
2017-12-08 Planung (Kommentare) der Erweiterung fÃŒr Berechtigte GrundbÃŒcher
2017-12-20 Links auf Lagebezeichnung verbessert.
-
-+++ ToDo: +++
- - Wenn nur 1 Buchung auf der nÀchsten Stufe "Recht an" vorliegt (z.B. Erbbaurecht), dann sofort anzeigen. $berbu=''
- Bei vielen Buchungen auf der nÀchsten Stufe (Miteigentumsanteil) nur die Anzahl, erst auf Anforderung (Parameter) &berbu='j' oder 2,3,4,fÌr maximale Stufen.
- Anzahl weiterer "Rechte an" auf jeder Stufe anzeigen, auch wenn noch kein Link möglich ist.
- MEHR: Alle "Rechte an" RÌckwÀrts auflisten analog View "buchungsrechte_3text". Bis zu 4 Buchungen weit.
- Im Gegensatz zum "Bestandsnachweis" aber nur je eine BVNR weiter verfolgen, die auf dies eine FlurstÃŒck bezogen ist.
- Dabei berechtigte Buchungen VOR dem Grundbuch anzeigen, also eine Berechtigungs-"Hierarchie" abbilden.
+ 2018-04-11 Variable "gmlid" an Function "ALKISexport" ÃŒbergeben. Ist beim Schreiben des Headers noch unbekannt, wenn mit "&fskennz=" aufgerufen.
+ 2018-04-23 Umfangreiche Ãberarbeitung der "Buchungsstellen"
+
+++ToDo:
+ - Buchung auf "fiktives Blatt" ist nur mit debug zu sehen: die
in .css grau hinterlegen
+ - Umschalter (gleiches Modul) anders darstellen als Links zu anderen Nachweisen
- Parameter zum Umschalten mit/ohne BodenschÀtzung?
- Bessere Differenzierung bei den Nutzungsarten (Tabelle dafÃŒr aufbauen)
*/
session_start();
-
-// Var. aus Parameter initalisieren
-$eig="n";
-$berbu="n";
-$showkey="n";
-
-// alle Parameter in Variable umwandeln
-$cntget = extract($_GET);
+$eig="n"; $showkey="n"; $nodebug=""; // Var. initalisieren
+$cntget = extract($_GET); // alle Parameter in Variable umwandeln
// strikte Validierung aller Parameter
@@ -53,7 +45,7 @@
if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");}
if (!preg_match('#^[j|n]{0,1}$#', $eig)) {die("Eingabefehler eig");}
-if (!preg_match('#^[j|n]{0,1}$#', $berbu)) {die ("Eingabefehler berbu");}
if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");}
if ($showkey == "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als boolean umwandeln, ist praktischer abzufragen, wird oft gebraucht
+if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");}
require_once("alkis_conf_location.php");
@@ -69,7 +61,7 @@
-
@@ -77,16 +69,18 @@
Fehler beim Verbinden der DB";
-// Ein (ALB- ?) FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt
+// Ein FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt
if ($fskennz != '') {
- // Ãbergabe Format z.B. "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz"
- $arr=explode("-", $fskennz, 4);
+ $arr=explode("-", $fskennz, 4); // zerlegen
$zgemkg=trim($arr[0]);
- if (strlen($zgemkg) == 20 and !isset($arr[1])) { // Oh, ist wohl schon das Datenbank-Feldformat
- $fskzdb=$zgemkg;
- } else { // Nö, ist wohl eher ALB-Format
+ if (strlen($zgemkg) == 20 and !isset($arr[1])) {
+ $fskzdb=$zgemkg; // Datenbank-Feldformat
+ } else { // Format "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz"
// Das Kennzeichen auseinander nehmen.
if (strlen($zgemkg) == 6) {
@@ -121,5 +115,5 @@
$res = pg_prepare("", $sql);
$res = pg_execute("", $v);
- if ($row = pg_fetch_array($res)) {
+ if ($row = pg_fetch_assoc($res)) {
$gmlid=$row["gml_id"];
} else {
@@ -132,24 +126,30 @@
}
-// F L U R S T U E C K
+// F L U R S T U E C K m. Gebiet
$sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae,
-to_char(cast(f.zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, g.gemarkungsnummer, g.bezeichnung
-FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer
-WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL;";
-
+to_char(cast(f.zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, f.istgebucht, g.gemarkungsnummer, g.bezeichnung,
+r.bezeichnung AS rbez, k.bezeichnung AS kbez, m.bezeichnung AS mbez
+FROM ax_flurstueck f
+LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer
+LEFT JOIN ax_regierungsbezirk r ON f.regierungsbezirk=r.regierungsbezirk
+LEFT JOIN ax_kreisregion k ON f.regierungsbezirk=k.regierungsbezirk AND f.kreis=k.kreis
+LEFT JOIN ax_gemeinde m ON m.regierungsbezirk=f.regierungsbezirk AND m.kreis=f.kreis AND m.gemeinde=f.gemeinde
+WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL AND m.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL;";
$v = array($gmlid); // mit gml_id suchen
$res = pg_prepare("", $sql);
$res = pg_execute("", $v);
-
if (!$res) {
echo "\n
";
+ if ($showkey) {echo "".$gmkgnr." ";}
+ echo $gemkname."
"
+ ."\n\t\t\t\t\t
".$flurnummer."
"
+ ."\n\t\t\t\t\t
".$flstnummer."
\n\t\t\t\t
"
+ ."\n\t\t\t
"
+ ."\n\t\t
\n\t\t
" // Rechts
+ ."\n\t\t\t
" // FS-Daten 2 Spalten
+ ."\n\t\t\t\t
\n\t\t\t\t\t
Entstehung
"
+ ."\n\t\t\t\t\t
".$entsteh."
\n\t\t\t\t
"
+ ."\n\t\t\t\t
"
+ ."\n\t\t\t\t\t
letz. Fortf
"
+ ."\n\t\t\t\t\t
";
foreach($arrn AS $val) { // Zeile f. jedes Element des Array
echo trim($val, '"')." ";
}
echo "
"
- ."\n\t\t
"
- ."\n\t\t
"
-."\n\t
\n
\n
";
-// echo "\n
\n\t
Finanzamt
\n\t
".$finanzamt." ".$finame . "
\n
";
-// Ende Seitenkopf
-
-echo "\n"
-."\n
weitere Auskunft:
" // oben rechts von der Tabelle
-."\n
";
-
-// ** G e b i e t s z u g e h o e r i g k e i t **
-// eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben
-// Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist?
-echo "\n
\n\t
Gebiet:
";
-
-// G e m e i n d e
-$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3 AND endet IS NULL;";
-
-$v = array($bezirk,$kreis,$gemeinde);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
-if (!$res) {
- echo "\n
";
-if ($showkey) {echo "(".$gemeinde.") ";}
-// Link zur FS-Historie (passt nicht ganz in die Zeile "Gemeinde", aber gut unter "weitere Auskunft")
-echo $gnam."
\n\t
"
- ."\n\t\t
"
+ ."\n\t\t\t\t
"
+ ."\n\t\t\t
"
+."\n\t\t\n\t\n
";
+
+echo "\n\n
"; // FS-Teil 6 Spalten
+echo "\n
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
" // 1-5 in erster Zeile kein "colspan" verwenden
+ ."\n\t\t
\n\t\t
weitere Auskunft:
" // 6
+."\n
";
+
+echo "\n
" // Zeile: G e b i e t s z u g e h o e r i g k e i t Gemeinde / Kreis / Regierungsbezirk
+ ."\n\t
";
-pg_free_result($res);
-
-// K r e i s
-$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2 AND endet IS NULL;";
-$v = array($bezirk,$kreis);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
-if (!$res) {
- echo "\n
";
-pg_free_result($res);
-
-// R e g - B e z
-$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 AND endet IS NULL;";
-$v = array($bezirk);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
-if (!$res) {
- echo "\n
";
-pg_free_result($res);
-// ENDE G e b i e t s z u g e h o e r i g k e i t
+ ."\n\t\t"
+ ."\n\t" // 6
+."\n";
// ** L a g e b e z e i c h n u n g **
// Lagebezeichnung M I T Hausnummer
-
// ax_flurstueck >weistAuf> AX_LagebezeichnungMitHausnummer
$sql="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung, s.gml_id AS kgml
@@ -316,5 +271,5 @@
$j=0;
$kgmlalt="";
- while($row = pg_fetch_array($res)) {
+ while($row = pg_fetch_assoc($res)) {
$sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name
if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau
@@ -324,19 +279,15 @@
}
$hsnr=$row["hausnummer"];
- echo "\n
";
}
@@ -419,136 +365,22 @@
}
pg_free_result($res);
-// ENDE L a g e b e z e i c h n u n g
-
-// ** N U T Z U N G ** Gemeinsame FlÀche von NUA und FS
-// Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben
-
-/* N U T Z U N G C l a s s i c (alt)
-$sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe,
-st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla
-FROM ax_flurstueck f, nutzung n JOIN nutzung_meta m ON m.nutz_id=n.nutz_id
-LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class
-WHERE f.gml_id= $1 AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true
-AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05
-AND f.endet IS NULL ORDER BY schnittflae DESC;";
-
-$v = array($gmlid);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
-if (!$res) {
- echo "\n
";
- if ($class == 0) {
- if ($showkey) {echo "(".$nutzid.") ";}
- echo $title; // Name der Tabelle
- } elseif ( ($fldclass == "Funktion" OR $fldclass == "Vegetationsmerkmal") AND $label != "") { // Kurze Anzeige
- if ($showkey) {echo "(".$nutzid."-".$class.") ";}
- if ($blabla = "") {
- echo $label;
- } else {
- echo "".$label."";
- }
- } else { // ausfuehrlichere Anzeige
- echo $title; // NUA-Tabelle
- if ($class != "") { // NUA-SchlÃŒssel
- echo ", ".$fldclass.": "; // Feldname
- if ($showkey) {echo "(".$nutzid."-".$class.") ";}
- if ($label != "") { // Bedeutung dazu wurde erfasst
- if ($blabla = "") {
- echo $label;
- } else {
- echo "".$label."";
- }
- } else { // muss noch erfasst werden
- echo $class." "; // SchlÃŒssel als Ersatz fÃŒr Bedeutung
- }
- }
- }
- if ($info != "") { // manchmal ein zweites Zusatzfeld (wie entschlÃŒsseln?)
- echo ", ".$fldinfo."=".$info;
- }
- if ($zus != "") { // Zustand
- echo "\n\t\t ";
- if ($showkey) {echo "(".$zus.") ";}
- echo "";
- switch ($zus) {
- case 2100: echo "AuÃer Betrieb, stillgelegt, verlassen"; break;
- case 4000: echo "Im Bau"; break;
- case 8000: echo "Erweiterung, Neuansiedlung"; break;
- default: echo "Zustand: ".$zus; break;
- }
- echo "";
- }
- if ($nam != "") {echo " Name: ".$nam;}
- if ($bez != "") {echo " Bezeichnung: ".$bez;}
-
- echo "
";
- echo "\n\t
";
- switch ($grupp) { // Icon nach 4 Objektartengruppen
- case "Siedlung": $ico = "Abschnitt.png"; break;
- case "Verkehr": $ico = "Strassen_Klassifikation.png"; break;
- case "Vegetation": $ico = "Wald.png"; break;
- case "GewÀsser": $ico = "Wasser.png"; break;
- default: $ico = "Abschnitt.png"; break;
- }
- // Icon ist auch im Druck sichtbar, class='noprint' ?
- echo "";
- echo "
";
- echo "\n
";
- $j++;
-}
- E N D E N U T Z U N G C l a s s i c */
-
-/* Status "Nutzung":
-
- Die Classic-Tabelle "nutzung" ist eine Zusammenfassung aller Tabellen mit Nutzungs-FlÀchen
- Die Classic-Tabelle "nutzung_meta" zeigt die Kategorie und Gruppe des Nutzungs-Abschnitts an.
-
- Aus der norGIS-Struktur wird ersatzweise VORLÃUFIG die Tabelle "nutz_21" verwendet,
- die das alte ALB-Format der Nutzungs-Abschnitte von FlurstÃŒcken simuliert.
- Hier finden sich bereits verschnittene FlÀchen, aber die gml_id fehlt.
-
- Die EntschlÃŒsselung der Nutzungsart in den verschiedenen ALKIS-Varianten ist darin unterentwickelt.
- Diese ist eigentlich fÃŒr jede der getrennten Tabellen der Gruppe Nutzungsart individuell.
- Die Classic-Lösung mit 2 Zusatzfeldern war schon sehr pauschalisiert, aber
- durch die RÃŒck-Konvertierung in ALB-Strukturen in der norGIS-Version ist das zu stark vereinfacht.
- z.B. wird "WohnbauflÀche" mit der Zusatzeigenschaft "Art der Bebauung": 'Offen'
- nun zur Nutzungsart "Offen".
- Durch JOIN auf die "alkis_elemente" mit einem Teil des SchlÌssels wird das zur "WohnbauflÀche, Offen".
- Es sollte eine Tabellen-Struktur bereit gestellt werden, die auch aussagt, dass der Wert "Offen" zur
- Zusatz-Eigenschaft "Art der Bebauung" gehört. Dazu muss das PostProcessing erweitert werden. */
-
+
+/* Status "N u t z u n g":
+Die Classic-Tabelle "nutzung" ist eine Zusammenfassung aller Tabellen mit Nutzungs-FlÀchen
+Die Classic-Tabelle "nutzung_meta" zeigt die Kategorie und Gruppe des Nutzungs-Abschnitts an.
+
+Aus der norGIS-Struktur wird ersatzweise VORLÃUFIG die Tabelle "nutz_21" verwendet,
+die das alte ALB-Format der Nutzungs-Abschnitte von FlurstÃŒcken simuliert.
+Hier finden sich bereits verschnittene FlÀchen, aber die gml_id fehlt.
+
+Die EntschlÃŒsselung der Nutzungsart in den verschiedenen ALKIS-Varianten ist darin unterentwickelt.
+Diese ist eigentlich fÃŒr jede der getrennten Tabellen der Gruppe Nutzungsart individuell.
+Die Classic-Lösung mit 2 Zusatzfeldern war schon sehr pauschalisiert, aber
+durch die RÃŒck-Konvertierung in ALB-Strukturen in der norGIS-Version ist das zu stark vereinfacht.
+z.B. wird "WohnbauflÀche" mit der Zusatzeigenschaft "Art der Bebauung": 'Offen'
+nun zur Nutzungsart "Offen".
+Durch JOIN auf die "alkis_elemente" mit einem Teil des SchlÌssels wird das zur "WohnbauflÀche, Offen".
+Es sollte eine Tabellen-Struktur bereit gestellt werden, die auch aussagt, dass der Wert "Offen" zur
+Zusatz-Eigenschaft "Art der Bebauung" gehört. Dazu muss das PostProcessing erweitert werden. */
$sql="SELECT e.definition, trim(both FROM n.nutzsl) AS nutzsl, trim(both FROM n.fl) AS fl, trim(both FROM s.nutzung) AS nutzung
@@ -565,7 +397,6 @@
if ($debug > 2) {echo "\n
";
-// ENDE N U T Z U N G
-
-
-// K L A S S I F I Z I E R U N G
-
-// Klassifizierung nach W a s s e rrecht
-/*
- // Tabelle immer leer?
-$sql="SELECT h.v, w.artderfestlegung, st_area(st_intersection(w.wkb_geometry, f.wkb_geometry)) AS schnittflae, f.amtlicheflaeche, st_area(f.wkb_geometry) as fsgeomflae
-FROM ax_flurstueck f
-JOIN ax_klassifizierungnachwasserrecht w
- ON st_intersects(w.wkb_geometry, f.wkb_geometry) AND st_area(st_intersection(w.wkb_geometry, f.wkb_geometry)) > 0.05
-LEFT JOIN alkis_wertearten h
- ON cast(w.artderfestlegung AS character varying) = h.k AND h.element='ax_klassifizierungnachwasserrecht' AND h.bezeichnung='artderfestlegung'
-WHERE f.gml_id = $1 AND f.endet IS NULL AND w.endet IS NULL ORDER BY schnittflae DESC";
-
-$v = array($gmlid);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
-if (!$res) {echo "\n
";
-}
-// Klassifizierung nach S t r a à e n recht
- // Tabelle immer leer?
-*/
+ ."\n\t" // 6
+ ."\n";
// B o d e n s c h À t z u n g
@@ -668,10 +461,9 @@
// BodenschÀtzungs-Abschnitte mit FlurstÌcken verschneiden, Spalten entschlÌsseln
-$sql="SELECT
- kulturart.k AS kulturartk, kulturart.v AS kulturartv,
- bodenart.k AS bodenartk, bodenart.v AS bodenartv,
+$sql="SELECT kulturart.k AS kulturartk, kulturart.v AS kulturartv,
+ bodenart.k AS bodenartk, bodenart.v AS bodenartv,
zustbod.v AS zustbodv,
b.entstehungsartoderklimastufewasserverhaeltnisse AS entsteh, b.sonstigeangaben,
- b.bodenzahlodergruenlandgrundzahl as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl,
+ b.bodenzahlodergruenlandgrundzahl as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl,
b.jahreszahl, st_area(st_intersection(b.wkb_geometry, f.wkb_geometry)) AS schnittflae
FROM ax_flurstueck f
@@ -686,12 +478,9 @@
$res = pg_execute("", $v);
if (!$res) {echo "\n
";}
}
-
$sql_str="SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze)
AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL),wkb_geometry);";
@@ -801,25 +581,18 @@
if ($debug > 2) {echo "\n
SQL= ".$sql_str." $1 = gml_id = '".$gmlid."'
";}
}
-
if (pg_num_rows($res_bodeneuordnung) > 0 OR pg_num_rows($res_strittigeGrenze) > 0) {
echo "\n
"
- ."\n\t
"
- ."Hinweise:
\n\t
"
- ."\n
";
-
+ ."\n\t
" // 1
+ ."Hinweise:
\n\t
\n";// 2-6
if (pg_num_rows($res_bodeneuordnung) > 0) {
-
- while ($row = pg_fetch_array($res_bodeneuordnung)) { // 3 Zeilen je Verfahren
-
- // Zeile 1 - kommt immer, darum hier den Link
- echo "\n
"
- ."\n\t
Bodenrecht
"
- ."\n\t
Festlegung:
" // "Art der Festlegung" zu lang
- ."\n\t
";
+ while ($row = pg_fetch_assoc($res_bodeneuordnung)) { // 3 Zeilen je Verfahren
+ echo "\n
" // Zeile 1 - kommt immer, darum hier den Link
+ ."\n\t
";
}
-
- // Zeile 3
- $vbez=$row['verf_bez']; // ist nicht immer gefÃŒllt
+ $vbez=$row['verf_bez']; // Zeile 3, ist nicht immer gefÃŒllt
$vnam=$row['verf_name']; // noch seltener
if ($vbez != "") {
@@ -872,174 +641,60 @@
echo "\n
";
-// G R U N D B U C H
-echo "\n\n
"
- ."\n
"
- ."\n\t
"
- ."\n\t\t
Grundbücher
"
- ."\n\t
"
- ."\n\t
"
- ."\n\t\t
"
- ."\n\t\t\tohne Eigentümer";
- } else {
- echo "&eig=j#gb' title='Umschalter: Flurstücks- und Eigentümernachweis'>mit Eigentümer "
- ."";
+// B U C H U N G S S T E L L E N zum FS
+$bartgrp=""; // Buchungsart
+$barttypgrp=""; // Buchungsart Typ
+if ($gml_buchungsstelle == '') {echo "\n
Keine Buchungstelle zum Flurstück gefunden.
";}
+echo "\n
"; // ALLE Buchungen und EigentÃŒmer in 4 Spalten EINER Tabelle ausgeben
+ $stufe=1; // SchleifenzÀhler Tiefe
+ $gezeigt=buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid); // die ("dienende") Buchung anzeigen, wenn nicht fiktiv. Liefert true/false
+
+ $anzber=ber_bs_zaehl($gml_buchungsstelle); // Anzahl berechtigte Buchungen (nÀchste Stufe) zu dieser Buchung ermitteln
+ $verf_next = array($gml_buchungsstelle); // Start Recursion mit einem Element
+ //if ($debug > 2) {echo "
Nach Stufe ".$stufe.", Anzahl: ". $anzber ."
";}
+
+ while ($anzber > 0 ) { // Stufe - recursiv in die Tiefe, solange es was zu verfolgen gibt
+ $verf_akt=$verf_next; // die nÀchste Stufe als aktuell Ìbernehmen ..
+ $verf_next=array(); // .. und zum AuffÃŒllen leeren
+ $stufe++;
+ $i=0; // SchleifenzÀhler Elemente
+ foreach($verf_akt as $gml_ber_bs) {
+ $i++;
+ if (ber_bs_zaehl($gml_ber_bs) > 0) {
+ $verf_neu=ber_bs_anzg($gml_ber_bs, $eig, $gmlid); // Anzeige ber. Buchungst., ggf. mit EigentÃŒmer.
+ $anz_neu=count($verf_neu); // Das Ergebnis zÀhlen
+ // if ($debug > 2) {echo "
Weiter zu verfolgen: Stufe ".$stufe.", Element ".$i.", Anzahl: ".$anz_neu."
";}
+ if ($anz_neu > 0) { // wenn neue geliefert
+ $verf_next=array_merge($verf_next, $verf_neu); // die neuen an die Sammlung heften
}
- echo "\n\t\t"
- ."\n\t"
- ."\n"
-."\n
";
-
-// B U C H U N G S S T E L L E N zum FS (istGebucht)
-$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.v AS bart, b.d AS barttitle
-FROM ax_flurstueck f JOIN ax_buchungsstelle s ON s.gml_id=f.istgebucht
-LEFT JOIN alkis_wertearten b ON cast(s.buchungsart AS character varying)=b.k AND b.element='ax_buchungsstelle' AND b.bezeichnung='buchungsart'
-WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL ORDER BY s.laufendenummer;";
-
-$v = array($gmlid);
-$ress = pg_prepare("", $sql);
-$ress = pg_execute("", $v);
-if (!$ress) {
- echo "\n
";}
- }
-}
-$bs=0; // Z.BuchungsStelle
-while($rows = pg_fetch_array($ress)) { // Schleife Buchungs-Stelle
- $gmls=$rows["gml_id"]; // gml b-Stelle
- $lfd=$rows["lfd"]; // BVNR
- $barttitle=htmlentities($rows["barttitle"], ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet
-
- // B U C H U N G S B L A T T zur Buchungsstelle (istBestandteilVon)
- $sql="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, wb.v AS blattartv, wb.d AS blattartd, z.bezeichnung
- FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON b.gml_id=s.istbestandteilvon
- LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.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 s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL
- ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
-
- $v=array($gmls);
- $resg=pg_prepare("", $sql);
- $resg=pg_execute("", $v);
- if (!$resg) {
- echo "\n
";
-
- // +++ Weitere Felder ausgeben? BeschreibungDesUmfangsDerBuchung
- if ($rows["sond"] != "") {
- echo "\n
Verbunden mit dem Sondereigentum ".$rows["sond"]."
";
- }
- if ($rows["nrpl"] != "") {
- echo "\n
Nummer ".$rows["nrpl"]." im Aufteilungsplan.
";
- }
-
- // E I G E N T U E M E R, zum GB
- // Person <-benennt< AX_Namensnummer >istBestandteilVon-> AX_Buchungsblatt
- if ($eig=="j") { // Wahlweise mit/ohne EigentÃŒmer
- $n = eigentuemer($gmlg, false, ""); // hier ohne Adresse
- if ($n == 0) {
- if ($blattkeyg == 1000) {
- echo "\n
Keine Namensnummer gefunden.
";
- } else {
- echo "\n
ohne Eigentümer.
";
- }
- }
- }
-
- // B e r e c h t i g t e B u c h u n g e n ... zu dieser Buchungs-Stelle. Optional.
- if ($berbu=="j") { // Wahlweise anzeigen
- echo "\n\n
Berechtigte Buchungen
"
- ."\n
".$cnt_ber." Buchungen mit Rechten an der Buchung ".$lfd." auf ".$blattartg." ".$blatt." von ".$beznam.":
";
- ber_bs_anz($gmls, $eig); // berechtigte Buchungstellen und GB-BlÀtter Anzeigen, und ggf. auch mit EigentÌmer
- }
- $bl++; // ZÀhl Blatt
- }
- if ($bl == 0) {echo "\n
";}
+ }
+ } // Ende Buchungs-Array in der Stufe
+ $anzber=count($verf_next); // Sammlung auf Stufe zÀhlen, Steuert die Schleife.
+ //if ($debug > 2) {echo "
Nach Stufe ".$stufe.", Anzahl: ". $anzber ."
";}
+ } // Ende Stufe
+// Diese aufwÀndige Analyse mit Arrays geht davon aus, dass es Verzweigungen auf oberen Stufen geben könnte,
+// so dass mehrere Zweige parallel weiter zu verfolgen sind. In der Praxis ist eine Verzweigung bisher nur in der letzten Stufe vorgekommen.
+// Eine weniger aufwÀndige Lösung (ohne Arrays) wÌrde reichen, wenn das immer so wÀre:
+/* Alte Version (einfacher):
+ $gezeigt = buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid);
+ $anzber = ber_bs_zaehl($gml_buchungsstelle);
+ if ($anzber > 0 ) {
+ $verfolg = ber_bs_anzg($gml_buchungsstelle, $eig, $gmlid);
+ while ($verfolg != "") {
+ $valt=$verfolg;
+ $verfolg = ber_bs_anzg($valt, $eig, $gmlid);
+ }
+ } */
+echo "\n
\n\n";
+
pg_close($con);
echo <<
-
-
END;
-footer($gmlid, $_SERVER['PHP_SELF']."?", "&eig=".$eig."&berbu=".$berbu);
+echo "\n\t \n";
+
+footer($gmlid, $_SERVER['PHP_SELF']."?", "&eig=".$eig);
?>
Index: trunk/info/info/alkisn/alkisauszug.css
===================================================================
--- trunk/info/info/alkisn/alkisauszug.css (revision 401)
+++ trunk/info/info/alkisn/alkisauszug.css (revision 402)
@@ -19,5 +19,6 @@
2017-10-11 BodenschÀtzung
2017-10-17 td.nwlink min-width
- 2017-12-20 td.dbg
+ 2017-12-20 td.dbg
+ 2018-04-23 Spaltenbreiten
*/
body {background-color: #FEFFFE;}
@@ -44,5 +45,5 @@
p.zus {margin: 2pt; padding: 2pt; border:1px dotted maroon; background: white;} /* Zusatz zum Eigent., gerahmt */
p.avh {font-style: italic; color: navy;} /* Anteilsverhaeltnis */
-p.ant {font-style: italic; position: relative;left: 12px;} /* Anteil am FS */
+p.ant {font-style: italic; position: relative;} /* Anteil am FS left: 12px;*/
p.geig {color: navy;} /* GB-Nachw. Eigentuemer Name */
p.gadr {color: maroon; margin-top: 1pt;} /* GB-Nachw. Eigentuemer Adresse */
@@ -104,5 +105,5 @@
td.emz {width: 45px; padding-right: 4px; padding-left: 4px; text-align: right;} */
td.kurz {width: 26px; padding-left: 4px;}
-td.nanu {width: 80px;} /* Namensnummer */
+td.nanu {width: 50px;} /* Namensnummer */
td.sond, p.sond {font-size: 9pt; font-style: italic; background-color: white;
border: 1px dotted silver; padding: 6px;} /* Sondereigentumsbeschreibung */
Index: trunk/info/info/alkisn/alkisexport.php
===================================================================
--- trunk/info/info/alkisn/alkisexport.php (revision 401)
+++ trunk/info/info/alkisn/alkisexport.php (revision 402)
@@ -30,4 +30,5 @@
ToDo:
+ - Abruf FlurstÌck sollte auch mit "fskennz" (ggg-ff-zzz/nn) statt "gml-id" möglich sein
- In Dateiname den StraÃennamen statt der gmlid verwenden? (Umlaute?)
- in alkislage.php fÃŒr den Typ "ohne Haunummer" den Export mit strasse und haus=o verlinken
@@ -50,5 +51,5 @@
$lagehsnr="";
$salt="";
- while($row = pg_fetch_array($res)) {
+ while($row = pg_fetch_assoc($res)) {
if ($j > 0) {$lagehsnr.=", ";}
$sneu=$row["bezeichnung"];
@@ -202,5 +203,5 @@
// Datenfelder auslesen
-while($row = pg_fetch_array($res)) {
+while($row = pg_fetch_assoc($res)) {
$i++; // Zeile der Tabelle
$rechnen=true; // Formel in letzte Spalte?
Index: trunk/info/info/alkisn/alkisfkt.php
===================================================================
--- trunk/info/info/alkisn/alkisfkt.php (revision 401)
+++ trunk/info/info/alkisn/alkisfkt.php (revision 402)
@@ -14,4 +14,8 @@
2017-11-03 neue function werteliste()
2017-12-20 Default Anzeigewert "EigentÃŒmer" im Link fÃŒr leere EigentÃŒmerart, JÃŒngste Adresse zur Person verwenden.
+ 2018-04-23 Berechtigte Buchungen im FS-Nachw. verbessern. Neue Spalte statt Ãberschriften fÃŒr "EigentÃŒmer" und "Berechtigte Buchungen".
+
+++ ToDo:
+ ++ Parameter $lnkclass in eigentuemer() und $jfenster in buchung_anzg() vereinheitlichen
*/
@@ -21,5 +25,5 @@
// Den URL-Parameter "&showkey=j/n" umschalten lassen.
// $append wird angehaengt wenn gefuellt. Anwendung: &eig=j bei FS-NW, <yp=m/p/o bei Lage
- global $gkz, $showkey, $hilfeurl, $auth;
+ global $gkz, $showkey, $hilfeurl, $auth, $debug;
// S c r e e n - Foot
@@ -38,9 +42,12 @@
echo "\n\t\t
";
$mylink ="\n\t\t\tSchlüssel aus";
} else {
echo $mylink."&showkey=j' title='Verschlüsselungen anzeigen'>Schlüssel ein";
+ }
+ // TemporÀr eine Ansicht ohne Entwicklungsumgebung
+ if ($debug > 0) {
+ echo " | ".$mylink."&nodebug=j' title='Debug-Ausgaben temporär abschalten'>Ansicht ohne Testausgaben";
}
echo "\n\t\t
";
@@ -57,94 +64,185 @@
echo "\n
Mapbender-Benutzer: ".$customer."
";
}
-
return 0;
}
-function ber_bs_hinw($gmls, $gmlf) {
- // Berechtigte Buchungs-Stellen - Hinweis.
- // Unter dem Grundbuch-Link den Hinweis auf "berechtigte Buchungssstellen" anzeigen und einen Umschalter.
- global $gkz, $debug, $showkey, $berbu, $eig;
+function ber_bs_zaehl($gmls) {
+ // Berechtigte Buchungs-Stellen zaehlen.
// Buchungstelle dienend <(Recht)an< Buchungstelle herrschend
- $sql ="SELECT count(sh.gml_id) AS anz, sh.buchungsart, a.v "
- ."FROM ax_buchungsstelle sd JOIN ax_buchungsstelle sh ON sd.gml_id=ANY(sh.an) "
- ."LEFT JOIN alkis_wertearten a ON sh.buchungsart=cast(a.k AS integer) "
- ."WHERE sd.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND a.element='ax_buchungsstelle' and a.bezeichnung='buchungsart' "
- ."GROUP BY sh.buchungsart, a.v;";
-
+ $sql ="SELECT count(sh.gml_id) AS anz FROM ax_buchungsstelle sd JOIN ax_buchungsstelle sh ON sd.gml_id=ANY(sh.an) "
+ ."WHERE sd.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL;";
$v = array($gmls); // GML dienende Buchungs-Stelle
$resan = pg_prepare("", $sql);
$resan = pg_execute("", $v);
- if (!$resan) {
- echo "\n
";
- }
- return $cnt; // Funktionswert = Anzahl der berechtigten Buchungen
-}
-
-function ber_bs_anz($gmls, $eig) {
- // Berechtigte Buchungsstellen (+ BlÀtter, EigentÌmer) anzeigen innerhalb eines FS-Nachw.
- // Im FS-Nachweis werden auch die berechtigten GrundbÃŒcher mit ihren EigentÃŒmern angezeigt.
- // Also z.B. zu einem "fiktiven Blatt" auch die GrundbuÃŒcher mit dem "Wohnungs-/Teileigentum"
- global $gkz, $debug, $showkey, $idanzeige;
-
- // Herrschende (berechtigte) Buchungsstellen ausgeben - Beginn
- // sd=Buchungstelle herrschend >(Recht)an> sd=Buchungstelle dienend >istBestandteilVon> BLATT -> Bezirk
- $sql="SELECT sd.gml_id AS s_gml, " // Buchungs-Stelle dienend
- ."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.v AS bart, w.v AS blattartv "
- ."FROM ax_buchungsstelle sd "
- ."JOIN ax_buchungsstelle sh ON sd.gml_id=ANY(sh.an) "
+ return $anz; // Funktionswert = Anzahl der berechtigten Buchungen
+}
+
+function buchung_anzg($gmlbs, $eig, $jsfenster, $gml_fs) {
+ // 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)
+ 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.v AS bart, a.d AS barttitle, w.v 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 alkis_wertearten a ON sh.buchungsart=cast(a.k AS integer) AND a.element='ax_buchungsstelle' and a.bezeichnung='buchungsart' " // entschlÃŒsseln Buchungsart
- ."LEFT JOIN alkis_wertearten w ON b.blattart=w.k AND w.element='ax_buchungsblatt' and w.bezeichnung='blattart' " // entschlÃŒsseln Blatt-Art
- ."WHERE sd.gml_id= $1 AND sd.endet IS NULL AND sh.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL "
- ."ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
-
- $v = array($gmls); // id dienende Buchungsstelle
+ ."LEFT JOIN alkis_wertearten a ON sh.buchungsart=cast(a.k AS integer) AND a.element='ax_buchungsstelle' and a.bezeichnung='buchungsart' " // entschl. Buchungsart
+ ."LEFT JOIN alkis_wertearten w ON b.blattart=w.k AND w.element='ax_buchungsblatt' and w.bezeichnung='blattart' " // 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 "\n
";} // TEST:
-
- // Schleife Ebene 2: andere Namensnummern
- // Beziehung 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.
+ } else { // Namensnummer
+ echo "\n\t\t
";}
+
+ // 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 benennt> Person ist KEIN Array!
+ while($rowp = pg_fetch_assoc($resp)) { // Schleife weglassen: "benennt" ist KEIN Array!
$diePerson=""; //++ Anrede?
if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";}
@@ -423,40 +461,31 @@
if ($rowp["geburtsname"] <> "") {$diePerson.=", geb. ".$rowp["geburtsname"];}
$diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute
-
- if ($i > 0) { // Spalte 1 enthÀlt die Namensnummer, nur in Zeile 0
- echo "\n
";
- if ($showkey AND $eiartkey != '') { // oft leer
- echo "".$eiartkey." ";
- }
- 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
"
- ."\n\t
\n
";
+ ." \n\t\t\t"
+ ."\n\t\t
" // 4
+ ."\n\t
";
if ($mitadresse) {
- // Schleife 3: A d r e s s e (OPTIONAL)
+ // 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;";
- $gmlp=$rowp["gml_id"]; // Person
- $v = array($gmlp);
+ $v = array($gmlpers);
$resa = pg_prepare("", $sqla);
$resa = pg_execute("", $v);
-
if (!$resa) {
echo "\n\t
"; // 4
+ }
+ } // Ende Loop Adresse zur Person
pg_free_result($resa);
}
@@ -489,35 +524,29 @@
$i++; // cnt Person
- // Anteil als eigene Tab-Zeile:
$zaehler=$rown["zaehler"];
- if ($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
\n\t
" // Sp. 1
- ."\n\t
".$zaehler."/".$nenner." Anteil
"
- ."\n\t
\n
"; // Sp. 3
+ 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
- if ($i == 0) { // Keine Person. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler
- if ($rechtsg != 9999) {
+ 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\t
Rechtsgemeinschaft = '".$rechtsg."'
";}
+ } else {
echo "\n
(Die Person mit der ID '".$gmlpers."' fehlt im Datenbestand)
";
- } else {
- if ($debug > 1) { // nur bei Entwicklung
- echo "\n\t\t
";
-
-// FS >istgebucht> GS >istbestandteilvon> GB.
-$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart,
-s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, wa.v AS blattartv, wb.v AS bart
-FROM ax_flurstueck f
-JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id
-JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id
-LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk
-LEFT JOIN alkis_wertearten wa ON cast(b.blattart AS character varying)=wa.k AND wa.element='ax_buchungsblatt' AND wa.bezeichnung='blattart'
-LEFT JOIN alkis_wertearten wb ON cast(s.buchungsart AS character varying)=wb.k AND wb.element='ax_buchungsstelle' AND wb.bezeichnung='buchungsart'
-WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL
-ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
-
-$v=array($gmlid);
-$resg=pg_prepare("", $sql);
-$resg=pg_execute("", $v);
-if (!$resg) {
- echo "\n
";
-
- // E I G E N T U E M E R
- if ($blattkey == 5000) { // kein Eigent. bei fiktiv. Blatt
- echo "\n
Keine Angaben zum Eigentum bei fiktivem Blatt
\n"
- ."\n
Siehe weitere Grundbuchblätter mit Rechten an dem fiktiven Blatt.
";
- } else { // Ausgabe Name in Function
- $n = eigentuemer($rowg["gml_id"], false, "imFenster"); // ohne Adressen
- if ($n == 0) { // keine NamensNr, kein Eigentuemer
- echo "\n
";
- }
- }
-}
-pg_free_result($resg);
+ $nochmehr = ber_bs_anzg($gml_buchungsstelle, "j", ""); // wenigstens eine Buchg. zeigen
+ if ($nochmehr != "") { // keine Verfolgung
+ echo "\n\t
\n\t\t
Weitere berechtigte Buchungen siehe Flurstücksnachweis.
\n\t
";
+ }
+ }
+ }
+echo "\n
\n";
?>
Index: trunk/info/info/alkisn/alkisbestnw.php
===================================================================
--- trunk/info/info/alkisn/alkisbestnw.php (revision 401)
+++ trunk/info/info/alkisn/alkisbestnw.php (revision 402)
@@ -11,8 +11,8 @@
2017-06-08 Validierung Eingabeparameter, Farbwechsel der Tabelle je GrundstÃŒck, Feinschliff und HTML-Profilierung
2017-10-09 SchlÌssel der Blattart bei berechtigten BlÀttern, sauber filtern auf endet IS NULL
+ 2018-04-23 Blatt und EigentÃŒmer in eine Tabelle.
*/
session_start();
-
-$showkey="n"; // Var. initalisieren
+$showkey="n"; $nodebug=""; // Var. initalisieren
$cntget = extract($_GET); // Parameter in Variable umwandeln
@@ -22,4 +22,5 @@
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");}
require_once("alkis_conf_location.php");
@@ -43,11 +44,14 @@
Fehler beim Verbinden der DB";
// G R U N D B U C H
-$sql="SELECT g.gml_id, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung AS nr, g.blattart, wb.v AS blattartv, wb.d AS blattartd,
-b.gml_id, b.bezirk, b.bezeichnung AS beznam, d.gml_id, d.land, d.bezeichnung, d.stelle, d.stellenart, wd.v AS stellev
-FROM ax_buchungsblatt g
+$sql="SELECT g.gml_id, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung AS blatt, g.blattart, wb.v AS blattartv, wb.d AS blattartd,
+b.gml_id, b.bezirk, b.bezeichnung AS beznam, d.gml_id, d.land, d.bezeichnung, d.stelle, d.stellenart, wd.v AS stellev FROM ax_buchungsblatt g
LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk
LEFT JOIN ax_dienststelle d ON b.land=d.land AND b.stelle=d.stelle
@@ -64,11 +68,14 @@
if ($debug > 2) {echo "\n
";
Index: trunk/info/info/alkisn/alkisnamstruk.php
===================================================================
--- trunk/info/info/alkisn/alkisnamstruk.php (revision 401)
+++ trunk/info/info/alkisn/alkisnamstruk.php (revision 402)
@@ -12,8 +12,8 @@
2017-10-17 Deutsches Datumsformat im Geburtsdatum
2017-12-20 Anlass und Datum zur Adresse ausgeben, wenn es mehrere gibt oder SchlÃŒssel angefordert werden
+ 2018-04-23 &nodebug
*/
session_start();
-
-$multiadress="n"; $showkey="n"; // Var. aus Parameter initalisieren
+$multiadress="n"; $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren
$cntget = extract($_GET); // Parameter in Variable umwandeln
@@ -24,4 +24,5 @@
if ($showkey == "j") {$showkey=true;} else {$showkey=false;}
if (!preg_match('#^[j|n]{0,1}$#', $multiadress)) {die ("Eingabefehler multiadress");}
+if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");}
require_once("alkis_conf_location.php");
@@ -47,7 +48,9 @@
ALKIS Name id=".$gmlid." \n"
+// Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten.
+// Manuell an die URL anfÌgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht.
+if ($nodebug == "j") {$debug=0;}
+
+echo "
";
+ if ($showkey) {echo "".$gmkgnr." ";}
+ echo $gemkname."
"
+ ."\n\t\t\t
".$flurnummer."
"
+ ."\n\t\t\t
".$flstnummer."
"
+ ."\n\t\t
"
+ ."\n\t\t
"
+ ."\n\t
"
+ ."\n\t
"
+ ."\n\t\t
" // Links zu anderem Nachweis
+ ."\n\t\t\tFlurstück "
+ ."\n\t\t
"
+ ."\n\t
"
+ ."\n
"
+."\n
";
echo "\n
Flurstücksfläche: ".number_format($flstflaeche,0,",",".") . " m²
";
@@ -129,6 +132,5 @@
$gebflsum=0;
echo "\n\n
";
- // T-Header
- echo "\n
\n"
+ echo "\n
" // T-Header
."\n\t
Name
"
."\n\t
Fläche
"
@@ -140,11 +142,10 @@
."\n\t
Haus
"
."\n
";
- // T-Body
- while($rowg = pg_fetch_array($resg)) {
+ while($rowg = pg_fetch_assoc($resg)) { // T-Body
$gebnr = $gebnr + 1;
$ggml=$rowg["gml_id"];
$gebflsum=$gebflsum + $rowg["schnittflae"];
- $gnam= trim(trim($rowg["name"], "{}"), '"'); // Gebaeude-Name ist ein Array in der DB: '{"A","B"}'
- // Mehrfachbelegung nur theoretisch. Entklammern reicht. Mal mit und mal ohne "" drum !?
+ $gnam=trim(trim($rowg["name"], "{}"), '"'); // Gebaeude-Name ist ein Array in der DB: '{"A","B"}'
+ // Mehrfachbelegung nur theoretisch. Entklammern reicht. Mal mit und mal ohne "" drum!?
/* SELECT name FROM ax_gebaeude WHERE NOT name IS NULL AND array_length(name, 1) > 1; */
$gfktk=htmlentities($rowg["gebaeudefunktion"], ENT_QUOTES, "UTF-8"); // Geb.-Funktion Key
@@ -174,5 +175,5 @@
."\n\t
"; // Sp. 1 Name
if ($gnam != "") {echo "".$gnam." ";}
- echo "\n\t
";
- // 0 bis N Lagebezeichnungen mit Haus- oder Pseudo-Nummer, alle in ein TD zu EINEM GebÀude
-
+ // 2 Spalten mit Links zu anderen Nachweisen: 1. Lage, 2. GebÀude
+ echo "\n\t
"; // Link Lage
+
+ // Zu EINEM GebÀude mehrere Lagebezeichnungen mit Haus- oder Pseudo-Nummer möglich, alle in ein TD
// HAUPTgebÀude Geb >zeigtAuf> lage (mehrere)
$sqll="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer "
@@ -200,5 +202,5 @@
."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ";
- // oder NEBENgebÀude Geb >hat> Pseudo
+ // UNION - oder NEBENgebÀude Geb >hat> Pseudo
$sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer "
."FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat "
@@ -207,5 +209,4 @@
$sqll.="ORDER BY bezeichnung, hausnummer;";
-
$v = array($ggml);
$resl = pg_prepare("", $sqll);
@@ -215,5 +216,5 @@
if ($debug > 2) {echo "\n
"; // Tab. Kennz.
- // ToDo: !! kleiner, wenn ltyp=0 und die Schluesselfelder leer sind
+ // ToDo: kleiner, wenn ltyp=0 und die Schluesselfelder leer sind
echo "\n\t\t