1 | <?php |
---|
2 | /* Modul alkisfsgbexp.php |
---|
3 | CSV-Export von Grundbuch-Daten zum Flurstueck |
---|
4 | Es wird die GML-ID eines FlurstÃŒcks ÃŒbergeben (analog alkisfsexp.php) |
---|
5 | Dazu sollen alle verbundenen GrundbÃŒcher gesucht werden. |
---|
6 | Zu diesen sollen die EigentÃŒmerdaten exportiert werden (analog alkisbestexp.php)
|
---|
7 | |
---|
8 | +++ IN ARBEIT ++++ ZunÀchst Kopie von alkisfsexp.php |
---|
9 | |
---|
10 | 2012-07-24 krz f.j. |
---|
11 | */ |
---|
12 | import_request_variables("G"); // gmlid |
---|
13 | header('Content-type: application/octet-stream'); |
---|
14 | header('Content-Disposition: attachment; filename="alkis_flurstueck_'.$gmlid.'.csv"'); |
---|
15 | require_once("alkis_conf_location.php");
|
---|
16 | |
---|
17 | // CSV-Ausgabe |
---|
18 | echo "Gemarkung;FS-Kennzeichen;Flaeche;Adressen;Buchungsart;GB-Bezirk;GB-Blatt;LfdNr;Anteil"; |
---|
19 | |
---|
20 | // Datenbank-Verbindung
|
---|
21 | $con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass); |
---|
22 | if (!$con) {exit("Fehler beim Verbinden der DB");} |
---|
23 | pg_set_client_encoding($con, LATIN1); |
---|
24 | |
---|
25 | // FlurstÃŒcksdaten
|
---|
26 | $sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.gemeinde, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung ";
|
---|
27 | $sql.="FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
|
---|
28 | $sql.="WHERE f.gml_id= $1";
|
---|
29 | $v = array($gmlid);
|
---|
30 | $res = pg_prepare("", $sql);
|
---|
31 | $res = pg_execute("", $v);
|
---|
32 | if (!$res) {exit("Fehler bei Flurstuecksdaten");} |
---|
33 | if ($row = pg_fetch_array($res)) {
|
---|
34 | $gemkname=$row["bezeichnung"];
|
---|
35 | $gmkgnr=$row["gemarkungsnummer"];
|
---|
36 | $flurnummer=$row["flurnummer"];
|
---|
37 | $flstnummer=$row["zaehler"];
|
---|
38 | $nenner=$row["nenner"];
|
---|
39 | if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
|
---|
40 | $fsbuchflae=$row["amtlicheflaeche"]; // amtliche Fl. aus DB-Feld
|
---|
41 | } else {exit ("Kein Treffer fuer gml_id=".$gmlid);}
|
---|
42 | pg_free_result($res); |
---|
43 | |
---|
44 | // Lagebezeichnung Mit Hausnummer |
---|
45 | // Mehrere Lagebezeichnungen kommen in eine Zelle der Tabelle
|
---|
46 | $sql ="SELECT DISTINCT s.bezeichnung, l.hausnummer FROM alkis_beziehungen v ";
|
---|
47 | $sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id ";
|
---|
48 | $sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage = s.lage ";
|
---|
49 | $sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart='weistAuf' ";
|
---|
50 | $sql.="ORDER BY s.bezeichnung, l.hausnummer;";
|
---|
51 | $v=array($gmlid);
|
---|
52 | $res=pg_prepare("", $sql);
|
---|
53 | $res=pg_execute("", $v);
|
---|
54 | if (!$res) { |
---|
55 | echo "Fehler bei Lagebezeichnung mit Hausnummer\n"; |
---|
56 | echo $sql."\n"; |
---|
57 | } |
---|
58 | $j=0; |
---|
59 | $lagehsnr=""; // mehrere ggf. in ein Feld
|
---|
60 | while($row = pg_fetch_array($res)) { |
---|
61 | if ($j > 0) {$lagehsnr.=", ";}
|
---|
62 | $sneu=$row["bezeichnung"]; |
---|
63 | if ($sneu == $salt) { |
---|
64 | $lagehsnr.=$row["hausnummer"]; |
---|
65 | } else { |
---|
66 | $lagehsnr.=$sneu." ".$row["hausnummer"]; |
---|
67 | } |
---|
68 | $salt=$sneu; |
---|
69 | $j++;
|
---|
70 | } |
---|
71 | pg_free_result($res); |
---|
72 | |
---|
73 | $fskennz='"'.$gmkgnr.'-'.$flurnummer.'-'.$flstnummer.'"'; // in "" einschlieÃen, Excel macht sonst Datum daraus |
---|
74 | $csvfs="\n".$gemkname.";".$fskennz.";".$fsbuchflae.";".$lagehsnr.";"; // Buchung anhÀngen |
---|
75 | // Ende linearer Teil (eine Zeile je FlurstÃŒck)) |
---|
76 | |
---|
77 | // BUCHUNGSSTELLEN zum FS |
---|
78 | // jede Buchung zu einem FS erzeugt eine neue FS-Zeile !!
|
---|
79 | $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, b.bezeichner AS bart ";
|
---|
80 | $sql.="FROM alkis_beziehungen v "; // Bez Flurst.- Stelle.
|
---|
81 | $sql.="JOIN ax_buchungsstelle s ON v.beziehung_zu=s.gml_id ";
|
---|
82 | $sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert ";
|
---|
83 | $sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart= $2 ORDER BY s.laufendenummer;";
|
---|
84 | $v = array($gmlid,'istGebucht');
|
---|
85 | $ress = pg_prepare("", $sql);
|
---|
86 | $ress = pg_execute("", $v);
|
---|
87 | if (!$ress) {echo "\nKeine Buchungsstelle";}
|
---|
88 | $bs=0; // Z.Buchungsstelle
|
---|
89 | while($rows = pg_fetch_array($ress)) {
|
---|
90 | $gmls=$rows["gml_id"]; // gml b-Stelle |
---|
91 | $lfd=$rows["lfd"]; // BVNR
|
---|
92 |
|
---|
93 | // BUCHUNGSBLATT zur Buchungsstelle |
---|
94 | $sql ="SELECT b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung ";
|
---|
95 | $sql.="FROM alkis_beziehungen v "; // Bez. Stelle - Blatt
|
---|
96 | $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id ";
|
---|
97 | $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; |
---|
98 | $sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart= $2 ";
|
---|
99 | $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
|
---|
100 | $v=array($gmls,'istBestandteilVon');
|
---|
101 | $resg=pg_prepare("", $sql);
|
---|
102 | $resg=pg_execute("", $v);
|
---|
103 | if (!$resg) {echo "\nKein Buchungsblatt";}
|
---|
104 | $bl=0;
|
---|
105 | while($rowg = pg_fetch_array($resg)) {
|
---|
106 | echo $csvfs.$rows["bart"].";".$rowg["bezeichnung"].";".$rowg["blatt"].";".$rows["lfd"].";";
|
---|
107 | if ($rowg["zaehler"] == "") {echo "1";} |
---|
108 | else { |
---|
109 | $zah=str_replace(".",",",$rowg["zaehler"]); |
---|
110 | $nen=str_replace(".",",",$rowg["nenner"]); |
---|
111 | echo "=".$zah."/".$nen; |
---|
112 | } |
---|
113 | $bl++;
|
---|
114 | } |
---|
115 | pg_free_result($resg);
|
---|
116 | if ($bl == 0) {echo "\nKein Buchungsblatt gefunden.";} |
---|
117 | |
---|
118 | // RECHT Stelle an Stelle - Kommentare siehe alkisfsnw.php
|
---|
119 | $sql ="SELECT s.laufendenummer as lfd, s.zaehler, s.nenner, ";
|
---|
120 | $sql.=" b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, z.bezeichnung, a.bezeichner AS bart ";
|
---|
121 | $sql.="FROM alkis_beziehungen an ";
|
---|
122 | $sql.="JOIN ax_buchungsstelle s ON an.beziehung_von = s.gml_id ";
|
---|
123 | $sql.="JOIN alkis_beziehungen v ON s.gml_id = v.beziehung_von ";
|
---|
124 | $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu = b.gml_id ";
|
---|
125 | $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land = b.land AND z.bezirk = b.bezirk ";
|
---|
126 | $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert ";
|
---|
127 | $sql.="WHERE an.beziehung_zu = $1 ";
|
---|
128 | $sql.="AND an.beziehungsart = 'an' ";
|
---|
129 | $sql.="AND v.beziehungsart = 'istBestandteilVon' ";
|
---|
130 | $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
|
---|
131 | $v = array($gmls);
|
---|
132 | $resan = pg_prepare("", $sql);
|
---|
133 | $resan = pg_execute("", $v);
|
---|
134 | if (!$resan) {echo "\nFehler bei weiteren Buchungsstellen";}
|
---|
135 | while($rowan = pg_fetch_array($resan)) {
|
---|
136 | echo $csvfs.$rowan["bart"].";".$rowan["bezeichnung"].";".$rowan["blatt"].";".$rowan["lfd"].";";
|
---|
137 | if ($rowan["zaehler"] == "") {echo "1";} |
---|
138 | else { |
---|
139 | $zah=str_replace(".",",",$rowan["zaehler"]); |
---|
140 | $nen=str_replace(".",",",$rowan["nenner"]); |
---|
141 | echo "=".$zah."/".$nen; |
---|
142 | } |
---|
143 | } |
---|
144 | pg_free_result($resan); |
---|
145 | $bs++; |
---|
146 | } |
---|
147 | if ($bs == 0) {echo "\nKeine Buchungstelle gefunden.";} |
---|
148 | pg_close($con); |
---|
149 | exit(0);
|
---|
150 | ?> |
---|