fhiiqm/info_ed.php
changeset 40 6f4b105daa24
parent 38 45c139f74ea4
--- a/fhiiqm/info_ed.php	Wed Jul 31 15:10:48 2013 +0200
+++ b/fhiiqm/info_ed.php	Thu Sep 12 09:04:56 2013 +0200
@@ -1,447 +1,452 @@
-<?php
-
-/**
- * @author Bettina Schwarzer, Fritz-Haber-Institut
- * @copyright 02/2012
- *
- * INSERT,UPDATE Informationen ausser Betriebsanweisung, Betriebsstoerung
- */
-
-    error_reporting(E_ALL ^ E_NOTICE);
-    
-    session_start();
-    if (! isset($_SESSION["userid"]))
-    { 
-        include_once ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");	
-        login($_SERVER["PHP_SELF"]);
-        exit;
-    }
-    
-    if (is_null($_SESSION["recht"]) || (!is_null($_SESSION["recht"]) && !in_array("ir",$_SESSION["recht"]) && !in_array("ie",$_SESSION["recht"])))
-    {
-        header("Location: start.php");
-        exit;
-    }    
-
-    $ityp   = $_GET["t"];
-    
-    $infid  = $_GET["i"];
-
-    $zeil = $_GET["z"];
-    if (!$zeil) $zeil = 10; // Anzahl der gezeigten Zeilen
-    $start = $_GET["st"];   // Start bei DS $start+1
-    if (!$start) $start=0;
-	$sort   = $_GET["s"];   // Sortierung nach Spalte
-    $dir    = $_GET["d"];   // Sortierrichtung
-    $fnum   = $_GET["f"];   // Spaltennummer, nach der aktuell gefiltert wird
-    $filter = $_GET["b"];   // Filterbegriff
-    // $_GET-Parameter zurück zur Infoliste mit den selben Einstellungen wie zuvor
-    $getp = "s=$sort&d=$dir&f=$fnum&b=$filter&st=$start&z=$zeil";
-    
-    $del    = $_POST["del"];
-    $sub    = $_POST["eintragen"];
-    $dup    = $_POST["dup"];
-    if (!$dup) $dup = $_GET["dp"];
-    $copy   = $_GET["c"];
-	$inf    = $_POST["inf"];
-    $ok		= $_POST["ok"];
-    if (!$inf["okn"]) $ok = false;
-    $duptext="";
-    
-//    print_r($inf); echo "ok = $ok<br /><br />";
-
-	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
-    include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
-	$dbc = new dbconnection();
-    
-    if ($dup)
-    {   // Info duplizieren
-        $tab = "Info";
-        $key = "info_ID";
-        $val =  $infid;
-//        $ret=1;
-        $ret = duplicate_record ($tab, $key, $val);
-        if ($ret)
-        { 
-            $infid_new=$ret;
-            // Infofilename loeschen
-            $sql = "UPDATE fhiiqm.Info SET info_file = NULL WHERE info_ID = $infid_new";
-            $retf = $dbc -> execute($sql);
-            if ($dbc->error) echo "<p  class='red'>error loeschen Info-File: " . $dbc->error . "</p>";
-            
-            // duplizieren Produkte
-            $sql = "INSERT INTO Info_Produkt SELECT $infid_new,produkt_ID FROM Info_Produkt WHERE info_ID = $infid";
-            $retp = $dbc -> execute($sql);
-            if ($dbc->error) echo "<p  class='red'>error copy Info_Produkt: " . $dbc->error . "</p>";
-            
-            // duplizieren Adressat
-            $sql = "INSERT INTO Info_Adressat SELECT $infid_new,info_adr_ID FROM Info_Adressat WHERE info_ID = $infid";
-            $reta = $dbc -> execute($sql);
-            if ($dbc->error) echo "<p  class='red'>error copy Info_Adressat: " . $dbc->error . "</p>";
-            
-            // duplizieren Verantwortliche
-            $sql = "INSERT INTO Info_Verantwortlich SELECT $infid_new,persknr,prioritaet FROM Info_Verantwortlich WHERE info_ID = $infid";
-            $retv = $dbc -> execute($sql);
-            if ($dbc->error) echo "<p  class='red'>error copy Info_Verantwortlich: " . $dbc->error . "</p>";
-            
-            if ($ret && $retf && $retp && $reta && $retv)
-            {
-                $addr = $_SERVER["PHP_SELF"] . "?i=$infid_new&c=1&$getp";
-                header("Location: $addr");
-                exit;
-            }
-            else $duptext = " - Fehler beim Duplizieren von ". $inf["iname"];    
-        }
-        else $duptext = " - Fehler beim Duplizieren von ". $inf["iname"];    
-    }
-    
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
-<head>
-	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
-   	<link href="/fhiiqm/css/db.css" rel="STYLESHEET" type="TEXT/CSS" media="screen"/> 
-   	<link href="/fhiiqm/css/db_print.css" rel="STYLESHEET" type="TEXT/CSS" media="print"/> 
-<!--
-    <link type="text/css" href="/fhiiqm/css/jquery/ui-lightness/jquery-ui-1.8.16.custom.css" rel="Stylesheet" />	
-    <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-1.6.2.min.js"></script>
-    <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-ui-1.8.16.custom.min.js"></script>
--->
-    <link type="text/css" href="/fhiiqm/css/jquery/ui-lightness-1.8.21/jquery-ui-1.8.21.custom.css" rel="Stylesheet" />	
-    <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-1.7.2.min.js"></script>
-    <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-ui-1.8.21.custom.min.js"></script>
-
-	<title>Edit Informationen</title>
-</head>
-
-<body>
-
-    <script>
-      $(document).ready(function() {
-        $("#titel").focus();
-        $("#persknr").autocomplete({
-                source: "/fhiiqm/inc/ma_list_ac.inc.php",
-    			minLength: 2,
-                select: function(event,ui){$("#pid").val(ui.item.id);}
-    		});
-        $("#cdat").datepicker({
-            dateFormat: 'yy-mm-dd', //nur Datum
-            yearRange: '2000:2025',
-            changeMonth: true,
-			changeYear: true,
-            firstDay: 1,
-            dayNamesMin: ['So','Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' ],
-            monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'] 
-        });
-        $("#vdat").datepicker({
-            dateFormat: 'yy-mm-dd', //nur Datum
-            yearRange: '2000:2025',
-            changeMonth: true,
-			changeYear: true,
-            firstDay: 1,
-            dayNamesMin: ['So','Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' ],
-            monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'] 
-        });
-        $("#bdat").datepicker({
-            dateFormat: 'yy-mm-dd', //nur Datum
-            yearRange: '2000:2025',
-            changeMonth: true,
-			changeYear: true,
-            firstDay: 1,
-            dayNamesMin: ['So','Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' ],
-            monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'] 
-        });
-        $("input[id='persknr']").addClass("long20");
-        $("input[id='cdat']").addClass("long10");
-        $("input[id='vdat']").addClass("long10");
-        $("input[id='bdat']").addClass("long10");
-        });
-        function addInputf(divId,anz){
-                var cdiv = document.createElement('div');
-                var idl = "cbl_" + anz;
-                cdiv.innerHTML = "<span></span>Dok-Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name='inf[ifname][]' type='text' size='50' maxlength='50' value='' />";
-                cdiv.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schlagwort&nbsp;&nbsp;&nbsp;<input type='text' name='inf[swort][]'  size='30' maxlength='50' value='' />";
-                cdiv.innerHTML += "<img src='/fhiiqm/img/nixt.gif' border='0' height='100%' />";
-                //cdiv.innerHTML += "<span id='cbl'>&nbsp;&nbsp;&nbsp;<input type='checkbox' id='del' name='vertrag[del][]' value='1'/></span>";
-                cdiv.innerHTML += "<span id='cbl'>&nbsp;&nbsp;&nbsp;<input type='checkbox' id='del' name='inf[del][]' value='1'/>";
-                cdiv.innerHTML += "<label id='lb' for='del'>&nbsp;l&ouml;schen</label></span>";
-                cdiv.innerHTML += "<br />Upload-Dokument&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='file' name='ifile[]' size='50' maxlength='50' value='' />";
-                document.getElementById(divId).appendChild(cdiv);
-                var delcb = document.getElementById('del');
-                delcb.id = "del_" + anz;
-                delcb.style.display = 'none';
-                var lcb = document.getElementById('lb');
-                lcb.id = "lb_" + anz;
-                lcb.setAttribute("for", delcb.id);
-                lcb.style.display = 'none';
-                counter++;
-        }
-        function markdelInput(divId,anz){
-            for (i=1; i<anz; i++)
-            {
-                var id = "del_" + i;
-                var delcb = document.getElementById(id);
-                delcb.style.display = 'inline';
-                var idl = "lb_" + i;
-                var lcb = document.getElementById(idl);
-                lcb.style.display = 'inline';
-            }
-        }
-    </script>
-
-<?php
-    echo "&nbsp;";  
-    echo "<div class=\"float-br smaller\" valign='top'>";
-    echo "&nbsp;&nbsp;&nbsp;user: " . $_SESSION["userid"];
-    echo "&nbsp;&nbsp;&nbsp;<a class='sc' href='/fhiiqm/logout.php' title='Session beenden'>logout</a></div>\n";
-    echo "<div class=\"float-r\"><img src=\"/fhiiqm/img/document_image_ver.png\" border=\"0\" alt=\"Infodaten &auml;ndern\" title=\"Infodaten &auml;ndern\"/></div>\n";
-
-
-    echo "<div align='center'>";
-    if ($infid) $text = "editieren"; else $text = "erfassen";
-    if ($copy) $duptext = " (Kopie)";
-    echo "<h3>Information $text$duptext<h3>";
-    
-    echo "</div>\n";
-    
-    //Filename wenn Upload?
-    if (isset($_FILES["ifile"]["error"]))
-        foreach ($_FILES["ifile"]["error"] as $key => $err)
-            if ($err == 0 && !$inf["ifname"][$key]) $ok = $ok && false;
-
-    if (!$ok || (!$sub && !$del && !$dup))
-    {
-        if ($infid && (!$sub || !$del) && !isset($inf))
-        { // update
-            $sql = "SELECT info_ID,info_name_s,info_name_l,info_date,info_valid_from,info_valid_to,infotyp_ID,
-                                i.persknr,lang,info_file,info_rel_ID,info_freigabe_ID,info_sort,betrag, 
-                                CONCAT(nachname,', ',vorname) AS aname 
-                                FROM fhiiqm.Info i LEFT OUTER JOIN fhiiqm.Mitarbeiter m 
-                                ON i.persknr=m.persknr 
-                                WHERE info_ID = $infid";
-            if ($result = $dbc -> queryObjectArray($sql))
-            {
-                foreach ($result as $row)
-                {
-                    $inf["infid"]   = $infid;
-                    $inf["iname"]   = $row->info_name_s;
-                    $inf["ilong"]   = $row->info_name_l;
-                    $inf["cdat"]    = $row->info_date;
-                    $inf["vdat"]    = $row->info_valid_from;
-                    $inf["bdat"]    = $row->info_valid_to;
-                    $inf["ityp"]    = $row->infotyp_ID;
-                    $inf["persknr"] = $row->aname;
-                    $inf["pers"]    = $row->persknr;
-                    $inf["infrel"]  = $row->info_rel_ID;
-//                    $inf["ifname"]  = $row->info_file;
-                    $inf["lang"]    = $row->lang;     
-                    $inf["fg"]      = $row->info_freigabe_ID;
-                    $inf["sort"]    = $row->info_sort;
-                    $inf["betr"]    = str_replace('.',',',$row->betrag);     
-                }            
-            }
-            // Produkt
-            $sql = "SELECT produkt_ID FROM Info_Produkt WHERE info_ID = $infid";
-            if ($result = $dbc -> queryObjectArray($sql))
-            {
-                foreach ($result as $row)
-                {
-                    $inf['prid'][] = $row->produkt_ID;
-                }
-            }
-            // Adressat
-            $sql = "SELECT info_adr_ID FROM Info_Adressat WHERE info_id = $infid";
-            if ($result = $dbc->queryObjectArray($sql))
-            {
-                foreach ($result as $row)
-                $inf["adr"][] = $row->info_adr_ID;
-            }
-            // Verantwortlicher
-            $sql = "SELECT iv.persknr,prioritaet, CONCAT (nachname, ', ',vorname) 
-                    FROM Info_Verantwortlich iv INNER JOIN Mitarbeiter m ON iv.persknr=m.persknr
-                    WHERE info_id = $infid
-                    ORDER BY 3";
-            if ($result = $dbc->queryObjectArray($sql))
-            {
-                foreach ($result as $row)
-                {
-                    $inf["vpers"][] = $row->persknr;
-//                    $inf["prio"][]  = $row->prioritaet;
-                    $inf["prio"][$row->persknr]  = $row->prioritaet;
-                }
-            }
-            // Dokumente
-            $sql = "SELECT if_filename, if_schlagwort FROM Info_File WHERE info_ID = $infid ORDER BY if_ID";
-            if ($result = $dbc -> queryObjectArray($sql))
-            {
-                foreach ($result as $row)
-                {
-                    $inf["ifname"][] = $row->if_filename;
-                    $inf["swort"][] = $row->if_schlagwort;
-                }
-            }
-//    print_r($inf); echo "<br /><br />";
-            
-        }
-        include($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/form/info_form2.inc.php");     
-/*        if ($sub)
-		{
-            echo            
-            "<tr>
-        		<td>Upload Infodokument </td>
-        		<td><input type=\"file\" name=\"ifile\" size=\"50\" maxlength=\"50\" value=\"" .
-            $_FILES["ifile"]["name"] . "\"/></td>
-            </tr>";
-    
-		}
-*/
-        if ($sub || $del)
-		{
-		  	if ($sub)
-                $frage = "Alle Angaben ok?";
-            elseif ($del)
-                $frage = "Information wirklich l&ouml;schen?";
-			echo "<tr>
-			  <td class=\"red\" valign=\"top\" align=\"left\">$frage</td>
-			        <td><input type=\"checkbox\" name=\"ok\" value=\"1\"";
-			        if ($ok)  echo "checked=\"checked\""; 
-			echo " /></td>\n</tr>\n"; 
-		}
-        if (!is_null($_SESSION["recht"]) && in_array("ie",$_SESSION["recht"]))
-        {
-            echo "
-           	<tr><td>&nbsp;</td>\n
-            	<td><input  class=\"button\" type=\"submit\" name=\"eintragen\" value=\"  eintragen  \" />";
-            if ($infid)
-            {
-                echo "&nbsp;&nbsp;&nbsp;<input class=\"buttonr\" type=\"submit\" value=\"l&ouml;schen\" name=\"del\" title=\"delete\" />";
-                echo "&nbsp;&nbsp;&nbsp;<input class=\"button\" type=\"submit\" value=\"duplizieren\" name=\"dup\" title=\"delete\" />";
-            }    
-           	echo "</td></tr>\n";
-        }
-        echo "</table>\n";
-        echo "</div>\n";
-//            if (!is_null($_SESSION["recht"]) && !in_array("le", $_SESSION["recht"]))
-            echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"info_flist.php?$getp\" target=\"_self\" title=\"Infoliste\">&laquo; zur Infoliste</a></p>\n"; 
-        echo "</form>\n";   
-    }
-    else
-    {
-        echo "<div align='center'>\n";
-        
-        if ($del)
-        {   // loescht auch m:n - Tabellen wegen Loeschweitergabe
-            $sql = "DELETE FROM Info WHERE info_ID = '$infid'";
-            $retdi = $dbc -> execute($sql);
-            if ($retdi)
-            {
-                // alte Namen Infodocumente
-                $sql = "SELECT if_filename FROM Info_File WHERE info_ID = $infid ORDER BY if_ID";
-                if ($res = $dbc -> queryObjectArray($sql))
-                    foreach ($res as $row)
-                        $ifile_old[] = $row->if_filename;
-                                                
-                include_once ("inc/file_upload.inc.php");
-                foreach ($inf['ifname'] as $key => $filename)
-                    $retdf  = $retdf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$ifile_old[$key]);  // Loeschen alte Datei
-                if ($retdf) echo "<p class='green'><b>Infodokumente zu ID '$infid' wurde gel&ouml;scht.</b></p>\n";
-                echo "<p class='green'><b>Infodaten zu ID '$infid' wurden gel&ouml;scht.</b></p>\n";
-                echo "<br /><br />\n";
-    
-                // Anzeigen geloeschter Infodaten
-                echo "<p class='green'><b>DELETE: Daten  zu '".$inf["iname"]."' wurden erfolgreich gel&ouml;scht.</b></p>\n";
-                include ("inc/info_dat_show.inc.php");
-            }                
-            else
-            {
-                echo "<p class='red'><b>DELETE: Daten  zu '".$inf["iname"]."' konnten nicht gel&ouml;scht werden!</b></p>\n";
-                echo "sql = $sql<br />";
-                echo "error DELETE: " . $dbc->error . "<br />";
-            }
-        }
-        else //INSERT oder UPDATE
-        {
-            //daten speichern
-            $inf["iname"] = substr($inf["iname"],0,300);
-            $inf["ilong"] = substr($inf["ilong"],0,8000);
-            $inf["sort"] = substr($inf["sort"],0,10);   // 28.03.2012 5 -> 10 Zeichen
-            if ($inf["ityp"] == -1) $inf["ityp"] = null;
-            
-            if ($inf["persknr"] < "!") $inf["pers"] = null;
-            if ($inf["infrel"] == -1) $inf["infrel"] = null;
-            if ($inf["lang"] == -1) $inf["lang"] = null;
-            if ($inf["ifname"] < "!") $inf["ifname"] = null;
-            
-            if ($inf["cdat"] == "") $inf["cdat"] = null; 
-            if ($inf["vdat"] == "") $inf["vdat"] = null; 
-            if ($inf["bdat"] == "") $inf["bdat"] = null; 
-            if ($inf["fg"] == -1) $inf["fg"] = null;
-            if (isset($inf['betr']) && $inf['betr']) $betrag = dbformat_wert($inf['betr']); else $betrag = null;   
-    
-            if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
-            
-            $stmt = $dbc -> stmtinit();
-            if (is_object($stmt))
-            {
-                if ($infid)
-                {   //UPDATE
-                    
-                    $stmt -> prepare("UPDATE fhiiqm.Info SET
-                                info_name_s = ?, 
-                                info_name_l = ?, 
-                                info_date = ?, 
-                                info_valid_from = ?, 
-                                info_valid_to = ?, 
-                                infotyp_ID = ?, 
-                                persknr = ?, 
-                                lang = ?,
-                                info_freigabe_ID = ?, 
-                                info_sort = ?, 
-                                info_rel_ID = ?,
-                                betrag = ?  WHERE info_ID = $infid");
-                    $stmt -> bind_param('sssssiisisid',$inf["iname"],$inf["ilong"],$inf["cdat"],$inf["vdat"],$inf["bdat"],$inf["ityp"],$inf["pers"],$inf["lang"],$inf["fg"],$inf["sort"],$inf["infrel"],$betrag);
-                    $result = $stmt -> execute();
-                    if ($stmt->error) echo "error UPDATE Info: " . $stmt->error . "<br><br>\n";
-                }
-                else
-                {   //INSERT
-                    $stmt -> prepare ("INSERT INTO Info (info_name_s,info_name_l,info_date,info_valid_from,info_valid_to,
-                                infotyp_ID,persknr,lang,info_freigabe_ID,info_sort,info_rel_ID,betrag) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)");
-                    $stmt -> bind_param('sssssiisisid', $inf["iname"],$inf["ilong"],$inf["cdat"],$inf["vdat"],$inf["bdat"],$inf["ityp"],$inf["pers"],$inf["lang"],$inf["fg"],$inf["sort"],$inf["infrel"],$betrag);
-                    $result = $stmt -> execute();      
-                
-                    if ($stmt->error) echo "error INSERT Info: " . $stmt->error . "<br><br>\n";
-                    if ($result)
-                    { // INSERT o.k.
-                      // info_ID ermitteln
-                        $infid = $dbc -> insertId();
-                    }    
-                } 
-            }   // stmt-Objekt
-            if ($result)
-            {
-                // upload Files
-                if ($infid) include ("inc/info_file.inc.php");
-                // n:m Tabellen INSERT
-                if ($ret &&  $retf) include ("inc/info_tab_ins.inc.php");
-            }
-            if ($result && $retf && $ret && $reta && $retp && $retv) // INSERT/UPDATE Info
-            {
-                //Eingabe Daten, Upload File erfolgreich 
-                    echo "<p class='green'><b>Infodaten zu ID '$infid' wurden erfolgreich gespeichert.</b></p>\n";
-                    echo "<br /><br />\n";
-
-                // Anzeigen gespeicherte Infodaten
-                include ("inc/info_dat_show.inc.php");
-            }            
-        }   // INSERT / UPDATE
-        echo "</div>";
-        echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"info_flist.php?$getp\" target=\"_self\" title=\"Infoliste\">Infoliste</a></p>\n"; 
-        echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"".$_SERVER["PHP_SELF"]."\" target=\"_self\" title=\"Info erfassen\">Weitere Info erfassen</a></p>\n";    
-        
-    }   // Form o.k. und submit
-?>
-    
-</body>
-</html>
+<?php
+
+/**
+ * @author Bettina Schwarzer, Fritz-Haber-Institut
+ * @copyright 02/2012
+ *
+ * INSERT,UPDATE Informationen ausser Betriebsanweisung, Betriebsstoerung
+ */
+
+    error_reporting(E_ALL ^ E_NOTICE);
+    
+    session_start();
+    if (! isset($_SESSION["userid"]))
+    { 
+        include_once ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");	
+        login($_SERVER["PHP_SELF"]);
+        exit;
+    }
+    
+    if (is_null($_SESSION["recht"]) || (!is_null($_SESSION["recht"]) && !in_array("ir",$_SESSION["recht"]) && !in_array("ie",$_SESSION["recht"])))
+    {
+        header("Location: start.php");
+        exit;
+    }    
+
+    $ityp   = $_GET["t"];
+    
+    $infid  = $_GET["i"];
+
+    $zeil = $_GET["z"];
+    if (!$zeil) $zeil = 10; // Anzahl der gezeigten Zeilen
+    $start = $_GET["st"];   // Start bei DS $start+1
+    if (!$start) $start=0;
+	$sort   = $_GET["s"];   // Sortierung nach Spalte
+    $dir    = $_GET["d"];   // Sortierrichtung
+    $fnum   = $_GET["f"];   // Spaltennummer, nach der aktuell gefiltert wird
+    $filter = $_GET["b"];   // Filterbegriff
+    // $_GET-Parameter zurück zur Infoliste mit den selben Einstellungen wie zuvor
+    $getp = "s=$sort&d=$dir&f=$fnum&b=$filter&st=$start&z=$zeil";
+    
+    $del    = $_POST["del"];
+    $sub    = $_POST["eintragen"];
+    $dup    = $_POST["dup"];
+    if (!$dup) $dup = $_GET["dp"];
+    $copy   = $_GET["c"];
+	$inf    = $_POST["inf"];
+    $ok		= $_POST["ok"];
+    if (!$inf["okn"]) $ok = false;
+    $duptext="";
+    
+//    print_r($inf); echo "ok = $ok<br /><br />";
+
+	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
+    include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
+	$dbc = new dbconnection();
+    
+    if ($dup)
+    {   // Info duplizieren
+        $tab = "Info";
+        $key = "info_ID";
+        $val =  $infid;
+//        $ret=1;
+        $ret = duplicate_record ($tab, $key, $val);
+        if ($ret)
+        { 
+            $infid_new=$ret;
+            // Infofilename loeschen
+            $sql = "UPDATE fhiiqm.Info SET info_file = NULL WHERE info_ID = $infid_new";
+            $retf = $dbc -> execute($sql);
+            if ($dbc->error) echo "<p  class='red'>error loeschen Info-File: " . $dbc->error . "</p>";
+            
+            // duplizieren Produkte
+            $sql = "INSERT INTO Info_Produkt SELECT $infid_new,produkt_ID FROM Info_Produkt WHERE info_ID = $infid";
+            $retp = $dbc -> execute($sql);
+            if ($dbc->error) echo "<p  class='red'>error copy Info_Produkt: " . $dbc->error . "</p>";
+            
+            // duplizieren Adressat
+            $sql = "INSERT INTO Info_Adressat SELECT $infid_new,info_adr_ID FROM Info_Adressat WHERE info_ID = $infid";
+            $reta = $dbc -> execute($sql);
+            if ($dbc->error) echo "<p  class='red'>error copy Info_Adressat: " . $dbc->error . "</p>";
+            
+            // duplizieren Verantwortliche
+            $sql = "INSERT INTO Info_Verantwortlich SELECT $infid_new,persknr,prioritaet FROM Info_Verantwortlich WHERE info_ID = $infid";
+            $retv = $dbc -> execute($sql);
+            if ($dbc->error) echo "<p  class='red'>error copy Info_Verantwortlich: " . $dbc->error . "</p>";
+            
+            if ($ret && $retf && $retp && $reta && $retv)
+            {
+                $addr = $_SERVER["PHP_SELF"] . "?i=$infid_new&c=1&$getp";
+                header("Location: $addr");
+                exit;
+            }
+            else $duptext = " - Fehler beim Duplizieren von ". $inf["iname"];    
+        }
+        else $duptext = " - Fehler beim Duplizieren von ". $inf["iname"];    
+    }
+    
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+   	<link href="/fhiiqm/css/db.css" rel="STYLESHEET" type="TEXT/CSS" media="screen"/> 
+   	<link href="/fhiiqm/css/db_print.css" rel="STYLESHEET" type="TEXT/CSS" media="print"/> 
+<!--
+    <link type="text/css" href="/fhiiqm/css/jquery/ui-lightness/jquery-ui-1.8.16.custom.css" rel="Stylesheet" />	
+    <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-1.6.2.min.js"></script>
+    <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-ui-1.8.16.custom.min.js"></script>
+-->
+    <link type="text/css" href="/fhiiqm/css/jquery/ui-lightness-1.8.21/jquery-ui-1.8.21.custom.css" rel="Stylesheet" />	
+    <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-1.7.2.min.js"></script>
+    <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-ui-1.8.21.custom.min.js"></script>
+
+	<title>Edit Informationen</title>
+</head>
+
+<body>
+
+    <script>
+      $(document).ready(function() {
+        $("#titel").focus();
+        $("#persknr").autocomplete({
+                source: "/fhiiqm/inc/ma_list_ac.inc.php",
+    			minLength: 2,
+                select: function(event,ui){$("#pid").val(ui.item.id);}
+    		});
+        $("#cdat").datepicker({
+            dateFormat: 'yy-mm-dd', //nur Datum
+            yearRange: '2000:2025',
+            changeMonth: true,
+			changeYear: true,
+            firstDay: 1,
+            dayNamesMin: ['So','Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' ],
+            monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'] 
+        });
+        $("#vdat").datepicker({
+            dateFormat: 'yy-mm-dd', //nur Datum
+            yearRange: '2000:2025',
+            changeMonth: true,
+			changeYear: true,
+            firstDay: 1,
+            dayNamesMin: ['So','Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' ],
+            monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'] 
+        });
+        $("#bdat").datepicker({
+            dateFormat: 'yy-mm-dd', //nur Datum
+            yearRange: '2000:2025',
+            changeMonth: true,
+			changeYear: true,
+            firstDay: 1,
+            dayNamesMin: ['So','Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' ],
+            monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'] 
+        });
+        $("input[id='persknr']").addClass("long20");
+        $("input[id='cdat']").addClass("long10");
+        $("input[id='vdat']").addClass("long10");
+        $("input[id='bdat']").addClass("long10");
+        });
+        function addInputf(divId,anz){
+                var cdiv = document.createElement('div');
+                var idl = "cbl_" + anz;
+                cdiv.innerHTML = "<span></span>Dok-Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name='inf[ifname][]' type='text' size='50' maxlength='50' value='' />";
+                cdiv.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schlagwort&nbsp;&nbsp;&nbsp;<input type='text' name='inf[swort][]'  size='30' maxlength='50' value='' />";
+                cdiv.innerHTML += "<img src='/fhiiqm/img/nixt.gif' border='0' height='100%' />";
+                //cdiv.innerHTML += "<span id='cbl'>&nbsp;&nbsp;&nbsp;<input type='checkbox' id='del' name='vertrag[del][]' value='1'/></span>";
+                cdiv.innerHTML += "<span id='cbl'>&nbsp;&nbsp;&nbsp;<input type='checkbox' id='del' name='inf[del][]' value='1'/>";
+                cdiv.innerHTML += "<label id='lb' for='del'>&nbsp;l&ouml;schen</label></span>";
+                cdiv.innerHTML += "<br />Upload-Dokument&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='file' name='ifile[]' size='50' maxlength='50' value='' />";
+                document.getElementById(divId).appendChild(cdiv);
+                var delcb = document.getElementById('del');
+                delcb.id = "del_" + anz;
+                delcb.style.display = 'none';
+                var lcb = document.getElementById('lb');
+                lcb.id = "lb_" + anz;
+                lcb.setAttribute("for", delcb.id);
+                lcb.style.display = 'none';
+                counter++;
+        }
+        function markdelInput(divId,anz){
+            for (i=1; i<anz; i++)
+            {
+                var id = "del_" + i;
+                var delcb = document.getElementById(id);
+                delcb.style.display = 'inline';
+                var idl = "lb_" + i;
+                var lcb = document.getElementById(idl);
+                lcb.style.display = 'inline';
+            }
+        }
+    </script>
+
+<?php
+    echo "&nbsp;";  
+    echo "<div class=\"float-br smaller\" valign='top'>";
+    echo "&nbsp;&nbsp;&nbsp;user: " . $_SESSION["userid"];
+    echo "&nbsp;&nbsp;&nbsp;<a class='sc' href='/fhiiqm/logout.php' title='Session beenden'>logout</a></div>\n";
+    echo "<div class=\"float-r\"><img src=\"/fhiiqm/img/document_image_ver.png\" border=\"0\" alt=\"Infodaten &auml;ndern\" title=\"Infodaten &auml;ndern\"/></div>\n";
+
+
+    echo "<div align='center'>";
+    if ($infid) $text = "editieren"; else $text = "erfassen";
+    if ($copy) $duptext = " (Kopie)";
+    echo "<h3>Information $text$duptext<h3>";
+    
+    echo "</div>\n";
+    
+    //Filename wenn Upload?
+    if (isset($_FILES["ifile"]["error"]))
+        foreach ($_FILES["ifile"]["error"] as $key => $err)
+            if ($err == 0 && !$inf["ifname"][$key]) $ok = $ok && false;
+
+    if (!$ok || (!$sub && !$del && !$dup))
+    {
+        if ($infid && (!$sub || !$del) && !isset($inf))
+        { // update
+            $sql = "SELECT info_ID,info_name_s,info_name_l,info_date,info_valid_from,info_valid_to,infotyp_ID,
+                                i.persknr,lang,info_file,info_rel_ID,info_freigabe_ID,info_sort,betrag, 
+                                CONCAT(nachname,', ',vorname) AS aname,i.timestamp,i.userid 
+                                FROM fhiiqm.Info i LEFT OUTER JOIN fhiiqm.Mitarbeiter m 
+                                ON i.persknr=m.persknr 
+                                WHERE info_ID = $infid";
+            if ($result = $dbc -> queryObjectArray($sql))
+            {
+                foreach ($result as $row)
+                {
+                    $inf["infid"]   = $infid;
+                    $inf["iname"]   = $row->info_name_s;
+                    $inf["ilong"]   = $row->info_name_l;
+                    $inf["cdat"]    = $row->info_date;
+                    $inf["vdat"]    = $row->info_valid_from;
+                    $inf["bdat"]    = $row->info_valid_to;
+                    $inf["ityp"]    = $row->infotyp_ID;
+                    $inf["persknr"] = $row->aname;
+                    $inf["pers"]    = $row->persknr;
+                    $inf["infrel"]  = $row->info_rel_ID;
+//                    $inf["ifname"]  = $row->info_file;
+                    $inf["lang"]    = $row->lang;     
+                    $inf["fg"]      = $row->info_freigabe_ID;
+                    $inf["sort"]    = $row->info_sort;
+                    $inf["betr"]    = str_replace('.',',',$row->betrag);
+                    $inf["tstmp"]   = $row->timestamp;
+                    $inf["uid"]     = $row->userid;     
+                }            
+            }
+            // Produkt
+            $sql = "SELECT produkt_ID FROM Info_Produkt WHERE info_ID = $infid";
+            if ($result = $dbc -> queryObjectArray($sql))
+            {
+                foreach ($result as $row)
+                {
+                    $inf['prid'][] = $row->produkt_ID;
+                }
+            }
+            // Adressat
+            $sql = "SELECT info_adr_ID FROM Info_Adressat WHERE info_id = $infid";
+            if ($result = $dbc->queryObjectArray($sql))
+            {
+                foreach ($result as $row)
+                $inf["adr"][] = $row->info_adr_ID;
+            }
+            // Verantwortlicher
+            $sql = "SELECT iv.persknr,prioritaet, CONCAT (nachname, ', ',vorname) 
+                    FROM Info_Verantwortlich iv INNER JOIN Mitarbeiter m ON iv.persknr=m.persknr
+                    WHERE info_id = $infid
+                    ORDER BY 3";
+            if ($result = $dbc->queryObjectArray($sql))
+            {
+                foreach ($result as $row)
+                {
+                    $inf["vpers"][] = $row->persknr;
+//                    $inf["prio"][]  = $row->prioritaet;
+                    $inf["prio"][$row->persknr]  = $row->prioritaet;
+                }
+            }
+            // Dokumente
+            $sql = "SELECT if_filename, if_schlagwort FROM Info_File WHERE info_ID = $infid ORDER BY if_ID";
+            if ($result = $dbc -> queryObjectArray($sql))
+            {
+                foreach ($result as $row)
+                {
+                    $inf["ifname"][] = $row->if_filename;
+                    $inf["swort"][] = $row->if_schlagwort;
+                }
+            }
+//    print_r($inf); echo "<br /><br />";
+            
+        }
+        include($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/form/info_form2.inc.php");     
+/*        if ($sub)
+		{
+            echo            
+            "<tr>
+        		<td>Upload Infodokument </td>
+        		<td><input type=\"file\" name=\"ifile\" size=\"50\" maxlength=\"50\" value=\"" .
+            $_FILES["ifile"]["name"] . "\"/></td>
+            </tr>";
+    
+		}
+*/
+        if ($sub || $del)
+		{
+		  	if ($sub)
+                $frage = "Alle Angaben ok?";
+            elseif ($del)
+                $frage = "Information wirklich l&ouml;schen?";
+			echo "<tr>
+			  <td class=\"red\" valign=\"top\" align=\"left\">$frage</td>
+			        <td><input type=\"checkbox\" name=\"ok\" value=\"1\"";
+			        if ($ok)  echo "checked=\"checked\""; 
+			echo " /></td>\n</tr>\n"; 
+		}
+        if (!is_null($_SESSION["recht"]) && in_array("ie",$_SESSION["recht"]))
+        {
+            echo "
+           	<tr><td>&nbsp;</td>\n
+            	<td><input  class=\"button\" type=\"submit\" name=\"eintragen\" value=\"  eintragen  \" />";
+            if ($infid)
+            {
+                echo "&nbsp;&nbsp;&nbsp;<input class=\"buttonr\" type=\"submit\" value=\"l&ouml;schen\" name=\"del\" title=\"delete\" />";
+                echo "&nbsp;&nbsp;&nbsp;<input class=\"button\" type=\"submit\" value=\"duplizieren\" name=\"dup\" title=\"delete\" />";
+            }    
+           	echo "</td></tr>\n";
+        }
+        echo "</table>\n";
+        echo "</div>\n";
+//            if (!is_null($_SESSION["recht"]) && !in_array("le", $_SESSION["recht"]))
+            echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"info_flist.php?$getp\" target=\"_self\" title=\"Infoliste\">&laquo; zur Infoliste</a></p>\n"; 
+        echo "</form>\n";   
+    }
+    else
+    {
+        echo "<div align='center'>\n";
+        
+        if ($del)
+        {   // loescht auch m:n - Tabellen wegen Loeschweitergabe
+            $sql = "DELETE FROM Info WHERE info_ID = '$infid'";
+            $retdi = $dbc -> execute($sql);
+            if ($retdi)
+            {
+                // alte Namen Infodocumente
+                $sql = "SELECT if_filename FROM Info_File WHERE info_ID = $infid ORDER BY if_ID";
+                if ($res = $dbc -> queryObjectArray($sql))
+                    foreach ($res as $row)
+                        $ifile_old[] = $row->if_filename;
+                                                
+                include_once ("inc/file_upload.inc.php");
+                foreach ($inf['ifname'] as $key => $filename)
+                    $retdf  = $retdf && mod_file("/var/www/fhiiqm/infos",$infid,"","del",$ifile_old[$key]);  // Loeschen alte Datei
+                if ($retdf) echo "<p class='green'><b>Infodokumente zu ID '$infid' wurde gel&ouml;scht.</b></p>\n";
+                echo "<p class='green'><b>Infodaten zu ID '$infid' wurden gel&ouml;scht.</b></p>\n";
+                echo "<br /><br />\n";
+    
+                // Anzeigen geloeschter Infodaten
+                echo "<p class='green'><b>DELETE: Daten  zu '".$inf["iname"]."' wurden erfolgreich gel&ouml;scht.</b></p>\n";
+                include ("inc/info_dat_show.inc.php");
+            }                
+            else
+            {
+                echo "<p class='red'><b>DELETE: Daten  zu '".$inf["iname"]."' konnten nicht gel&ouml;scht werden!</b></p>\n";
+                echo "sql = $sql<br />";
+                echo "error DELETE: " . $dbc->error . "<br />";
+            }
+        }
+        else //INSERT oder UPDATE
+        {
+            //daten speichern
+            $userid = $_SESSION["userid"];
+            $inf["iname"] = substr($inf["iname"],0,300);
+            $inf["ilong"] = substr($inf["ilong"],0,8000);
+            $inf["sort"] = substr($inf["sort"],0,10);   // 28.03.2012 5 -> 10 Zeichen
+            if ($inf["ityp"] == -1) $inf["ityp"] = null;
+            
+            if ($inf["persknr"] < "!") $inf["pers"] = null;
+            if ($inf["infrel"] == -1) $inf["infrel"] = null;
+            if ($inf["lang"] == -1) $inf["lang"] = null;
+            if ($inf["ifname"] < "!") $inf["ifname"] = null;
+            
+            if ($inf["cdat"] == "") $inf["cdat"] = null; 
+            if ($inf["vdat"] == "") $inf["vdat"] = null; 
+            if ($inf["bdat"] == "") $inf["bdat"] = null; 
+            if ($inf["fg"] == -1) $inf["fg"] = null;
+            if (isset($inf['betr']) && $inf['betr']) $betrag = dbformat_wert($inf['betr']); else $betrag = null;   
+    
+            if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
+            
+            $stmt = $dbc -> stmtinit();
+            if (is_object($stmt))
+            {
+                if ($infid)
+                {   //UPDATE
+                    
+                    $stmt -> prepare("UPDATE fhiiqm.Info SET
+                                info_name_s = ?, 
+                                info_name_l = ?, 
+                                info_date = ?, 
+                                info_valid_from = ?, 
+                                info_valid_to = ?, 
+                                infotyp_ID = ?, 
+                                persknr = ?, 
+                                lang = ?,
+                                info_freigabe_ID = ?, 
+                                info_sort = ?, 
+                                info_rel_ID = ?,
+                                betrag = ?,
+                                userid = ?
+                                WHERE info_ID = $infid");
+                    $stmt -> bind_param('sssssiisisids',$inf["iname"],$inf["ilong"],$inf["cdat"],$inf["vdat"],$inf["bdat"],$inf["ityp"],$inf["pers"],$inf["lang"],$inf["fg"],$inf["sort"],$inf["infrel"],$betrag,$userid);
+                    $result = $stmt -> execute();
+                    if ($stmt->error) echo "error UPDATE Info: " . $stmt->error . "<br><br>\n";
+                }
+                else
+                {   //INSERT
+                    $stmt -> prepare ("INSERT INTO Info (info_name_s,info_name_l,info_date,info_valid_from,info_valid_to,
+                                infotyp_ID,persknr,lang,info_freigabe_ID,info_sort,info_rel_ID,betrag,userid) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)");
+                    $stmt -> bind_param('sssssiisisids', $inf["iname"],$inf["ilong"],$inf["cdat"],$inf["vdat"],$inf["bdat"],$inf["ityp"],$inf["pers"],$inf["lang"],$inf["fg"],$inf["sort"],$inf["infrel"],$betrag,$userid);
+                    $result = $stmt -> execute();      
+                
+                    if ($stmt->error) echo "error INSERT Info: " . $stmt->error . "<br><br>\n";
+                    if ($result)
+                    { // INSERT o.k.
+                      // info_ID ermitteln
+                        $infid = $dbc -> insertId();
+                    }    
+                } 
+            }   // stmt-Objekt
+            if ($result)
+            {
+                // upload Files
+                if ($infid) include ("inc/info_file.inc.php");
+                // n:m Tabellen INSERT
+                if ($ret &&  $retf) include ("inc/info_tab_ins.inc.php");
+            }
+            if ($result && $retf && $ret && $reta && $retp && $retv) // INSERT/UPDATE Info
+            {
+                //Eingabe Daten, Upload File erfolgreich 
+                    echo "<p class='green'><b>Infodaten zu ID '$infid' wurden erfolgreich gespeichert.</b></p>\n";
+                    echo "<br /><br />\n";
+
+                // Anzeigen gespeicherte Infodaten
+                include ("inc/info_dat_show.inc.php");
+            }            
+        }   // INSERT / UPDATE
+        echo "</div>";
+        echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"info_flist.php?$getp\" target=\"_self\" title=\"Infoliste\">Infoliste</a></p>\n"; 
+        echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"".$_SERVER["PHP_SELF"]."\" target=\"_self\" title=\"Info erfassen\">Weitere Info erfassen</a></p>\n";    
+        
+    }   // Form o.k. und submit
+?>
+    
+</body>
+</html>