+ MA-Funktionen (jquery ui:autocomplete, datepicker)
authorBettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Thu, 08 Sep 2011 15:25:25 +0200
changeset 7 d2fe4fb36670
parent 6 12d2e7b9c20d
child 8 908abe8cec4d
+ MA-Funktionen (jquery ui:autocomplete, datepicker)
fhiiqm/form/ma_fkt_form.inc.php
fhiiqm/inc/fkt_list_ac.inc.php
fhiiqm/inc/ma_list_ac.inc.php
fhiiqm/ma_fkt_ed.php
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fhiiqm/form/ma_fkt_form.inc.php	Thu Sep 08 15:25:25 2011 +0200
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * @author Bettina Schwarzer, Fritz-Haber-Institut
+ * @copyright 09/2011
+ */
+
+
+
+?>
+<div align="center">
+<table>
+<tr><td class="bigger">Die Auswahl von Mitarbeiter bzw. Funktion geschieht durch<br />Eingeben von mindesten 2 bzw. 1 Zeichen in das entsprechende Feld.
+</td></tr>
+<tr><td class="bigger"><div class="red">Achtung! </div>Umlaute wie '&auml;', '&uuml;', '&ouml;', '&szlig;' werden nicht gefunden, bitte benachbarte Zeichen eingeben.</td></tr>
+<tr><td class="bigger">&nbsp;</td></tr>
+</table>
+</div>
+<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="application/x-www-form-urlencoded" name="fmafkt"> 
+<div align="center">
+    <table border="0" cellspacing="3" cellpadding="3">
+        <div class="ui-widget">
+        <tr><td>Mitarbeiter *</td>
+            <td valign="top"><input class="long20" type="text" name="fkt[persknr]" id="persknr" value="<?php echo $fkt['persknr']; ?>"/>
+            </td>
+        </tr>
+        <tr><td>Funktion *</td>
+            <td valign="top"><input class="long20" type="text" name="fkt[func]" id="func" value="<?php echo $fkt['func']; ?>"/>
+            </td>
+        </tr>
+        <tr><td>Geltungsbereich</td>
+            <td valign="top"><input class="long20" type="text" name="fkt[ber]" id="ber" maxlength="50" value="<?php echo $fkt['ber']; ?>"/>
+            </td>
+        </tr>
+        <tr><td>Beginn</td>
+            <td valign="top"><input class="long10" type="text" name="fkt[von]" id="von" value="<?php echo $fkt['von']; ?>"/>
+            </td>
+        </tr>
+        <tr><td>Ende</td>
+            <td valign="top"><input class="long10" type="text" name="fkt[bis]" id="bis" value="<?php echo $fkt['bis']; ?>"/>
+            </td>
+        </tr>
+        <tr><td>Bemerkung</td>
+            <td valign="top"><textarea name="fkt[bem]" id="bem" rows="3" cols="33"><?php echo $fkt['bem']; ?></textarea>
+            </td>
+        </tr>
+       	<tr><td>&nbsp;</td>
+        	<td><input  class="button" type="submit" name="eintragen" value="  eintragen  " />
+        <!--			<input type="submit" name="abbrechen" value="abbrechen">&nbsp;&nbsp;&nbsp; -->
+      		</td>
+        	</tr>
+         </div>
+    </table>
+    <input type="hidden" name="fkt[pid]" id="pid" value="<?php echo $fkt['pid']; ?>"/>
+    <input type="hidden" name="fkt[fid]" id="fid" value="<?php echo $fkt['fid']; ?>"/>
+</form>
+</div>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fhiiqm/inc/fkt_list_ac.inc.php	Thu Sep 08 15:25:25 2011 +0200
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * @author Bettina Schwarzer, Fritz-Haber-Institut
+ * @copyright 09/2011
+ *
+ * Autocomplete Funktionensuche
+ */
+
+    header('Content-type: text/html; charset="iso-8859-1',true); //wg. jquery ui autocomplete
+    error_reporting(E_ALL ^ E_NOTICE);
+    
+    $q = strtolower($_GET["term"]); // wird in jquery in 'term' uebergeben
+
+    
+	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
+	$dbc = new dbconnection();
+
+    $sql = "SELECT fkt_bez as label, fkt_bez as val, fkt_ID as id FROM `fhiiqm`.`Funktion` 
+            WHERE fkt_bez LIKE '%".$q."%' COLLATE latin1_general_ci 
+            ORDER BY 1";
+    $result = $dbc ->queryObjectArray($sql);
+    if ($result)
+    {
+        foreach ($result as $row)
+        {
+ 			$clist[] = "{\"label\": \"" . $row->label . "\",\"value\": \"" . $row->val . "\",\"id\": \"" . $row->id . "\"}";
+		}
+        echo "[" . implode(", ", $clist) . "]"; // Format, das jquery source erwartet
+    }
+    $dbc -> close();
+?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fhiiqm/inc/ma_list_ac.inc.php	Thu Sep 08 15:25:25 2011 +0200
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * @author Bettina Schwarzer, Fritz-Haber-Institut
+ * @copyright 09/2011
+ *
+ * Autocomplete Mitarbeitersuche
+ */
+
+    header('Content-type: text/html; charset="iso-8859-1',true); //wg. jquery ui autocomplete
+    error_reporting(E_ALL ^ E_NOTICE);
+    
+    $q = strtolower($_GET["term"]); // wird in jquery in 'term' uebergeben
+
+    
+	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
+	$dbc = new dbconnection();
+
+    $sql = "SELECT  CONCAT (nachname, ', ',vorname) as label, CONCAT (nachname, ', ',vorname) as val,persknr as id 
+            FROM fhiiqm.Mitarbeiter
+            WHERE nachname LIKE '%".$q."%' COLLATE latin1_general_ci 
+            ORDER BY 1";
+    $result = $dbc ->queryObjectArray($sql);
+    if ($result)
+    {
+        foreach ($result as $row)
+        {
+ 			$clist[] = "{\"label\": \"" . $row->label . "\",\"value\": \"" . $row->val . "\",\"id\": " . $row->id . "}";
+		}
+        echo "[" . implode(", ", $clist) . "]"; // Format, das jquery source erwartet
+    }
+    $dbc -> close();
+?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fhiiqm/ma_fkt_ed.php	Thu Sep 08 15:25:25 2011 +0200
@@ -0,0 +1,164 @@
+<?php
+
+/**
+ * @author Bettina Schwarzer
+ * @copyright 2011
+ */
+
+    error_reporting(E_ALL ^ E_NOTICE);
+    
+    include_once($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/inc/dbconnect.inc.php");
+    if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
+?>
+
+<!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" />	
+    <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>
+    <title>Funktionen</title>
+ </head>
+ 
+ <body>
+    <div class="float-r"><img src="img/reseller_account_template.png" border="0" alt="Mitarbeiter-Funktion" title="Mitarbeiter-Funktion"/></div>
+    <div align='center'>
+    <script>
+      $(document).ready(function() {
+        $("#persknr").focus();
+        $("#persknr").autocomplete({
+                source: "/fhiiqm/inc/ma_list_ac.inc.php",
+    			minLength: 2,
+                select: function(event,ui){$("#pid").val(ui.item.id);}
+    		});
+        $("#func").autocomplete({
+                source: "/fhiiqm/inc/fkt_list_ac.inc.php",
+    			minLength: 1,
+                select: function(event,ui){$("#fid").val(ui.item.id);}
+    		});
+
+        $("#von").datepicker({
+            dateFormat: 'yy-mm-dd',
+            yearRange: '2000:2020',
+            changeMonth: true,
+			changeYear: true
+        });
+        $("#bis").datepicker({
+            dateFormat: 'yy-mm-dd',
+            yearRange: '2000:2025',
+            changeMonth: true,
+			changeYear: true
+        });
+        $("input").filter("long20").addClass("long20");
+        $("input").filter("long30").addClass("long30");
+        $("input").filter("long50").addClass("long50");
+        });
+    </script>
+    
+    <?php
+        $fkt = $_POST["fkt"];
+        if (!$fkt["pid"]) $fkt["pid"] = $_GET["p"];
+        if (!$fkt["fid"]) $fkt["fid"] = $_GET["f"];
+        $sub = $_POST["eintragen"];
+           
+        echo "<h3>Zuordnung von Funktionen zu Mitarbeitern<h3>";
+        
+        echo "</div>\n";    
+        
+        if ((!isset($fkt) && !$fkt) || !$fkt["pid"] || !$fkt["fid"] || !$sub) 
+        {
+            if ($fkt["pid"] && $fkt["fid"])
+            {
+                $sql = "SELECT fkt_bereich, fkt_von, fkt_bis, fkt_bem, CONCAT(nachname,', ',vorname) AS vname, fkt_bez  
+                        FROM fhiiqm.MA_Funktion ma INNER JOIN 
+                        fhiiqm.Mitarbeiter m ON ma.persknr=m.persknr INNER JOIN
+                        fhiiqm.Funktion f ON ma.fkt_ID=f.fkt_ID
+                        WHERE ma.persknr = " . $fkt["pid"] . " AND ma.fkt_ID ='" . $fkt["fid"] ."'";
+                if ($result = $dbc -> queryObjectArray($sql))
+                {
+                    foreach ($result as $row)
+                    {
+                        $fkt["persknr"] = $row->vname;
+                        $fkt["func"] = $row->fkt_bez;
+                        $fkt["ber"] = $row->fkt_bereich;
+                        $fkt["von"] = $row->fkt_von;
+                        $fkt["bis"] = $row->fkt_bis;
+                        $fkt["bem"] = $row->fkt_bem;
+                    } 
+                }
+            }
+            include ($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/form/ma_fkt_form.inc.php");     
+        }
+        else
+        {
+            // Daten speichern
+            echo "<div align='center'>\n";
+            
+            // Eingabedaten validieren
+            if (!$fkt["von"])
+                $fvon = null;
+            elseif (!$fvon = new DateTime_s($fkt["von"])) 
+                $fvon = null;
+            if (!$fkt["bis"])
+                $fbis = null;
+            elseif (!$fbis = new DateTime_s($fkt["bis"])) 
+                $fbis = null;
+            if ($fkt["ber"]) $fkt["ber"] = substr($fkt["ber"],0,50); else $fkt["ber"]=null;
+            if ($fkt["bem"]) $fkt["bem"] = substr($fkt["bem"],0,100); else $fkt["bem"]=null;
+/*
+            echo "MA = ".$fkt["pid"] ." - ". $fkt["persknr"] . ", Funktion= ".$fkt["fid"] ." - ".  $fkt["func"] . ", Bereich = " . $fkt["ber"] . 
+                    ", von = ".$fkt["von"] .", bis = ".$fkt["bis"] .", bem = ".$fkt["bem"] ."<br />\n";
+            echo "fvon = $fvon, fbis = $fbis<br />\n";
+*/            
+            if ($fkt["pid"] && $fkt["fid"])
+            {
+                $sql="SELECT COUNT(*) FROM MA_Funktion WHERE persknr=" . $fkt["pid"] . " AND fkt_ID='" . $fkt["fid"] ."'";
+                $result = $dbc ->querySingleItem($sql);
+                if ($result && $fkt["ber"]>"!")
+                {   // UPDATE
+                    $stmt = $dbc -> stmtinit();
+                    if (is_object($stmt))
+                    {
+                        $stmt -> prepare("UPDATE fhiiqm.MA_Funktion SET
+                                    fkt_bereich = ?,
+                                    fkt_von = ?,
+                                    fkt_bis = ?,
+                                    fkt_bem = ? 
+                                    WHERE persknr=" . $fkt["pid"] . " AND fkt_ID='" . $fkt["fid"] ."'");
+                        $stmt -> bind_param('ssss',$fkt["ber"], $fvon, $fbis, $fkt["bem"]);
+                        $res = $stmt -> execute();
+                            print_r($stmt);
+                        if ($dbc->error) echo "error: " . $dbc->errno." -> ".$dbc->error . "<br><br>\n";
+                        if ($res)
+                            echo "<p class='green'><b>UPDATE: Daten  zu '".$fkt["persknr"]."' und '".$fkt["func"]."' wurde erfolgreich gespeichert.</b></p>\n";
+                        else
+                            echo "<p class='red'><b>UPDATE: Daten  zu '".$fkt["persknr"]."' und '".$fkt["func"]."' konnte nicht gespeichert werden!</b></p>\n";
+                   }
+                }
+                else
+                {   // INSERT
+                        $stmt = $dbc -> stmtinit();
+                        if (is_object($stmt))
+                        {
+                            $stmt -> prepare("INSERT INTO fhiiqm.MA_Funktion (persknr,fkt_ID,fkt_bereich,fkt_von,fkt_bis,fkt_bem) VALUES(?,?,?,?,?,?)");
+                            $stmt -> bind_param('iss',$fkt["pid"],$fkt["fid"],$fkt["ber"], $fvon, $fbis, $fkt["bem"]);
+                            $res = $stmt -> execute();
+                            if ($dbc->error) echo "error: " . $dbc->errno." -> ".$dbc->error . "<br><br>\n";
+                            if ($res)
+                                echo "<p class='green'><b>INSERT: Zuordnung  von '".$fkt["func"]."' zu '".$fkt["persknr"]."' wurde erfolgreich gespeichert.</b></p>\n";
+                            else
+                                echo "<p class='red'><b>INSERT: Zuordnung  von '".$fkt["func"]."' zu '".$fkt["persknr"]."' konnte nicht gespeichert werden!</b></p>\n";
+                       }
+                    
+                }
+            }
+        echo "</div>\n";    
+        echo "<p>&nbsp;&nbsp;&nbsp;<a href=\"ma_fkt_ed.php\" target=\"_self\" title=\"Information erfassen\">Weitere Funktion erfassen/editieren</a></p>\n";    
+        }   
+    ?>
+
+ </body>
+ </html>