pg_prepare + pg_execute) 2011-11-01 *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen 2011-11-02 Parameter debug in function eigentuemer 2011-11-17 Variable ($debug, $idanzeige, $showkey) von Parameter nach global. Die heißen in allen Programmteilen gleich. 2014-01-22 Eigentuemerart: Mehr Werte und Zugriff auf DB-Schlüssel-Tabelle 2014-02-06 Korrektur Eigentümerart 2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 2014-09-15 Bei Relationen den Timestamp abschneiden 2014-09-30 Umbenennung Schlüsseltabellen (Prefix), Rückbau substring(gml_id) 2014-12-30 class='fsnr' 2015-12-09 Austausch .ico durch .png */ function footer($gmlid, $link, $append) { // Einen Seitenfuss ausgeben. // Den URL-Parameter "&id=j/n" und "&showkey=j/n" in allen Kombinationen umschalten lassen. // Die Parameter &gkz= und &gmlid= kommen in allen Modulen einheitlich vor // Der Parameter $append wird angehaengt wenn gefuellt // Anwendung: &eig=j bei FS-NW, <yp=m/p/o bei Lage global $gkz, $idumschalter, $idanzeige, $showkey, $hilfeurl; $customer=$_SESSION["mb_user_name"]; echo "\n
\n"; return 0; } function linkgml($gkz, $gml, $typ, $tabelle) { // Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php // tabelle = nur angeben für Tabellen, die Relationen-Spalten besitzen, sonst leer $kurzid=substr($gml, 12, 4); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich // PostNAS 0.8: Timestamp abschneiden echo "\n\t\t"; echo "".$kurzid.""; return 0; } 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"); // fuehrende Nullen am Anfang $kurz=str_replace(".0",".",$kurz); // fuehrende Null jeder Stufe return $kurz; } function bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, $bvnraus) { /* 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. Table-Tag und Kopfzeile im aufrufenden Programm. */ global $debug, $gkz, $idanzeige, $showkey; // 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.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer WHERE s.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; $v = array($gml_bs); $resf = pg_prepare("", $sql); $resf = pg_execute("", $v); if (!$resf) {echo "Fehler bei Flurstück
\n";} if($bvnraus) { // nur bei direkten Buchungen die lfdNr ausgeben $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); } $altlfdnr=""; $j=0; while($rowf = pg_fetch_array($resf)) { $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT); // ohne fuehrende Nullen? $fskenn=$rowf["zaehler"]; if ($rowf["nenner"] != "") { // Bruchnummer $fskenn.="/".$rowf["nenner"]; } $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m²"; echo "\nKeine FS gefunden
";} if ($debug > 2) {echo "SQL='".$sql."'
$1 = '".$gml_bs."'
Fehler bei Eigentümer
\n"; if ($debug > 2) {echo "SQL=
".$sqln."
$1=gml= '".$gmlid."'
\n\t\t "; // Sp. 1 // VOR die Tabelle: "Eigentümer" $namnum=kurz_namnr($rown["lfd"]); echo $namnum." "; if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer", "ax_namensnummer");} echo " \n\t | ";
echo "\n\t"; // Sp. 2
$rechtsg=$rown["adr"];
if ($rechtsg != "" ) {
if ($rechtsg == 9999) { // sonstiges
echo "\n\t\t ".htmlentities($rown["beschr"], ENT_QUOTES, "UTF-8")." "; } else { echo "\n\t\t".htmlentities(rechtsgemeinschaft($rown["adr"]), ENT_QUOTES, "UTF-8")." "; } } //if ($rown["anlass"] > 0 ) {echo "Anlass=".$rown["anlass"]." ";} // 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. // Schleife 2: P e r s o n // Beziehung: ax_personSQL= | \n\t";
}
// Spalte 2 = Angaben
$eiartkey=$rown["eigentuemerart"];
$eiart=eigentuemerart($eiartkey);
echo "\n\t\t | ";
// Spalte 3 = Link
echo "\n\t".$diePerson." \n\t\n\t\t | \n ";
echo "\n\tFehler bei Adressen \n"; if ($debug > 2) {echo "SQL= | "; //Sp. 1
echo "\n\t | ";
echo "\n\t"; //Sp. 2
if ($str.$hsnr != "") {
echo $str." ".$hsnr." "; // Sp. 3
if ($idanzeige) {
echo " | \n ";
} else {
echo " ";
}
echo " | \n\t | \n\tweitere Adresse | \n | "; // Sp. 1
echo "\n\t | ";
echo "\n\t".$zaehler."/".$nenner." Anteil | \nRechtsgemeinschaft = '".$rechtsg."' "; if ($rechtsg != 9999) { echo "\nFehler: Keine Person zur Namensnummer ".$namnum." "; // if ($debug > 2) {echo "\nSQL= | \n\t\n |
keine Namensnummern zum Blatt
";} // if ($debug > 2) {echo "Namensnummern: SQL=
".$sqln."
$1=gml(Blatt)= '".$gmlid."'
Fehler bei DB-Zugriff auf Eigentümerart.
\n"; $wert="** Unbekannte Eigentümerart '".$key."' **"; } pg_free_result($res); break; } return $wert; } // Entschluesslung ax_buchungsblatt.blattart function blattart($key) { switch ($key) { case 1000: $wert = "Grundbuchblatt"; break; // Ein Grundbuchblatt ist ein Buchungsblatt, das die Buchung im Grundbuch enthält. case 2000: $wert = "Katasterblatt"; break; // Ein Katasterblatt ist ein Buchungsblatt, das die Buchung im Liegenschaftskataster enthält. case 3000: $wert = "Pseudoblatt"; break; // Ein Pseudoblatt ist ein Buchungsblatt, das die Buchung, die bereits vor Eintrag im Grundbuch Rechtskraft erlangt hat, enthält // (z.B. Übernahme von Flurbereinigungsverfahren, Umlegungsverfahren). case 5000: $wert = "Fiktives Blatt"; break; // Das fiktive Blatt enthält die aufgeteilten Grundstücke und Rechte als Ganzes. // Es bildet um die Miteigentumsanteile eine fachliche Klammer. default: $wert = "** Unbekannter Wert '".$key."'"; break; } return $wert; } // Entschluesslung ax_dienststelle.stellenart function dienststellenart($key) { switch ($key) { case 1000: $wert = "Grundbuchamt"; break; case 1100: $wert = "Katasteramt"; break; case 1200: $wert = "Finanzamt"; break; case 1300: $wert = "Flurbereinigungsbehörde"; break; case 1400: $wert = "Forstamt"; break; case 1500: $wert = "Wasserwirtschaftsamt"; break; case 1600: $wert = "Straßenbauamt"; break; case 1700: $wert = "Gemeindeamt"; break; case 1900: $wert = "Kreis- oder Stadtverwaltung"; break; case 2000: $wert = "Wasser- und Bodenverband"; break; case 2100: $wert = "Umlegungsstelle"; break; case 2200: $wert = "Landesvermessungsverwaltung"; break; case 2300: $wert = "ÖbVI"; break; case 2400: $wert = "Bundeseisenbahnvermögen"; break; case 2500: $wert = "Landwirtschaftskammer"; break; default: $wert = "** Unbekannter Wert '".$key."'"; break; } return $wert; } ?>