<?php
/**
* @author Bettina Schwarzer, Fritz-Haber-Institut
* @copyright 01/2012
*
* Laser-Logbuch-Liste & Form
*/
error_reporting(E_ALL ^ E_NOTICE);
session_start();
if (! isset($_SESSION["userid"]))
{
include_once ("inc/func_lib.inc.php");
login($_SERVER["PHP_SELF"]);
exit;
}
if (is_null($_SESSION["recht"]) || (!is_null($_SESSION["recht"]) && !in_array("lr",$_SESSION["recht"]) && !in_array("le",$_SESSION["recht"])))
{
header("Location: start.php");
exit;
}
include_once($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/inc/dbconnect.inc.php");
if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
?>
<!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 type="text/css" href="/fhiiqm/css/db.css" rel="Stylesheet" media="screen"/>
<link type="text/css" href="/fhiiqm/css/db_print.css" rel="Stylesheet" 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>Laser-Logbuch</title>
</head>
<body onload="document.ffilter.filter.focus();">
<script>
$(document).ready(function() {
$("#lid").focus();
$("#ldat").datepicker({
dateFormat: 'yy-mm-dd 00:00:00', //damit kann auch Uhrzeit angegeben werden
yearRange: '2000:2020',
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").ldat("long10").addClass("long10");
});
</script>
<?php
// Eingabeformular
$la = $_POST["la"];
$laid = $_GET["i"];
if (!$laid) $laid = $_POST["i"];
if (!$laid) $laid=0;
$sub = $_POST["eintragen"]; // submit Log-Form
$ok = $_POST["ok"];
if (!$la['okn']) $ok=false;
$ldat = urldecode($_GET["ld"]); // Log-Datum aus edit
if (!$ldat) $ldat = $_POST["ld"];
if (!$ldat) $ldat = "0";
// echo "ldat: $ldat, " . urlencode($ldat) . ", ". urldecode($ldat). "<br />";
// Felder, nach denen gefiltert werden kann
$fields = array(2=>"Laser-ID",3=>"Laser",4=>"Log-Datum");
// Anzahl der gezeigten Zeilen, Start ab Zeile
$zeil = $_GET["z"];
if (!$zeil) $zeil = $_POST["z"];
if (!$zeil) $zeil = 10;
$start = $_GET["st"];
if (!$start) $start=0;
$sort = $_GET["s"]; // Sortierung nach Spalte
if (!isset($sort) && !$sort) $sort = $_POST["s"];
$dir = $_GET["d"]; // Sortierrichtung
if (!isset($dir) && !$dir) $dir = $_POST["d"];
$fnum = $_GET["f"]; // Spaltennummer, nach der aktuell gefiltert wird
if (!isset($fnum) && !$fnum) $fnum = $_POST["f"];
$filter = $_POST["filter"];
if (!isset($filter) && !$filter) $filter = $_GET["b"];
$subf = $_POST["subf"]; // submit Filter
if (!isset($fnum) && !$fnum) $fnum = 1;
if (!isset($filter) && !$filter) $filter = "";
if (!isset($sort) && !$sort) $sort = 2;
if (!isset($dir) && !$dir) $dir = "";
echo " ";
echo "<div class=\"float-br smaller\" valign='top'>";
echo " user: " . $_SESSION["userid"];
echo " <a class='sc' href='/fhiiqm/logout.php' title='Session beenden'>logout</a></div>\n";
echo "<div class=\"float-r\"><img src=\"img/laser.png\" border=\"0\" alt=\"Laser\" title=\"Laser\"/></div>\n";
if ($ok && $sub) // Daten Laser-Logbuch speichern
{
if (!$ldat)
{
try
{
$logdate = new DateTime($la["ldat"]);
$ok=1;
}
catch(Exception $e)
{
echo "<p class='red'>fehlerhaftes Datum-Zeit-Feld: ".$e->getMessage(). "</p>";
$la["ldat"] = null;
$ok=0;
}
}
if ($ok)
{
$la["bem"] = substr($la["bem"],0,500);
$stmt = $dbc -> stmtinit();
if (is_object($stmt))
{
if (!$ldat)
{ // neuer Eintrag
$stmt -> prepare("INSERT INTO fhiiqm.Laser_Logbuch (las_ID,log_date,log_bem) VALUES (?,?,?)");
$stmt -> bind_param('iss',$la["lid"],$la["ldat"],$la["bem"]);
$res = $stmt -> execute();
// print_r($stmt); echo "<br /><br />";
if ($stmt->error) echo "INSERT Laser-Logbuch, error: " . $stmt->errno . " - ". $stmt->error . "<br><br>\n";
}
else
{ // log-bem aendern
$stmt -> prepare("UPDATE fhiiqm.Laser_Logbuch SET log_bem = ? WHERE las_ID=? AND log_date=?");
$stmt -> bind_param('sis',$la["bem"],$laid,$ldat);
$res = $stmt -> execute();
if ($stmt->error) echo "UPDATE Laser-Logbuch, error: " . $stmt->errno . " - ". $stmt->error . "<br><br>\n";
}
$stmt -> free_result(); // wegen weiterer query
if (!$la["lid"])
{
$la["lid"]=$laid;
$savetxt = "UPDATE";
$ldat = "0"; // neue Eingabe ermoeglichen
}
else $savetxt = "INSERT";
$sql = "SELECT las_bez FROM fhiiqm.Laser WHERE las_ID = " . $la["lid"];
$lbez = $dbc -> querySingleItem($sql);
if ($res)
{
echo "<p class='green'><b>$savetxt: Daten zu '".$lbez."' wurden erfolgreich gespeichert.</b></p>\n";
unset($la);
$sub = 0;
}
else
echo "<p class='red'><b>$savetxt: Daten zu '".$lbez."' konnten nicht gespeichert werden!</b></p>\n";
}
}
}
// Log-Eintraege holen
$sql = "CALL laser_log_flist($sort,'" . $dir . "',$fnum, '" . $filter . "',$start,$zeil,$laid,@anz);";
// Parameter: Nr. Sortfeld, Sortierrichtung, Nr. Filterfeld, Filterbegriff, Startsatz(0), Anzahl zu liefernde DS, Laser-ID, Anzahl gefundener Laser
// liefert: las_ID, las_ID,las_bez, log_date,log_bem
/* $sql = "SELECT b.las_ID,las_bez, log_date,log_bem
FROM `fhiiqm`.`Laser_Logbuch` b INNER JOIN Laser l
ON b.las_ID=l.las_ID";
*/
$result = $dbc ->queryObjectArray($sql);
if ($dbc -> error)
echo "error: " . $dbc -> error . "<br />\n";
if (!$result)
{
echo "<p class='red'> Leider nichts gefunden für ". $fields["$fnum"] . " wie '$filter'!<br />";
}
$bg1 = "#F8F8F8";
$bg2 = "#DEDFE1";
$bg = "#FFFFFF";
echo "<div align='center'>\n";
echo "<p><b>Laser - Logbuch</b></p>\n";
echo "<table border='0' cellspacing='0'>\n";
echo "<tr><td class='bigger'>Mittels '<img src='/fhiiqm/img/auf.gif' border='0' width='11' hight='11' />' / '<img src='/fhiiqm/img/ab.gif' border='0' width='11' hight='11' />'
können Sie nach relevanten Spalten auf- bzw. absteigend sortieren</td></tr>
<tr><td class='bigger'>'<img src='/fhiiqm/img/filter.gif' border='0' width='14' hight='11' />' ermöglicht das Filtern nach ausgewählten Spalten der Liste</td></tr>\n";
echo "</table>\n";
if ($result) $anz = $dbc -> querySingleItem("SELECT @anz"); else $anz = 0;
if ($dbc -> error) echo "error Anzahl: " . $dbc -> error . "<br />\n";
if ($laid) $laser = " für Laser-ID=$laid"; else $laser = "";
printf ("<p>Anzahl Logbucheinträge$laser: %s</p>", $anz);
if (isset($fnum) && $fnum>1 && !$filter && !$subf)
{
// Formular anzeigen fuer Filterbegriff
$text = $fields[$fnum];
if ($fnum == 4) $tip = "vollständiges Datum in der Form 'yyyy-mm-tt' angeben"; else $tip = "";
echo "<form action=" . $_SERVER['PHP_SELF'] . " method='post' enctype='application/x-www-form-urlencoded' id='ffilter' name='ffilter' target='_self'>\n";
echo "<input type='hidden' name='s' value='$sort'>";
echo "<input type='hidden' name='d' value='$dir'>";
echo "<input type='hidden' name='f' value='$fnum'>";
echo "<input type='hidden' name='i' value='$laid'>"; // nur gewaehlte Laser-ID
echo "<table width=\"30%\" border=\"0\">\n";
echo "<tr><td>filtern nach $text: </td>";
echo "<td><input id='filter' name='filter' type=\"text\" size=\"10\" maxlength=\"30\" value=\"$filter\"/>";
echo "<td><input class=\"button\" type=\"submit\" value=\"finden\" name=\"subf\" title=\"subf\" /></td></tr>";
echo "<tr><td colspan='3'>$tip</td></tr></table>\n";
echo "</form>\n";
echo "<p> </p>\n";
}
echo "<table width='60%'>\n";
if ($filter>'!') echo "<tr><td class='bigger' colspan='5'>Filter: ". $fields["$fnum"] . " wie '$filter'</td><tr>\n";
// Listenkopf generieren
echo "<tr bgcolor='#68ACBF'>";
tab_column(2,"Las-ID",$sort,$dir,2,$fnum,$filter,$start,$zeil,$laid);
tab_column(3,"Laser",$sort,$dir,3,$fnum,$filter,$start,$zeil,$laid);
tab_column(4,"Log-Datum",$sort,$dir,4,$fnum,$filter,$start,$zeil,$laid);
echo "<th width='60%'>Eintrag</th>";
echo "<th> </th></tr>\n";
if ($result)
{
// Logdaten anzeigen
foreach ($result as $row)
{
if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
if ($laid == $row->las_ID && $ldat == $row->log_date) $bg = "#D6E6E6";
echo "<tr bgcolor='" . $bg . "'><td class='right'>$row->las_ID </td>";
echo "<td>$row->las_bez</td>";
if ($row->log_date)
{
$ld = new DateTime($row->log_date);
echo "<td>" . $ld->format('d.m.Y H:i:s')."</td>";
}
if ($laid == $row->las_ID && $ldat == $row->log_date)
{ //Aenderungsform, nur Log-Eintrag
$okn = true;
if (!$la['bem']) $la['bem'] = $row->log_bem;
echo "<form action='". $_SERVER['PHP_SELF'] ."' method='post' enctype='application/x-www-form-urlencoded' name='flas'>\n";
echo "<td class='red'><textarea name=\"la[bem]\" id=\"bem\" rows=\"5\" cols=\"100\">" . $la['bem'] ."</textarea><br />";
echo "<input type=\"hidden\" name=\"la[okn]\" value=\"$okn\"/>\n";
echo "<input type=\"hidden\" name=\"i\" value=\"$laid\"/>\n"; // nur gewaehlte Laser-ID
echo "<input type=\"hidden\" name=\"ld\" value=\"$ldat\"/>";
if ($sub)
{
$frage = "Alle Angaben ok?";
echo "$frage<input type=\"checkbox\" name=\"ok\" value=\"1\"";
if ($ok) echo "checked=\"checked\"";
echo "/> ";
}
echo "<input class=\"button\" type=\"submit\" name=\"eintragen\" value=\"eintragen\" /></td>";
echo "</form>\n";
echo "<td> </td>";
}
else
{
echo "<td>".nl2br($row->log_bem)."</td>";
if (!is_null($_SESSION["recht"]) && in_array("le",$_SESSION["recht"]))
echo "<td><a href='" . $_SERVER["PHP_SELF"]."?i=$row->las_ID&ld=" . urlencode($row->log_date) . // &f=$fnum&b=$filter&s=$sort&d=$dir&st=$st&z=$zeil
"'><img src=\"/fhiiqm/img/edit.gif\" alt='edit Log-Eintrag' title='edit Log-Eintrag' border='0'/></a></td>";
else echo "<td> </td>";
}
echo "</tr>\n";
}
// $dbc->result->free();
}
if ((!$ok || !$sub) && !$ldat && !is_null($_SESSION["recht"]) && in_array("le",$_SESSION["recht"]))
{
// Eingabe neuer Logbuch-Eintrag
$okn = true;
echo "<form action='". $_SERVER['PHP_SELF'] ."' method='post' enctype='application/x-www-form-urlencoded' name='flas'>\n";
echo "<tr bgcolor='#D6E6E6'><td> </td><td>";
echo "<select name=\"la[lid]\" id='lid'>";
if ($laid) $wher = " WHERE las_ID = $laid "; else $wher = "";
$sql = "SELECT las_ID, las_bez FROM Laser $wher ORDER BY 2";
if ($res = $dbc -> queryObjectArray($sql))
{
$select = "";
foreach ($res as $row)
{
if ($row->las_ID == $la['lid']) $select="selected"; else $select="";
echo "<option $select value='$row->las_ID'>$row->las_ID - $row->las_bez</option>\n";
}
}
if ($dbc->error) echo "error Laserliste: ".$dbc -> error."</br>";
echo "</td><td valign=\"top\"><input class=\"long10\" type=\"text\" name=\"la[ldat]\" id=\"ldat\" value=\"" . $la['ldat']. "\"/>";
echo "<br />Uhrzeitangabe notwendig, falls für LaserID Eintrag am selben Tag vorhanden.";
if (isset($la['ldat']) && $la['ldat']< "!")
{
echo "<br><span class=\"red\">Log-Datum ist erforderlich!</span>\n";
$okn = false;
}
echo "</td><td class='red'><textarea name=\"la[bem]\" id=\"bem\" rows=\"5\" cols=\"100\">" . $la['bem'] ."</textarea><br />";
echo "<input type=\"hidden\" name=\"la[okn]\" value=\"$okn\"/>\n";
echo "<input type=\"hidden\" name=\"i\" value=\"$laid\"/>\n"; // nur gewaehlte Laser-ID
if ($sub)
{
$frage = "Alle Angaben ok?";
echo "$frage<input type=\"checkbox\" name=\"ok\" value=\"1\"";
if ($ok) echo "checked=\"checked\"";
echo "/> ";
}
echo "<input class=\"button\" type=\"submit\" name=\"eintragen\" value=\"eintragen\" /></td>";
echo "<td> </td></tr>\n";
echo "</form>\n";
}
echo "</table>\n";
echo "</div>\n";
echo "<br /> ";
// Sortierung und Filter aus $_GET fuer weitere Seiten
foreach ($_GET as $key=>$val)
{
if ($key != "st") $liste .= "&" . $key ."=".$val;
}
// Sortierung und Filter aus $_POST fuer weitere Seiten
if ($subf)
foreach ($_POST as $key=>$val)
{
if ($key != "st" && $key != "subf" && $key != "filter") $liste .= "&" . $key ."=".$val;
if ($key == "filter") $liste .= "&b=" . $val;
}
// Links auf andere Seiten generieren
liste_links($start,$zeil,$anz,$liste);
$dbc -> close();
echo "<p> <a href=\"".$_SERVER["PHP_SELF"]."\" target=\"_self\" title=\"Laser-Log\" class=\"sc\">Log-Buch alle Laser</a></p>\n";
echo "<p> <a href=\"/fhiiqm/laser_flist.php\" target=\"_self\" title=\"Laserliste\" class=\"sc\">Laserliste</a></p>\n";
?>
</body>
</html>