source: trunk/info/info/alkisn/alkisnamstruk.php @ 390

Revision 389, 10.4 KB checked in by frank.jaeger, 7 years ago (diff)

ALKIS Buchauskunft überarbeitet: Bodenschätzung im FS-Nachweis. Filter auf "endet IS NULL".

Line 
1<?php
2/*      Modul: alkisnamstruk.php
3
4        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
5        Namens- und Adressdaten fuer einen Eigentuemer aus ALKIS PostNAS
6
7        Version:
8        2016-02-24 Version fuer norGIS-ALKIS-Import
9        2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen
10        2017-06-02 Validierung Eingabeparameter, Feinkorrekturen
11        2017-10-09 Sauber filtern auf endet IS NULL
12*/
13session_start();
14
15$multiadress="n"; $showkey="n"; // Var. aus Parameter initalisieren
16$cntget = extract($_GET); // Parameter in Variable umwandeln
17
18// strikte Validierung aller Parameter
19if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");}
20if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");}
21if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");}
22if ($showkey == "j") {$showkey=true;} else {$showkey=false;}
23if (!preg_match('#^[j|n]{0,1}$#', $multiadress)) {die ("Eingabefehler multiadress");}
24
25require_once("alkis_conf_location.php");
26if ($auth == "mapbender") {require_once($mapbender);}
27include("alkisfkt.php");
28
29?>
30<!doctype html>
31<html lang="de">
32<head>
33        <meta charset="utf-8">
34        <meta name="viewport" content="width=device-width, initial-scale=1.0">
35        <title>ALKIS Person und Adresse</title>
36        <link rel="stylesheet" type="text/css" href="alkisauszug.css">
37        <link rel="shortcut icon" type="image/x-icon" href="ico/Eigentuemer_2.ico">
38        <script type="text/javascript">
39                function ALKISexport() {
40                        window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=person&gmlid=".$gmlid."'"; ?>);
41                }
42        </script>
43</head>
44<body>
45
46<?php
47
48// Balken
49echo "<p class='nakennz'>ALKIS Name id=".$gmlid."&nbsp;</p>\n"
50."\n<h2><img src='ico/Eigentuemer.png' width='16' height='16' alt=''> Person</h2>";
51$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisnamstruk.php'");
52if (!$con) "\n<p class='err'>Fehler beim Verbinden der DB</p>";
53
54$sql="SELECT p.nachnameoderfirma, p.anrede, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad, a.v AS anrv
55FROM ax_person p LEFT JOIN alkis_wertearten a ON cast(p.anrede AS character varying)=a.k AND a.element='ax_person' AND a.bezeichnung='anrede'
56WHERE gml_id= $1 AND p.endet IS NULL;";
57
58$v = array($gmlid);
59$res = pg_prepare("", $sql);
60$res = pg_execute("", $v);
61
62if (!$res) {
63        echo "\n<p class='err'>Fehler bei Zugriff auf Namensnummer</p>";
64        if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}
65}
66if ($row = pg_fetch_array($res)) {
67        $vor=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8");
68        $nam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8");
69        $geb=htmlentities($row["geburtsname"], ENT_QUOTES, "UTF-8");
70        $anrk=$row["anrede"]; // Key
71        $anr=$row["anrv"]; // Value
72        $nbest=htmlentities($row["namensbestandteil"], ENT_QUOTES, "UTF-8");
73        $aka=htmlentities($row["akademischergrad"], ENT_QUOTES, "UTF-8");
74
75        echo "<table>"
76                ."\n\t<tr><td class='nhd'>Anrede:</td><td class='nam'>";
77                if ($showkey) {echo "<span class='key' title='Anredekennung'>(".$anrk.")</span> ";}
78                echo $anr."</td></tr>"
79                ."\n\t<tr><td class='nhd'>Nachname oder Firma:</td><td class='nam'>".$nam."</td></tr>"
80                ."\n\t<tr><td class='nhd'>Vorname:</td><td class='nam'>".$vor."&nbsp;</td></tr>"
81                ."\n\t<tr><td class='nhd'>Geburtsname:</td><td class='nam'>".$geb."&nbsp;</td></tr>"
82                ."\n\t<tr><td class='nhd'>Geburtsdatum:</td><td class='nam'>".$row["geburtsdatum"]."&nbsp;</td></tr>"
83                ."\n\t<tr><td class='nhd'>Namensbestandteil:</td><td class='nam'>".$nbest."&nbsp;</td></tr>"
84                ."\n\t<tr><td class='nhd'>akademischer Grad:</td><td class='nam'>".$aka."&nbsp;</td></tr>"
85        ."\n</table>\n<hr>";
86
87        // A d r e s s e
88        echo "\n\n<h3><img src='ico/Strasse_mit_Haus.png' width='16' height='16' alt=''> Adresse</h3>";
89        // Es können redundante Adressen vorhanden sein, z.B. aus Migration, temporÀr aus LBESAS. Die letzte davon anzeigen.
90
91        $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland
92        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.gml_id DESC ;";
93
94        $v = array($gmlid);
95        $resa = pg_prepare("", $sqla);
96        $resa = pg_execute("", $v);
97        if (!$resa) {
98                echo "\n<p class='err'>Fehler bei Adressen</p>";
99                if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sqla."<br>$1=gml(Person)= '".$gmlid."'</p>";}
100        }
101
102        $j=0;
103        // Parameter $multiadress = j zeigt ALLE Adressen an
104        while($rowa = pg_fetch_array($resa)) {
105                $j++;
106                if ($multiadress == "j" OR $j == 1) {
107                        $gmla=$rowa["gml_id"];
108                        $plz=$rowa["plz"];
109                        $ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8");
110                        $str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8");
111                        $hsnr=$rowa["hausnummer"];
112                        $land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8");
113                        echo "<table>\n"
114                                ."\t<tr><td class='nhd'>PLZ:</td><td class='nam'>".$plz."</td></tr>\n"
115                                ."\t<tr><td class='nhd'>Ort:</td><td class='nam'>".$ort."</td></tr>\n"
116                                ."\t<tr><td class='nhd'>Strasse:</td><td class='nam'>".$str."</td></tr>\n"
117                                ."\t<tr><td class='nhd'>Hausnummer:</td><td class='nam'>".$hsnr."</td></tr>\n"
118                                ."\t<tr><td class='nhd'>Land:</td><td class='nam'>".$land."</td></tr>\n"
119                        ."\n</table>\n<br>";
120
121                        // Name und Adresse Kompakt (im Rahmen) - Alles was man fuer ein Anschreiben braucht
122                        echo "\n<img src='ico/Namen.png' width='16' height='16' alt='Brief' title='Anschrift'>"
123                        ."\n<div class='adr' title='Anschrift'>\n\t".$anr." ".$aka." ".$vor." ".$nbest." ".$nam."<br>"
124                        ."\n\t".$str." ".$hsnr."<br>"
125                        ."\n\t".$plz." ".$ort."\n</div>";
126                }
127        }
128        pg_free_result($resa);
129        if ($j == 0) {
130                echo "\n<p class='err'>Keine Adressen.</p>";
131        } elseif ($j > 1) {
132                echo "\n\t\t<p class='nwlink noprint'>"
133                ."\n\t\t\t<a href='".$_SERVER['PHP_SELF']. "?gkz=".$gkz."&amp;gmlid=".$gmlid;
134                if ($showkey) {echo "&amp;showkey=j";}
135                if ($multiadress == "j") {
136                        echo "&amp;multiadress=n' title='mehrfache Adressen unterdr&uuml;cken'>erste Adresse ";
137                } else {
138                        echo "&amp;multiadress=j' title='Adressen ggf. mehrfach vorhanden'>alle Adressen ";
139                }
140                echo "\n\t\t\t</a>"
141                ."\n\t\t</p>";
142        }
143
144        // *** G R U N D B U C H ***
145        echo "\n<hr>\n<h3><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Grundb&uuml;cher</h3>";
146        // person <benennt< namensnummer >istBestandteilVon>                Buchungsblatt
147        //                               >bestehtAusRechtsverhaeltnissenZu> namensnummer   (Nebenzweig/SonderfÀlle?)
148
149        $sqlg ="SELECT n.gml_id AS gml_n, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, g.gml_id AS gml_g, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung as nr, g.blattart, wb.v AS blattartv, b.bezeichnung AS beznam "
150        ."FROM ax_person p JOIN ax_namensnummer n ON p.gml_id=n.benennt "
151        ."JOIN ax_buchungsblatt g ON g.gml_id=n.istbestandteilvon "
152        ."LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk "
153        ."LEFT JOIN alkis_wertearten wb ON cast(g.blattart AS character varying)=wb.k AND wb.element='ax_buchungsblatt' AND wb.bezeichnung='blattart' "
154        ."WHERE p.gml_id= $1 AND p.endet IS NULL AND n.endet IS NULL AND b.endet IS NULL "
155        ."ORDER BY b.bezeichnung, g.buchungsblattnummermitbuchstabenerweiterung, n.laufendenummernachdin1421;";
156        // buchungsblatt... mal mit und mal ohne fuehrende Nullen, bringt die Sortierung durcheinander
157
158        $v = array($gmlid);
159        $resg = pg_prepare("", $sqlg);
160        $resg = pg_execute("", $v);
161
162        if (!$resg) {
163                echo "\n<p class='err'>Fehler bei Grundbuch</p>";
164                if ($debug > 2) {
165                        echo "\n<p class='err'>SQL=<br>".htmlentities($sqlg, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";
166                }
167        }
168        echo "<table class='eig'>"
169        ."\n<tr>"
170                ."\n\t<td class='heads'>Bezirk<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
171                ."\n\t<td class='head'>Blattart</td>"
172                ."\n\t<td class='heads'>Blatt<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
173                ."\n\t<td class='heads'>Namensnummer<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
174                ."\n\t<td class='head'>Anteil</td>"
175                ."\n\t<td class='head nwlink noprint' title='Verlinkung zu anderen Nachweis-Arten und verbundenen Objekten'>weitere Auskunft</td>"
176        ."\n</tr>";
177
178        $i=0;
179        $zpaar=false;
180        while($rowg = pg_fetch_array($resg)) {
181                $gmln=$rowg["gml_n"];
182                $gmlg=$rowg["gml_g"];
183                $namnum=kurz_namnr($rowg["lfd"]);
184                $zae=$rowg["zaehler"];
185                $blattkey=$rowg["blattart"]; // Key
186                $blattart=$rowg["blattartv"]; // Value
187                if ($zpaar) {$trclass='paa';} else {$trclass='unp';}
188                $zpaar=!$zpaar;
189                echo "\n<tr class='".$trclass."'>"
190                        ."\n\t<td>"; // GB-Bezirk <td class='gbl'>
191                                if ($showkey) {echo "<span class='key'>".$rowg["bezirk"]."</span> ";}
192                                echo $rowg["beznam"]
193                        ."</td>";
194
195                        echo "\n\t<td>"; // Blattart
196                                if ($showkey) {echo "<span class='key'>".$blattkey."</span> ";}
197                                echo $blattart
198                        ."</td>";
199
200                        echo "\n\t<td>"; // Blatt
201                                echo "<span class='wichtig'>".$rowg["nr"]."</span>"
202                        ."</td>";
203
204                        echo "\n\t<td>"; // Namensnummer
205                                if ($namnum == "") {
206                                        echo "&nbsp;";
207                                } else {
208                                        echo $namnum;
209                                }
210                        echo "</td>";
211
212                        echo "\n\t<td>"; // Anteil
213                                if ($zae == "") {
214                                        echo "&nbsp;";
215                                } else {
216                                        echo $zae."/".$rowg["nenner"]." Anteil";
217                                }
218                        echo "</td>"
219                        ."\n\t<td>"
220                                ."\n\t\t<p class='nwlink noprint'>"
221                                        ."\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlg;
222                                                if ($showkey) {echo "&amp;showkey=j";}
223                                                echo "' title='Bestandsnachweis'>".$blattart
224                                        ."\n\t\t\t<img src='ico/GBBlatt_link.png' width='16' height='16' alt=''></a>"
225                                ."\n\t\t</p>"
226                        ."\n\t</td>"
227                ."\n</tr>";
228                // +++ >bestehtAusRechtsverhaeltnissenZu> namensnummer ?
229                // z.B. eine Namennummer "Erbengemeinschaft" zeigt auf Namensnummern mit EigentÃŒmern
230                $i++;
231        }
232        pg_free_result($resg);
233        echo "</table>";
234        if ($i == 0) {echo "\n<p class='err'>Kein Grundbuch.</p>";}
235} else {
236        echo "\n\t<p class='err'>Fehler! Kein Treffer f&uuml;r\n\t<a target='_blank' href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gmlid."'>".$gmlid."</a>\n</p>\n\n";
237}
238?>
239
240<div class='buttonbereich noprint'>
241<hr>
242        <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
243        <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp;
244        <a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.png" width="16" height="16" alt="Export"></a>&nbsp;
245</div>
246
247<?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
248
249</body>
250</html>
Note: See TracBrowser for help on using the repository browser.