fhiiqm/info_upd.php
author Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Thu, 05 Apr 2012 15:35:43 +0200
changeset 25 482252ff12fd
parent 20 5877137431e4
permissions -rw-r--r--
+ Prozesse edit, Liste; Reports Info, GVP

<?php

/**
 * @author Bettina Schwarzer, Fritz-Haber-Institut
 * @copyright 08/2011
 *
 * INSERT Informationen   
 */

    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("ir",$_SESSION["recht"]) && !in_array("ie",$_SESSION["recht"])))
    {
        header("Location: start.php");
        exit;
    }    
    
?>
<!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="css/db.css" rel="STYLESHEET" type="TEXT/CSS" media="screen"/> 
   	<link href="css/db_print.css" rel="STYLESHEET" type="TEXT/CSS" media="print"/> 

	<title>Eingabe Informationen</title>
</head>

<body>

<?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/document_image_ver.png\" border=\"0\" alt=\"Infodaten &auml;ndern\" title=\"Infodaten &auml;ndern\"/></div>\n";

	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
    include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
	$dbc = new dbconnection();
    
    $infid    = $_GET["uid"];
    if (!$inf) $inf=1;
	$upd	= $_POST["upd"];
    $del    = $_POST["del"];
	$inf    = $_POST["inf"];
    $ok		= $_POST["ok"];
    if (!$inf["okn"]) $ok = false;

    if (!$ok && ((!$upd && !$del) || $upd || $del))
    {
        if (!$upd && !$del)
        {
            $sql = "SELECT info_ID,info_name_s,info_name_l,info_date,info_valid_from,info_valid_to,infotyp_ID,
                    persknr,lang,info_file,info_rel_ID,info_freigabe FROM fhiiqm.Info 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["ityp"]   = $row->infotyp_ID;
                    $inf["ijahr"]   = substr($row->info_date,0,4);  
                    $inf["imon"]    = substr($row->info_date,5,2);  
                    $inf["itag"]    = substr($row->info_date,8,2);  
                    $inf["bjahr"]   = substr($row->info_valid_from,0,4);  
                    $inf["bmon"]    = substr($row->info_valid_from,5,2);  
                    $inf["btag"]    = substr($row->info_valid_from,8,2);  
                    $inf["ejahr"]   = substr($row->info_valid_to,0,4);  
                    $inf["emon"]    = substr($row->info_valid_to,5,2);  
                    $inf["etag"]    = substr($row->info_valid_to,8,2);
                    $inf["pers"]    = $row->persknr;
                    $inf["infrel"]  = $row->info_rel_ID;
                    $inf["ifname"]   = $row->info_file;
                    $inf["lang"]    = $row->lang;     
                }
            }
            // 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;
            }
                
        }
        include_once("form/info_form.inc.php");
        
        if ($upd)
		{
            echo            
            "<tr>
        		<td>Upload Infodokument </td>
        		<td><input type=\"file\" name=\"ifile\" size=\"50\" maxlength=\"50\" value=\"" .
            $_FILES["ifile"]["name"] . "\"/></td>
            </tr>";
    
		}
	  	if ($upd || $del)
        {
            if ($upd)
              $frage = "Alle Angaben ok?<br>
              erst wenn Haken gesetzt, Upload-File w&auml;hlen!";
            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"; 
    		echo "></td>\n</tr>\n"; 
        }
		
        if (!is_null($_SESSION["recht"]) && in_array("ie",$_SESSION["recht"]))
        {
    		echo "<tr>\n";
    		echo "
    		  <td>&nbsp;</td>
    		  <td><input class=\"button\" type=\"submit\" value=\"&auml;ndern\" name=\"upd\" title=\"update\" />
    		  &nbsp;&nbsp;&nbsp;<input class=\"button\" type=\"submit\" value=\"l&ouml;schen\" name=\"del\" title=\"delete\" /></td>\n";
    		echo "</tr>\n";
        }
        echo "</table>\n";
        echo "</div>\n";
        if (!is_null($_SESSION["recht"]) && !in_array("ie",$_SESSION["recht"]))
            echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"info_flist.php\" target=\"_self\" title=\"Infoliste\">&laquo; zur Infoliste</a></p>\n";    
        echo "</form>\n";	

        
    }
    elseif ($ok && $upd)
    {
        echo "<div align='center'>\n";
        //daten speichern
        $inf["iname"] = substr($inf["iname"],0,300);
        $inf["ilong"] = substr($inf["ilong"],0,8000);
        if ($inf["ityp"] == -1) $inf["ityp"] = null;
        
        //Datumswerte validieren
        $idat = date_obj($inf["ijahr"], $inf["imon"], $inf["itag"]);
        $bdat = date_obj($inf["bjahr"], $inf["bmon"], $inf["btag"]);
        $edat = date_obj($inf["ejahr"], $inf["emon"], $inf["etag"]);

        if ($inf["pers"] == -1) $inf["pers"] = null;
        if ($inf["infrel"] == -1) $inf["infrel"] = null;
        if ($inf["lang"] == -1) $inf["lang"] = null;
        //echo "datcreate: $idat, datevalidfrom: $bdat, datevalidto: $edat, author: " . $inf["pers"] . "<br />\n";        

        if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
        $stmt = $dbc -> stmtinit();
        if (is_object($stmt))
        {
            $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_rel_ID = ? WHERE info_ID = $infid");
            $stmt -> bind_param('sssssiisi',$inf["iname"],$inf["ilong"],$idat,$bdat,$edat,$inf["ityp"],$inf["pers"],$inf["lang"],$inf["infrel"]);
            $result = $stmt -> execute();
//            print_r($stmt);
        }
        if ($dbc->error) echo "error: " . $dbc->error . "<br><br>\n";
        if ($result)
        { // UPDATE o.k.
            
            // n:m Tabellen INSERT
            include ("inc/info_tab_ins.inc.php");

            // upload File
                // echo "upload-error: " . $_FILES["ifile"]["error"] .  "<br />\n";
            if (is_uploaded_file($_FILES["ifile"]["tmp_name"]) && isset($_FILES["ifile"]["name"]) && $_FILES["ifile"]["name"] )
            {
//                echo "file hochgeladen: " . $_FILES["ifile"]["name"] ."<br />\n";
                include ("inc/file_upload.inc.php");
                $fname = gen_filename($inf['ifname'],"ifile",$infid);
                $retdf  = mod_file("/var/www/fhiiqm/infos",$infid,"","del");  // Loeschen alte Datei
                $retf   = upload("ifile", $fname, $infid, "infos");              // Datei prüfen und in Dokumentenverzeichnis verschieben
                
                if ($retf)
                {   // upload o.k.
                    //UPDATE des Filenamens
                    $sql = "UPDATE Info SET info_file = '" . $infid . "_" . $fname ."' WHERE info_ID=$infid";
                    $retv=$dbc->execute($sql);
                    if (!$retv) 
                        echo $dbc -> error . "<br>\n";
                }
               
            }
            else 
            {
                $retf=1; //kein Infodoc hochgeladen
            }
            if ($result && $retf && $reta && $retp) // INSERT Raum
            {
                //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 Raumdaten
                if ($fname)
                    $ifile = $infid . "_" . $fname;
                else
                    $ifile = $inf['ifname'];
                include ("inc/info_dat_show.inc.php");
            }
        }                      
    }
    elseif ($ok & $del)
    {
       // DELETE aus Tab Info und abhaengigen Tabellen
        echo "<div align='center'>\n";

        $idat = date_obj($inf["ijahr"], $inf["imon"], $inf["itag"]);
        $bdat = date_obj($inf["bjahr"], $inf["bmon"], $inf["btag"]);
        $edat = date_obj($inf["ejahr"], $inf["emon"], $inf["etag"]);
        
        $sql = "DELETE FROM Info WHERE info_ID = $infid";
        $retid = $dbc -> execute($sql);
        if ($retid)
        {
            include ("inc/file_upload.inc.php");
            $retdf  = mod_file("/var/www/fhiiqm/infos",$infid,"","del");  // Loeschen Dokument
            if ($retdf) echo "<p class='green'><b>Infodokument 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 Vertragsdaten
            if ($fname)
                $ifile = $infid . "_" . $fname;
            else
                $ifile = $inf['ifname'];
            include ("inc/info_dat_show.inc.php");
        }
         
    }
    if ($ok && ($upd || $del))
    {
        echo "</div><br /><br />\n";
        echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"info_flist.php\" target=\"_self\" title=\"Infoliste\">Zur&uuml;ck zur Infoliste</a></p>\n";    
        echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"info_ins.php\" target=\"_self\" title=\"Info erfassen\">Weitere Info erfassen</a></p>\n";    
    }

?>
</body>
</html>