source: trunk/info/info/alkis/alkisnamstruk.php @ 376

Revision 376, 9.6 KB checked in by frank.jaeger, 7 years ago (diff)

Verbesserungen an der ALKIS-Buchauskunft (Geschwindigkeit, Fehlerkorrekturen, Mandantenfähigkeit) und an der Mapbender2-Navigation.

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