Index: trunk/info/info/alkis/alkisfkt.php
===================================================================
--- trunk/info/info/alkis/alkisfkt.php	(revision 315)
+++ trunk/info/info/alkis/alkisfkt.php	(revision 330)
@@ -11,4 +11,6 @@
 	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-10 Bei Relationen den Timestamp abschneiden
 */
 
@@ -63,9 +65,11 @@
 }
 
-function linkgml($gkz, $gml, $typ)  {
+function linkgml($gkz, $gml, $typ, $tabelle)  {
 	// Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php
-	$kurzid=substr($gml, 12); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich
+	// 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<a target='_blank' title='ID ".$typ."' class='gmlid noprint' ";
-	echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."'>";
+	echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."&amp;tabelle=".$tabelle."'>";
 	echo "<img src='ico/Beziehung_link.ico' width='16' height='16' alt=''>".$kurzid."</a>";
 	return 0;
@@ -73,5 +77,5 @@
 
 function kurz_namnr($lang) {
-	// Namensnummer kuerzen. Nicht benoetigte Stufen der Dezimalklassifikation abschneiden
+	// 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)
@@ -89,13 +93,10 @@
 */
 	global $gkz, $idanzeige, $showkey;
+
 	// F L U R S T U E C K
-	$sql="SELECT g.gemarkungsnummer, g.bezeichnung, ";
-	$sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
-	$sql.="FROM ax_flurstueck f ";
-	$sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von "; 
+	$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
+	$sql.="FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16) "; 
 	$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
-	$sql.="WHERE v.beziehung_zu= $1 "; // id buchungsstelle
-	$sql.="AND v.beziehungsart='istGebucht' ";
-	$sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+	$sql.="WHERE s.gml_id= $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
 
 	$v = array($gml_bs);
@@ -116,6 +117,6 @@
 		if ($rowf["nenner"] != "") { // Bruchnummer
 			$fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT);
-		} */
-
+		}
+*/
 		// ohne fuehrende Nullen?
 		$fskenn=$rowf["zaehler"];
@@ -136,5 +137,5 @@
 					echo "<a name='bvnr".$lfdnr."'></a>"; // Sprungmarke
 					echo "<span class='wichtig'>".$bvnr."</span>";  // BVNR
-					if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle");}
+					if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle", "ax_buchungsstelle");}
 				echo "</td>";
 
@@ -154,5 +155,5 @@
 			echo "\n\t<td>".$flur."</td>";
 			echo "\n\t<td><span class='wichtig'>".$fskenn."</span>";
-				if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");}
+				if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");}
 			echo "</td>";
 			echo "\n\t<td class='fla'>".$flae."</td>";
@@ -178,10 +179,10 @@
 	// Sp.1 = Namennummer, Sp. 2 = Name / Adresse, Sp. 3 = Link
 	// Parameter:
-	//	$gmlid = ID des GB-Blattes
-	//	$mitadresse = Option (true/false) ob auch die Adresszeile ausgegeben werden soll
+	//	$gmlid = ID GB-Blattes
+	//	$mitadresse = Option (true/false) ob die Adresszeile ausgegeben werden soll
 	// Return = Anzahl Namensnummern
 
 	// Schleife 1: N a m e n s n u m m e r
-	// Beziehung: ax_namensnummer  >istBestandteilVon>  ax_buchungsblatt
+	// Beziehung: ax_namensnummer >istBestandteilVon> ax_buchungsblatt
 	global $debug, $gkz, $idanzeige, $showkey;
 
@@ -195,8 +196,6 @@
 	} // Beispiel-Link href='javascript:imFenster(\"alkislage.php?gkz= ... ."\")'>xxx ";
 
-	$sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, ";
-	$sqln.="n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass ";
-	$sqln.="FROM ax_namensnummer n JOIN alkis_beziehungen b ON b.beziehung_von=n.gml_id ";
-	$sqln.="WHERE b.beziehung_zu= $1 AND b.beziehungsart='istBestandteilVon' ORDER BY laufendenummernachdin1421;";
+	$sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass ";
+	$sqln.="FROM ax_namensnummer n WHERE n.istbestandteilvon= $1 ORDER BY n.laufendenummernachdin1421;";
 
 	$v = array($gmlid);
@@ -219,5 +218,5 @@
 				$namnum=kurz_namnr($rown["lfd"]);
 				echo $namnum."&nbsp;";
-				if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer");}
+				if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer", "ax_namensnummer");}
 			echo "</p>\n\t</td>";
 
@@ -247,6 +246,6 @@
 		// Beziehung: ax_person  <benennt<  ax_namensnummer
 		$sqlp ="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad ";
-		$sqlp.="FROM ax_person p JOIN alkis_beziehungen v ON v.beziehung_zu=p.gml_id ";
-		$sqlp.="WHERE v.beziehung_von= $1 AND v.beziehungsart='benennt';";
+		$sqlp.="FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=substring(p.gml_id,1,16) WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;";
+		// Timestamp an ID abschneiden!
 
 		$v = array($gmlnn);
@@ -260,5 +259,5 @@
 
 		$i=0; // cnt Person
-		while($rowp = pg_fetch_array($resp)) {
+		while($rowp = pg_fetch_array($resp)) {  // ++ Schleife? nn >benennt> Person ist kein Array!
 			$diePerson="";
 			if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";}
@@ -281,6 +280,8 @@
 			// Spalte 3 = Link
 			echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
-				if ($idanzeige) {linkgml($gkz, $rowp["gml_id"], "Person"); echo "&nbsp";}
-				if ($showkey) {echo "<span class='key'>(".$eiartkey.")</span> ";}
+				if ($idanzeige) {linkgml($gkz, $rowp["gml_id"], "Person", "ax_person"); echo "&nbsp";}
+				if ($showkey AND $eiartkey != '') { // oft leer
+						echo "<span class='key'>(".$eiartkey.")</span> ";
+				}
 				echo "\n\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowp[0];
 				if ($idanzeige) {echo "&amp;id=j";}
@@ -293,6 +294,5 @@
 				// Schleife 3:  A d r e s s e  (OPTIONAL)
 				$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland ";
-				$sqla.="FROM ax_anschrift a JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu ";
-				$sqla.="WHERE b.beziehung_von= $1 AND b.beziehungsart='hat';"; // ORDER?
+				$sqla.="FROM ax_anschrift a JOIN ax_person p ON substring(a.gml_id,1,16) = ANY(p.hat) WHERE p.gml_id= $1 ;"; // ORDER?
 				$gmlp=$rowp["gml_id"]; // Person
 				$v = array($gmlp);
@@ -332,5 +332,5 @@
 					if ($idanzeige) {
 						echo "<p class='nwlink noprint'>";
-						linkgml($gkz, $gmla, "Adresse");
+						linkgml($gkz, $gmla, "Adresse", "ax_adresse");
 						echo "</p>";
 					} else { 
@@ -342,6 +342,6 @@
 				pg_free_result($resa);
 			} // End if
-
 			// 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG"
+
 			$i++; // cnt Person
 			// als eigene Tab-Zeile?
@@ -353,11 +353,11 @@
 			}
 		} // End Loop Person
-		if ($i == 0) { // kommt vor hinter Zeile Erbengemeinschaft, dann kein Fehler
+		if ($i == 0) { // kommt vor hinter Zeile Erbengemeinschaft, ist dann kein Fehler
 			if ($debug > 0) {
 				echo "\n<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";
 				if ($rechtsg != 9999) {
-					echo "\n<p class='dbg'>Keine Person zur Namensnummer ".$namnum."</p>";
+					echo "\n<p class='dbg'>Fehler: Keine Person zur Namensnummer ".$namnum."</p>";
 				}
-				//if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1=gml(NamNum)= '".$gmlnn."'</p>";}
+				if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1 = gml(NamNum) = '".$gmlnn."'</p>";}
 			}
 			echo "</td>\n\t<td>&nbsp;</td>\n<tr>";
@@ -367,5 +367,7 @@
 	echo "\n</table>\n";
 	if ($n == 0) {
+		// kommt vor bei "Fiktives Blatt", kein Fehler 
 		if ($debug > 0) {echo "<p class='dbg'>keine Namensnummern zum Blatt</p>";}
+
 		if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";}
 	}
