fhiiqm/keytyp_korr_dep.php
author schwarzer@hyperion.rz-berlin.mpg.de
Mon, 01 Jul 2013 14:36:18 +0200
changeset 38 45c139f74ea4
child 39 4ce411ed28b6
permissions -rw-r--r--
+ Laborinfo; Keytyp-Verwaltung

<?php

/**
 * @author Bettina Schwarzer, Fritz-Haber-Institut
 * @copyright 06/2013
 * 
 * Keytyp add, lost Depot
 */

    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("kr",$_SESSION["recht"]) && !in_array("ke",$_SESSION["recht"])))
    {
        header("Location: start.php");
        exit;
    }    

	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
	if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
    
    // zulaessige Depots, 'edit' = 1 -> bearbeitbar
    $uid = $_SESSION["userid"];
    $sql = "SELECT depot_ID,edit FROM KeyDepot_userweb WHERE userid = '$uid'";
    $res = $dbc -> queryObjectArray($sql);
    foreach ($res as $row)
        if ($row->edit) $adep[] = $row->depot_ID;
//    print_r($adep); echo "<br />";
    $aaction = array("get" => "Zugang", "out" => "Abgang", "lost" => "Verlust"); //Bezeichnung Transfer
    
    $ky  = $_POST["ky"];
    $dep = $ky['dep'];
    if (!$dep) $dep='AC';

?>
<!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-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>Keytyp Dep korrigieren</title>
</head>

<body>
        <script>
          $(document).ready(function() {
            var dep = document.getElementById("dep");
            dep = dep.value;
            $("#ktn").autocomplete({
                    source: "/fhiiqm/inc/keytyp_list_ac.inc.php?t=d&d="+dep,
        			minLength: 2,
                    select: function(event,ui){$("#ktn").val(ui.item.id);}
            });
            });
        </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=\"img/key.png\" border=\"0\" alt=\"Keytyp transferieren\" title=\"Depotverwaltung Schl&uuml;sseltyp\"/></div>\n";

    echo "<div align=\"center\">";
    echo "<h3>Korrektur Schl&uuml;sseltyp im Depot</h3>";
    echo "</div>\n";
    
    if (!isset($adep))
        echo "<p class='red'>&nbsp;&nbsp;&nbsp;Sie haben nicht das Recht, Schl&uuml;ssel in Depots zu pflegen. Bitte wenden Sie sich an Frau Kohl.</p>";
    else
    {

        $out = $_POST["out"];
        $get = $_POST["get"];
        $lost = $_POST["lost"];
        
        if (isset($ky) && ($out || $lost))
        {
            $sql = "SELECT IFNULL(SUM(CASE WHEN depot_action='get' THEN IFNULL(depot_anz,0) ELSE 0 END),0) - IFNULL(SUM(CASE WHEN depot_action='out' THEN IFNULL(depot_anz,0) ELSE 0 END),0) - IFNULL(SUM(CASE WHEN depot_action='lost' THEN IFNULL(depot_anz,0) ELSE 0 END),0) AS bestand
                                FROM fhiiqm.Keytyp_Depot WHERE depot_ID='".$ky["dep"]."' AND keytyp_ID = '". $ky["kt"] ."'";
            $anzdep = $dbc->querySingleItem($sql);
            if (is_numeric($ky["anz"]) && $anzdep < $ky["anz"]) $err = "Abgang/Verlust: Bestand '". $ky["kt"] ."' Depot 'FHI':  <b>$anzdep < ".$ky["anz"]."</b> (Transfer-Anzahl)!";
        }
        if (isset($ky["anz"]) && !is_numeric($ky["anz"]) && ($out || $get || $lost)) $err = "Anzahl ist ncht numerisch!";

        if (!isset($ky) || (!$out && !$get && !$lost) || $err)
        {
?>
            <div align="center">
            <h5>* - Felder sind erforderlich!</h5>
            </div>
            <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="application/x-www-form-urlencoded" name="form_key">
            <div align="center">
            <?php
                if ($err) echo "<p class='red'>$err</p>\n";
            ?>
            <table width="50%" border="0" cellspacing="3" cellpadding="3">

                <tr>
                    <td>Depot *</td><td>Schl&uuml;sseltyp *</td><td>Schl&uuml;sseltyp neu</td><td>Anzahl *</td>
                </tr>
                <tr>
                    <td><select id="dep" name="ky[dep]" onchange="this.form.submit();">
                        <?php
                            $strdep = "'". implode("','",$adep) ."'";
//                            echo "$strdep<br />";
                            $sql = "SELECT * FROM fhiiqm.KeyDepot WHERE depot_ID IN ($strdep)";
                            if ($res = $dbc -> queryObjectArray($sql))
                                foreach ($res as $row)
                                {
                                   if (!$ky['dep'] && !$beg)  $ky['dep'] = $row->depot_ID;
                                   if ($row->depot_ID == $ky['dep']) $select = "selected='selected'"; else $select = "";
        					       echo "<option $select value=\"$row->depot_ID\">$row->depot_ID: $row->depot_bez</option>\n";
                                   $beg=1;
                                }
                            $beg=0;
                        ?>
                    </select>
                    </td>
                    <td><select name="ky[kt]">
                        <?php
                            $strdep = "'". implode("','",$adep) ."'";
                            $sql = "SELECT key_level,d.keytyp_ID,keytyp_bez,
                                        SUM(CASE WHEN depot_action='get' THEN IFNULL(depot_anz,0) ELSE 0 END) - SUM(CASE WHEN depot_action='out' THEN IFNULL(depot_anz,0) ELSE 0 END) - SUM(CASE WHEN depot_action='lost' THEN IFNULL(depot_anz,0) ELSE 0 END) AS bestand
                                        FROM fhiiqm.Keytyp_Depot d INNER JOIN Keytyp k ON d.keytyp_ID=k.keytyp_ID 
                                        WHERE depot_ID = '" . $ky['dep'] . "'
                                        GROUP BY key_level,d.keytyp_ID,keytyp_bez";
                            if ($res = $dbc -> queryObjectArray($sql))
                                foreach ($res as $row)
                                {
                                   if (!$ky['kt'] && !$beg)
                                        $ky['kt'] = $row->keytyp_ID;
                                   if ($row->keytyp_ID == $ky['kt']) $select = "selected='selected'"; else $select = "";
        					       echo "<option $select value=\"$row->keytyp_ID\">$row->key_level - $row->keytyp_ID [$row->keytyp_bez] ($row->bestand)</option>\n";
                                   $beg=1;
                                }
                            $beg=0;
                        ?>
                    </select>
                    &nbsp;&nbsp;&nbsp;oder 
                    </td>
                    <td><input id="ktn" name="ky[ktn]" type="text" size="10" maxlength="10" value="<?php echo $ky['ktn']; ?>" /></td>
                    <td><input name="ky[anz]" type="text" size="5" maxlength="3" value="<?php echo $ky['anz']; ?>" /></td>
                </tr>
                <tr><td>&nbsp;</td><td colspan="3">neuer Schl&uuml;sseltyp: bitte mind. 2 Zeichen Schl&uuml;sseltyp eingeben -&gt; Liste der verf&uuml;gbaren</td></tr>
                <tr><td>Bemerkung</td><td colspan="3"><textarea name="ky[bem]" cols="50" rows="2"><?php echo $ky['bem']; ?></textarea></td></tr>
                <?php
                    if (in_array("ke",$_SESSION["recht"]))
                    {
                ?>
                        <tr><td>&nbsp;</td><td colspan="3"><input class="button" type="submit" name="get" value="Zugang +" title="Zugang"/>&nbsp;&nbsp;&nbsp;
                        <input class="button" type="submit" name="out" value="Abgang -" title="Abgang"/>&nbsp;&nbsp;&nbsp;
                        <input class="button" type="submit" name="lost" value="Verlust -" title="Verlust"/></td></tr> 
                <?php
                    }
                ?>
            </table>
<?php            
        }
        else
        {
            echo "<div align='center'>\n";
            if (is_numeric($ky["anz"]) && $ky["anz"] != 0)
            {
                $ky["bem"] = substr($ky["bem"],0,100);
                if ($ky["ktn"] > '') $kt = $ky["ktn"]; else $kt = $ky["kt"];
                if ($get) $action = "get";
                elseif ($out) $action = "out";
                elseif ($lost) $action = "lost";
                $adate = new DateTime();
                $adate = $adate->format('Y-m-d H:i:s');

                $stmt = $dbc -> stmtinit();
                if (is_object($stmt))
                {
                    $stmt -> prepare("INSERT INTO Keytyp_Depot (keytyp_ID,depot_ID,depot_date,depot_action,depot_anz,depot_bem) VALUES(?,?,?,?,?,?)");                    
                    $stmt -> bind_param('ssssis', $kt,$ky["dep"], $adate,$action,$ky["anz"],$ky["bem"]);              
                    $result = $stmt -> execute();
                    if ($stmt->error) echo "error Korrekur(INSERT) Schl&uuml;sseltyp: " . $stmt->error . "<br><br>\n";
                    if ($result) // INSERT/UPDATE Keytyp
                    {
                        //Eingabe Daten erfolgreich 
                        echo "<p class='green'><b>".$aaction["$action"].": Anzahl Schl&uuml;sseltyp '$kt' im Depot '" . $ky['dep']. "' wurde erfolgreich aktualisiert.</b></p>\n";
                    }
                    else
                        echo "<p class='red'><b>".$aaction["$action"].": Anzahl Schl&uuml;sseltyp '$kt' im Depot '" . $ky['dep']."' konnte nicht gespeichert werden.</b></p>\n";
                    $sql = "SELECT IFNULL(SUM(CASE WHEN depot_action='get' THEN IFNULL(depot_anz,0) ELSE 0 END),0) - IFNULL(SUM(CASE WHEN depot_action='out' THEN IFNULL(depot_anz,0) ELSE 0 END),0) - IFNULL(SUM(CASE WHEN depot_action='lost' THEN IFNULL(depot_anz,0) ELSE 0 END),0) AS bestand
                            FROM fhiiqm.Keytyp_Depot WHERE depot_ID='".$ky["dep"]."' AND keytyp_ID = '$kt'";
                    $newanz = $dbc -> querySingleItem($sql);
                    echo "<p>neuer Bestand Depot '" .$ky["dep"]."', Schl&uuml;sseltyp '$kt' = $newanz </p><br /><br />\n";
                }
            }
            echo "</div>\n";
            echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"".$_SERVER["PHP_SELF"]."\" target=\"_self\" title=\"Depot-Korrektur\">Weitere Depot-Korrektur</a></p>\n";    
        }
    }
?>
</body>
</html>