fhiiqm/report/gefahr_ap_report.php
author Bettina Schwarzer
Fri, 20 Dec 2013 15:19:32 +0100
changeset 41 9c668cd391fa
parent 34 fc60ef80a7ad
permissions -rw-r--r--
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste

<?php

/**
 * @author Bettina Schwarzer, Fritz-Haber-Institut
 * @copyright 08/2011, 05/2012
 * 
 * Arbeitsicherheit
 */

    error_reporting(E_ALL ^ E_NOTICE);
    
    if (!isset($_GET['s']) || $_GET['s'] != 2 )
    {
        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("asr",$_SESSION["recht"]) && !in_array("ase",$_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 AP Gef&auml;hrdungen Ma&szlig;nahmen</title>
</head>

<body>

<?php    
    echo "&nbsp;";  
    if (!isset($_GET['s']) || $_GET['s'] != 2 )
    {
        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=\"/fhiiqm/img/role.png\" border=\"0\" alt=\"Raum-Gefahr\" title=\"Raum-Gefahr\"/></div>\n";
    
    $rag    = $_POST["rag"];    // Parameter aus Form
    $search = $_POST["search"];
    if (!$search) $search =  $_GET["s"];

    $zeil = $rag["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($rag))
    {
        $rag["geb"]     = $_GET["g"];
        $rag["rnum"]    = $_GET["r"];
        $rag["aptyp"]   = $_GET["a"];
        $rag["gef"]     = $_GET["f"];
        $rag["bind"]    = $_GET["b"];
        $rag["sort1"]   = $_GET["s1"];
        $rag["sort2"]   = $_GET["s2"];
        $rag["sort3"]   = $_GET["s3"];
        $rag["sort4"]   = $_GET["s4"];
    }
    $_GET["g"] = $rag["geb"];
    $_GET["r"] = $rag["rnum"];
    $_GET["a"] = $rag["aptyp"];
    $_GET["f"] = $rag["gef"];
    $_GET["b"] = $rag["bind"];
    $_GET["s1"] = $rag["sort1"];
    $_GET["s2"] = $rag["sort2"];
    $_GET["s3"] = $rag["sort3"];
    $_GET["s4"] = $rag["sort4"];
    $_GET["z"]  = $zeil;
   
    if ($search && $_GET['s'] != 2)
    {    
        echo "<span class='sc'>";
        echo "<br />&nbsp;&nbsp;&nbsp;<a href=\"/fhiiqm/as_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=\"Raum-Typ\" class=\"sc\">neuer Arbeitsplatz-Gef&auml;hrdungen Bericht</a>\n";    
        echo "</span>";
    }
    echo "<div align='center'>\n";
    echo "<p><b>(6) Bericht Gef&auml;hrdungen -> Ma&szlig;nahmen am Arbeitsplatz</b></p>\n";
    echo "</div>\n";
    
    if (!$search)
    {
        include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/form/gefahr_ap_search_form.inc.php");
    }
    else
    {
        echo "<div align='center'>\n";

    	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
        include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
    
    	if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
    
        $sql = "SELECT geb_ID, raum_nr, raum_name, r.raumtyp_ID, raumtyp_bez, ra.arbplatz_typ, arbplatz_typ_bez, a.gefahr_ID, gefahr_bez, 
                asm_bez, asm_bem, gf_asm_nr, asm_ID, r.raum_ID 
                FROM Raum r LEFT OUTER JOIN Raum_Typ rt ON r.raumtyp_ID = rt.raumtyp_ID
                    LEFT OUTER JOIN Raum_Arbplatz_Typ ra ON ra.raum_ID = r.raum_ID
                    LEFT OUTER JOIN Arbplatz_Typ at ON ra.arbplatz_typ = at.arbplatz_typ
                    LEFT OUTER JOIN Gefahr_Arbplatz a ON a.arbplatz_typ = at.arbplatz_typ
                    LEFT OUTER JOIN Gefahr g ON a.gefahr_ID = g.gefahr_ID
                    LEFT OUTER JOIN AS_Massnahme m ON a.gefahr_ID = m.gefahr_ID";
        $lim = " LIMIT $start,$zeil";
        
        if (!$rag["bind"]) $bind = " AND "; else $bind = $rag["bind"];
        
        if ($rag["geb"]> -1) $where = " geb_ID = '$rag[geb]' ";
        if ($rag["rnum"]> -1) 
            if ($where) $where .= "$bind r.raum_ID = '$rag[rnum]' "; else $where = " r.raum_ID = '$rag[rnum]' ";
        if ($rag["aptyp"]> -1) 
            if ($where) $where .= "$bind ra.arbplatz_typ = '$rag[aptyp]' "; else $where = " ra.arbplatz_typ = '$rag[aptyp]' ";
        if ($rag["gef"]> -1) 
            if ($where) $where .= "$bind a.gefahr_ID = '$rag[gef]' "; else $where = " a.gefahr_ID = '$rag[gef]' ";
        if ($where) $where = " WHERE $where";
        
        if ($rag["sort1"]>0 || $rag["sort2"]>0 || $rag["sort3"]>0 || $rag["sort4"]>0)
        {
            if ($rag["sort1"]>0) $ord  = " ORDER BY " . $rag["sort1"];
            if ($rag["sort2"]>0) $ord .= ",".$rag["sort2"];
            if ($rag["sort3"]>0) $ord .= ",".$rag["sort3"];
            if ($rag["sort4"]>0) $ord .= ",".$rag["sort4"];
        }
        
        $sql .= $where . $ord . $lim;
//        echo "sql = $sql<br />\n";
        $result = $dbc ->queryObjectArray($sql);
        
        if ($rag["geb"] > -1) $krit = " [Geb&auml;ude = '" . $rag["geb"] ."']";
        if ($rag["rnum"] > -1)
        { 
            if ($krit) $bd = " ".$bind; else $bd = "";
            $rnr = $dbc -> querySingleItem("SELECT Raum_nr FROM Raum WHERE raum_ID = ".$rag["rnum"]);
            $krit .= $bd." [Raum-Nr. = '$rnr']";
        }   
        if ($rag["aptyp"] > -1)
        { 
            if ($krit) $bd = " ".$bind; else $bd = "";
            $krit .= $bd." [Arb.Platz-Typ = '" . $rag["aptyp"] ."']";
        }
        if ($rag["gef"] > -1)
        { 
            if ($krit) $bd = " ".$bind; else $bd = "";
            $krit .= $bd." [Gefahr = '" . $rag["gef"] ."']";
        }    
        if ($krit )echo "Suchergebnis f&uuml;r $krit"; else echo "Suchergebnis";

        if ($result)
        {
    		$bg1 = "#F8F8F8";
    		$bg2 = "#DEDFE1";
    		$bg = "#FFFFFF";

            $sqlc = "SELECT COUNT(*)
                        FROM Raum r LEFT OUTER JOIN Raum_Typ rt ON r.raumtyp_ID = rt.raumtyp_ID
                            LEFT OUTER JOIN Raum_Arbplatz_Typ ra ON ra.raum_ID = r.raum_ID
                            LEFT OUTER JOIN Arbplatz_Typ at ON ra.arbplatz_typ = at.arbplatz_typ
                            LEFT OUTER JOIN Gefahr_Arbplatz a ON a.arbplatz_typ = at.arbplatz_typ
                            LEFT OUTER JOIN AS_Massnahme m ON a.gefahr_ID = m.gefahr_ID $where";
            $ianz = $dbc -> querySingleItem($sqlc);

            //$ianz = $dbc -> numrows($sql); //liefert nur $zeil!
            printf ("<p>Anzahl gefundener Datensätze: %s</p>", $ianz);
            
            echo "<table border='1' cellspacing='0' cellpadding='2'>\n";
            // Listenkopf
            echo "<tr bgcolor='#68ACBF'>";
            echo "<th>Geb&auml;ude</th>";
            echo "<th>Raum-Nr.</th>";
            echo "<th>Raum-Bez.</th>";
            echo "<th>Arb.-Platz-Typ</th>";
            echo "<th>Gef&auml;hrdung</th>";
            echo "<th>Ma&szlig;nahme-Bez.</th>";
//            echo "<th width='40%'>Ma&szlig;nahme</th>";
            echo "</tr>";

            foreach ($result as $row)
            {
                if ($rid != $row->raum_ID)
                {
        			if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
                    echo "<tr bgcolor='" . $bg . "'>"; 
                    echo "<td>$row->geb_ID</td>";
                    echo "<td>$row->raum_nr</td>";
                    echo "<td>$row->raum_name</td>";
                    echo "<td>$row->arbplatz_typ - $row->arbplatz_typ_bez</td>";
                    echo "<td>$row->gefahr_ID - $row->gefahr_bez</td>";
                    echo "<td>$row->asm_bez</td>";
//                    echo "<td>".nl2br($row->asm_bem)."</td></tr>\n";
                }
                elseif ($rid == $row->raum_ID && $aptyp != $row->arbplatz_typ)
                {
                    echo "<tr bgcolor='" . $bg . "'>"; 
                    echo "<td colspan=3>&nbsp;</td>";
                    echo "<td>$row->arbplatz_typ - $row->arbplatz_typ_bez</td>";
                    echo "<td>$row->gefahr_ID - $row->gefahr_bez</td>";
                    echo "<td>$row->asm_bez</td>";
                }
                elseif ($rid == $row->raum_ID && $aptyp == $row->arbplatz_typ && $gfid != $row->gefahr_ID)
                {
                    echo "<tr bgcolor='" . $bg . "'>"; 
                    echo "<td colspan=4>&nbsp;</td>";
                    echo "<td>$row->gefahr_ID - $row->gefahr_bez</td>";
                    echo "<td>$row->asm_bez</td>";
//                    echo "<td>".nl2br($row->asm_bem)."</td></tr>\n";
                    
                }
                elseif ($rid == $row->raum_ID && $gfid == $row->gefahr_ID && $asmid != $row->asm_ID)
                {
                    echo "<tr bgcolor='" . $bg . "'>"; 
                    echo "<td colspan=5>&nbsp;</td>";
                    echo "<td>$row->asm_bez</td>";
//                    echo "<td>$row->asm_bem</td></tr>\n";
                     
                }    
                $rid    = $row->raum_ID;
                $aptyp  = $row->arbplatz_typ;
                $gfid   = $row->gefahr_ID;
                $asmid  = $row->asm_ID;
            }   
            echo "</table>\n";
            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);
            }

            if ($search != 2)
            {
                echo "<p style=\"page-break-before:always\"></p>";
                
                echo "<div align='center'>\n";
                $sql = "SELECT DISTINCT a.gefahr_ID, gefahr_bez, asm_bez, asm_bem, gf_asm_nr 
                        FROM Raum r LEFT OUTER JOIN Raum_Typ rt ON r.raumtyp_ID = rt.raumtyp_ID
                            LEFT OUTER JOIN Raum_Arbplatz_Typ ra ON ra.raum_ID = r.raum_ID
                            LEFT OUTER JOIN Arbplatz_Typ at ON ra.arbplatz_typ = at.arbplatz_typ
                            LEFT OUTER JOIN Gefahr_Arbplatz a ON a.arbplatz_typ = at.arbplatz_typ
                            LEFT OUTER JOIN Gefahr g ON a.gefahr_ID = g.gefahr_ID
                            LEFT OUTER JOIN AS_Massnahme m ON a.gefahr_ID = m.gefahr_ID ";
                if ($where)
                    $sql .= $where . " AND NOT (a.Gefahr_ID IS NULL)";
                else
                    $sql .= " WHERE NOT (a.Gefahr_ID IS NULL)";
                $sql .= " ORDER BY gefahr_ID,asm_bez";
                $resm = $dbc -> queryObjectArray($sql);
                
                if ($resm)
                {
            		$bg1 = "#F8F8F8";
            		$bg2 = "#DEDFE1";
            		$bg = "#FFFFFF";
                    echo "<table width='80%' border='1' cellspacing='0' cellpadding='2'>\n";
                    // Listenkopf
                    echo "<tr bgcolor='#68ACBF'>";
                    echo "<th>Gef&auml;hrdung</th>";
                    echo "<th>Ma&szlig;nahme-Bez.</th>";
                    echo "<th width='40%'>Ma&szlig;nahme</th>";
                    echo "</tr>";
        
                    foreach ($resm as $row)
                    {
            			if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
                        echo "<tr bgcolor='" . $bg . "'>"; 
                        echo "<td>$row->gefahr_ID - $row->gefahr_bez</td>";
                        echo "<td>$row->asm_bez</td>";
                        echo "<td width='50%'>".nl2br($row->asm_bem)."</td></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";
            
        }
        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";
        }
        if ($search != 2)
        {    
            echo "<span class='sc'>";
            echo "<br /><br />&nbsp;&nbsp;&nbsp;<a href=\"/fhiiqm/as_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=\"Raum-Typ\" class=\"sc\">neuer Arbeitsplatz-Gef&auml;hrdungen Bericht</a>\n";    
            echo "</span>";
        }
        else
            echo "<a href='javascript:history.back();' onMouseOver=\"{window.status='Zur&uuml;ck'; return true;}\">&nbsp;&nbsp;&nbsp;&laquo; Zur&uuml;ck</a>";
    }

?>

</body>
</html>