fhiiqm/report/info_allg_report.php
changeset 29 72f79dab938e
child 31 0a1eb975fbd9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fhiiqm/report/info_allg_report.php	Thu Aug 23 10:17:50 2012 +0200
@@ -0,0 +1,308 @@
+<?php
+
+/**
+ * @author Bettina Schwarzer, Fritz-Haber-Institut
+ * @copyright 07/2012
+ * 
+ * Report Info nach Produkt
+ * 
+ */
+    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;
+    }    
+    
+?>
+<!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"/> 
+
+	<title>Report Info</title>
+</head>
+
+<body >
+
+<?php
+	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
+    include_once ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
+
+	$dbc = new dbconnection();
+
+    $search = $_POST["search"];
+    if (!$search) $search =  $_GET["s"];
+    $inf    = $_POST["inf"];
+
+    $zeil = $inf["z"];
+    if (!$zeil) $zeil = $_GET["z"];
+    if (!$zeil) $zeil = 9999; // Anzahl der gezeigten Zeilen
+    $start = $_GET["st"];   // Start bei DS $start+1
+    if (!$start) $start=0;
+    
+    if (!is_array($inf))
+    {
+        $inf['prodb']   = $_GET['b'];
+        $inf['prodg']   = $_GET['g'];
+        $inf['ityp']    = $_GET['t'];
+        $inf['adr']     = $_GET['a'];
+        $inf['stat']    = $_GET['s'];
+        $inf['bind']    = $_GET['d'];
+        $inf["sort1"]   = $_GET["s1"];
+        $inf["sort2"]   = $_GET["s2"];
+        $inf["sort3"]   = $_GET["s3"];
+    }
+    if (count($_GET) == 0)
+    {   // fuer weitere Seiten
+        $_GET['b']      = $inf['prodb'];
+        $_GET['g']      = $inf['prodg'];
+        $_GET['t']      = $inf['ityp'];
+        $_GET['a']      = $inf['adr'];
+        $_GET['s']      = $inf['stat'];
+        $_GET['d']      = $inf['bind'];
+        $_GET["s1"]     = $inf['sort1'];
+        $_GET["s2"]     = $inf['sort2'];
+        $_GET["s3"]     = $inf['sort3'];
+        $_GET['z']      = $zeil;
+    }
+    echo "&nbsp;";  
+    echo "<div class=\"float-br smaller sc\" 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 sc\"><img src=\"/fhiiqm/img/document_image_ver.png\" border=\"0\" alt=\"Infodaten\" title=\"Infodaten\"/></div>\n";
+
+    if ($search && $_GET['s'] != 2)
+    {    
+        echo "<span class='sc'>";
+        echo "<br />&nbsp;&nbsp;&nbsp;<a href=\"/fhiiqm/info_report.php\" target=\"_self\" title=\"Berichte\" class='sc'>&laquo; zur Berichts&uuml;bersicht</a>";
+        echo "&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a href=\"" . $_SERVER["PHP_SELF"] . "\" target=\"_self\" title=\"RAG GMV\" class=\"sc\">neuer Bericht Info</a>\n";    
+        echo "</span>";
+    }
+    echo "<div align=\"center\">";
+    echo "<h3>Bericht Informationen</h3></div>\n";
+    if (!isset($search) || !$search)
+    {   // Form Kriterien
+        echo "<div align=\"center\">";
+
+        echo "<p>Bitte die Kriterien für den Bericht wählen</p>\n";
+        
+        include ($_SERVER['DOCUMENT_ROOT']."/fhiiqm/form/info_allg_search_form.inc.php");
+        echo "</div>\n";
+    }
+    else
+    {
+        echo "<div align='center'>\n";
+
+        // Kriterien
+        if ($inf["prodb"] && $inf["prodb"] != '-1')
+        {  
+            $prodb = "'".$inf["prodb"]."'";
+            $sql = "SELECT prod_ber_name FROM Produkt_Bereich WHERE prod_ber_ID = REPLACE(REPLACE('" .$inf["prodb"] ."','|',''),'-','')";
+            $prodbb = $dbc -> querySingleItem($sql);
+        }    
+        else $prodb = "''";
+        if ($inf["prodg"] && $inf["prodg"] != '-1')
+        {  
+            $prodg = "'".$inf["prodg"]."'";
+            $sql = "SELECT prod_group_name FROM Produkt_Gruppe WHERE prod_group_ID = REPLACE('" .$inf["prodg"] ."','-','')";
+            $prodgb = $dbc -> querySingleItem($sql);
+        }    
+        else $prodg = "''";
+        if ($inf['ityp'] > -1)
+        {
+            $ityp = $inf['ityp'];
+            $sql = "SELECT infotyp_bez FROM Info_Typ WHERE infotyp_ID = $ityp";
+            $itypb = $dbc -> querySingleItem($sql);
+        }
+        else $ityp = "''";
+        if ($inf['adr'] > -1)
+        {
+            $adr = "'".$inf['adr']."'";
+            $sql = "SELECT info_adr_name AS bez FROM Adressat
+                    WHERE CAST(info_adr_ID AS CHAR) = $adr
+                    UNION
+                    SELECT fkt_bez AS bez FROM Funktion
+                    WHERE fkt_ID = $adr";
+            $adrb = $dbc -> querySingleItem($sql);
+        }
+        else $adr = "''";
+        if ($inf['stat'] > -1)
+        {
+            $stat = $inf['stat'];
+            $sql = "SELECT info_freigabe_bez FROM Info_Freigabe WHERE info_freigabe_ID = $stat";
+            $statb = $dbc -> querySingleItem($sql);
+        }
+        else $stat = "''";
+        $bind = $inf['bind'];
+
+        $sort = "'".($inf['sort1']>-1 ? $inf['sort1'] : '');
+//        echo "$sort<br />";
+        if ($inf['sort1']>-1 && $inf['sort2']>-1) $sort .= ",".$inf['sort2']; 
+        elseif ($inf['sort2']>-1) $sort .= "'".$inf['sort2'];
+//        echo "$sort<br />";
+        if (($inf['sort1']>-1 || $inf['sort2']>-1) && $inf['sort3']>-1)
+            $sort .= ",".$inf['sort3']; 
+        elseif ($inf['sort1'] == -1 && $inf['sort2'] == -1 && $inf['sort3']>-1)  
+            $sort = "'".($inf['sort3']>-1 ? $inf['sort3'] : '');
+        $sort .=  "'";
+//        echo "$sort<br />";
+//        $sql = "CALL info_flist(1,'',0,'',0,999,@anz)";
+/*        $sql = "SELECT i.info_ID,info_sort,info_name_s,info_name_l,info_date,info_valid_from,info_valid_to,infotyp_ID,lang,info_file,info_rel_ID,raum_ID,
+                i.persknr AS persknra,CONCAT(m.nachname,', ', m.vorname) AS autor,
+                IF(infotyp_ID=7,ff.fkt_ID,CAST(ia.info_adr_ID AS CHAR)) AS adr_ID,
+                IF(infotyp_ID=7,fkt_bez,info_adr_name) AS adressat,
+                iv.persknr AS persknrv, CONCAT(mv.nachname,', ', mv.vorname) AS verantw,
+                ip.produkt_ID,prod_name,p.prod_group_ID,prod_ber_ID
+                FROM fhiiqm.Info i LEFT OUTER JOIN Mitarbeiter m ON i.persknr=m.persknr
+                LEFT OUTER JOIN Info_Adressat ia ON i.info_ID=ia.info_ID
+                LEFT OUTER JOIN Adressat a ON ia.info_adr_ID = a.info_adr_ID
+                LEFT OUTER JOIN Info_Funktion ff ON i.info_ID = ff.info_ID
+                LEFT OUTER JOIN Funktion f ON ff.fkt_ID=f.fkt_ID
+                LEFT OUTER JOIN Info_Verantwortlich iv ON i.info_ID=iv.info_ID
+                LEFT OUTER JOIN Mitarbeiter mv ON iv.persknr=mv.persknr
+                LEFT OUTER JOIN Info_Produkt ip ON i.info_ID=ip.info_ID
+                LEFT OUTER JOIN Produkt p ON ip.produkt_ID = p.produkt_ID
+                LEFT OUTER JOIN Produkt_Gruppe pg ON p.prod_group_ID=pg.prod_group_ID";        
+*/
+        $sql = "CALL info_allg_report($prodb,$prodg,$ityp,$adr,$stat,'$bind',$sort,$start,$zeil,@anz)"; 
+//        echo "$sql<br />";
+        $result = $dbc -> queryObjectArray($sql);
+
+        if ($prodbb > '') $krit = "[Produktbereich = $prodbb]";
+        if ($prodgb > '')
+        {
+            if ($krit) $bd = " ".$bind; else $bd = "";
+            $krit .= $bd . " [Produktgruppe = $prodgb]";
+        }
+        if ($itypb > '')
+        {
+            if ($krit) $bd = " ".$bind; else $bd = "";
+            $krit .= $bd . " [Infotyp = $itypb]";
+        }       
+        if ($adrb > '')
+        {
+            if ($krit) $bd = " ".$bind; else $bd = "";
+            $krit .= $bd . " [Adressat = $adrb]";
+        }       
+        if ($statb > '')
+        {
+            if ($krit) $bd = " ".$bind; else $bd = "";
+            $krit .= $bd . " [Status = $statb]";
+        }       
+        if ($krit )echo "Filter:  $krit\n"; else echo "Filter: []\n";
+
+        if ($result)
+        {
+            
+            $ianz = $dbc -> querySingleItem("SELECT @anz");
+            printf ("<p>Anzahl gefundener Informationen: %s</p>", $ianz);
+
+    		$bg1 = "#F8F8F8";
+    		$bg2 = "#DEDFE1";
+    		$bg = "#FFFFFF";
+            echo "<table border='1' cellspacing='0' cellpadding='2' width='99%'>\n";
+            // Listenkopf
+            echo "<tr bgcolor='#68ACBF'>";
+            echo "<th>Kennzeichen</th>";
+            echo "<th>Infotitel</th>";
+            echo "<th>zu Info</th>";
+            echo "<th>Kurzinfo</th>";
+            if ($ityp == "''") echo "<th>Infotyp</th>";
+            echo "<th>Produkt</th>";
+            if (substr($ityp,0,1) != 8) echo "<th>Adressat</th>";
+            if ($ityp == 7 || substr($ityp,0,1) == 8) echo "<th>Haus, Raum</th>";
+            if ($stat == "''") echo "<th>Status</th>";
+            echo "<th>Dokument</th>";
+            echo "</tr>";
+            
+            foreach ($result as $row)
+            {
+    			if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
+                echo "<tr bgcolor='" . $bg . "'>"; 
+                echo "<td>$row->infsort</td>";
+                echo "<td>$row->info_ID: $row->iname</td>";
+                echo "<td>$row->infrel</td>";
+                if ($row->ityp_ID == 81) $anl = " <b>&rarr; '" . $row->al_bez . "'</b>"; else $anl="";
+                echo "<td>" . nl2br($row->ilong) . "$anl</td>";
+                if ($ityp == "''") echo "<td>$row->ityp</td>";
+                $prod = explode("; ",$row->prod);
+                $prods = "";
+                foreach ($prod as $val)
+                    $prods .= "; " . substr($val,0,strpos($val,"|")-1);
+                $prods = substr($prods,2);
+                echo "<td>" . str_replace(";",";<br />",$prods) . "</td>";
+                if (substr($ityp,0,1) != 8)
+                {
+                    $adr = explode("; ",$row->adressat);
+                    $adrs = "";
+                    foreach ($adr as $val)
+                        $adrs .= "; " . substr($val,0,strpos($val,"|")-1);
+                    $adrs = substr($adrs,2);
+                    echo "<td>" . str_replace(";",";<br />",$adrs) . "</td>";
+                }
+                if ($ityp == 7 || substr($ityp,0,1) == 8)   // 7 = Betriebsstörung, 8 = Betriebsanweisung
+                {    if ($row->raum_ID)
+                    {
+                        $sql = "SELECT geb_ID, raum_nr FROM Raum WHERE raum_ID = $row->raum_ID";
+                        $res = $dbc -> queryObjectArray($sql);
+                        foreach ($res as $ro)
+                            echo "<td>$ro->geb_ID, $ro->raum_nr</td>";
+                    }
+                    elseif ($row->geb_ID && !$row->raum_ID)
+                        echo "<td>$row->geb_ID</td>";
+                    else echo "<td>&nbsp;</td>";
+                }
+                if ($stat == "''") echo "<td>$row->freigabe</td>";
+                echo "<td><a href='/fhiiqm/infos/$row->doc'>".substr($row->doc,strpos($row->doc,"_")+1)."</a></td>";
+                echo "</tr>\n";
+                
+            }
+            echo "</table>\n";
+            echo "<p></p><table width=80%><tr><td class='right'><a href=\"javascript:window.print()\" class='sc'>
+                <img src=\"/fhiiqm/img/printer.png\" alt=\"Bericht drucken\" border=\"0\" align=\"right\" title=\"Bericht drucken\"></a></td></tr></table>";
+            echo "</div>\n";
+
+            echo "<br />&nbsp;&nbsp;&nbsp;";
+            if ($search != 2) // Aufruf aus fhiiqm
+            {    
+                // Parameter aus $_GET fuer weitere Seiten
+                $_GET["s"] = 1; // bewirkt weitere Suche
+                foreach ($_GET as $key=>$val)
+                {
+                    if ($key != "st") $liste .= "&" . $key ."=".$val;
+                }    
+                // Links auf andere Seiten generieren
+                liste_links($start,$zeil,$ianz,$liste);
+            }
+        }
+        else
+        {
+            echo "<p class='red'>&nbsp;&nbsp;&nbsp;Leider gibt es kein Ergebnis für die von Ihnen gewählten Kriterien!</p>";
+            echo "</div>\n";
+            echo "<br />&nbsp;&nbsp;&nbsp;";
+        }
+        if ($search != 2)
+        {    
+            echo "<span class='sc'>";
+            echo "<br /><br />&nbsp;&nbsp;&nbsp;<a href=\"/fhiiqm/info_report.php\" target=\"_self\" title=\"Berichte\" class='sc'>&laquo; zur Berichts&uuml;bersicht</a>";
+            echo "&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a href=\"" . $_SERVER["PHP_SELF"] . "\" target=\"_self\" title=\"RAG GMV\" class=\"sc\">neuer Bericht Info</a>\n";    
+            echo "</span>";
+        }
+        
+    }
+?>
+</body>
+</html>
\ No newline at end of file