fhiiqm/ma_tel_flist.php
author Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Wed, 27 Feb 2013 09:43:08 +0100
changeset 34 fc60ef80a7ad
parent 33 f1a8785434e4
child 40 6f4b105daa24
permissions -rw-r--r--
+ Telefonliste pdf: 4 Varianten + Projekte, Schritte + Arbeitssicherheit

<?php

/**
 * @author Bettina Schwarzer, Fritz-Haber-Institut
 * @copyright 11/2012
 * 
 * Telefonliste ohne Anmeldung
 * 
 * $_GET["e"] = 1, ='editieren', muss gesetzt sein
 * 
 */

    error_reporting(E_ALL ^ E_NOTICE);
    
    if (isset($_GET["i"]) && $_GET["i"]) $edit = $_GET["i"]; // wegen tab_column, "i" als "e" missbraucht -> editieren ermoeglichen
    if (!$edit) $edit = $_GET["e"];
    if (!$edit) $edit = $_POST["e"];
    if (isset($edit) && $edit)
    {
        session_start();
        if (! isset($_SESSION["userid"]))
        { 
            include_once ("inc/func_lib.inc.php");	
            login($_SERVER["PHP_SELF"]."?e=$edit");
            exit;
        }
        
        if (is_null($_SESSION["recht"]) || (!is_null($_SESSION["recht"]) && !in_array("mtr",$_SESSION["recht"]) && !in_array("mte",$_SESSION["recht"])))
        {
            header("Location: start.php");
            exit;
        }
//    print_r ($_SESSION); echo "<br />";   
    }
?>
<!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="http://achilleus.rz-berlin.mpg.de/fhiiqm/css/db.css" rel="STYLESHEET" type="TEXT/CSS" media="screen"/> 
   	<link href="http://achilleus.rz-berlin.mpg.de/fhiiqm/css/db_print.css" rel="STYLESHEET" type="TEXT/CSS" media="print"/> 

	<title>MA/O-Telefonliste</title>
</head>

<body onload="document.ffilter.filter.focus();">
    
<?php
    if (isset($edit) && $edit)
    {
        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/group.png\" border=\"0\" alt=\"Telefonliste\" title=\"Telefonliste\"/></div>\n";
    }
    
    // Felder, nach denen gefiltert werden kann
    $fields = array(2=>"Name",3=>"Vorname",5=>"Abteilung",6=>"Arbeitsgruppe",7=>"Telefon/Fax",9=>"Haus", 10=>"Raum");
//    $fieldf = array(2=>"trim(nachname)",3=>"vorname",5=>"abt_name",6=>"mt.telefon_nr",9=>"geb_ID", 10=>"raum_nr");
    $fieldf = array(2=>"name",3=>"vorname",5=>"abt_name",6=>"ag",7=>"telefon_nr",9=>"geb_ID", 10=>"raum_nr");

	$sort   = $_GET["s"];   // Sortierung nach Spalte
    if (!isset($sort) && !$sort) $sort = $_POST["s"];      

    $dir    = $_GET["d"];   // Sortierrichtung
    if (!isset($dir) && !$dir) $dir = $_POST["d"];

    $fnum   = $_GET["f"];   // Spaltennummer, nach der aktuell gefiltert wird
    if (!isset($fnum) && !$fnum) $fnum = $_POST["f"];

    $filter = $_POST["filter"];
    if (!isset($filter) && !$filter) $filter = $_GET["b"];   

    $subf   = $_POST["subf"]; // submit
    
    if (!isset($fnum) || !$fnum) $fnum = 1;
    if (!isset($filter) || !$filter) $filter = "";
    if (!isset($sort) || !$sort) $sort = 2; // Name
    if (!$dir || $dir < "!")  $dir = "";
//    print_r ($_REQUEST); echo "<br /><br />";
	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
    include_once ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");

	$dbc = new dbconnection();
/*    
    $sql = "SELECT m.persknr, TRIM(nachname) as name, vorname, titel, abt_name, mt.telefon_nr, telefon_typ, public, geb_ID, raum_nr, email
            FROM Mitarbeiter m LEFT OUTER JOIN 
            Abteilung a ON m.abt_tel=a.abt_ID LEFT OUTER JOIN 
            MA_Telefon mt ON m.persknr=mt.persknr LEFT OUTER JOIN 
            Telefon t ON mt.telefon_nr=t.telefon_nr LEFT OUTER JOIN
            Raum r ON t.raum_ID = r.raum_ID
            WHERE aktiv>0 AND (m.abt_tel <> 7 OR m.abt_tel IS NULL)
            UNION
            SELECT m.persknr, TRIM(nachname) as name, vorname, titel, IFNULL(rag_bez,'INF') as abt_name, mt.telefon_nr, telefon_typ, public, geb_ID, raum_nr, email
            FROM Mitarbeiter m LEFT OUTER JOIN 
            MA_Telefon mt ON m.persknr=mt.persknr INNER JOIN 
            Telefon t ON mt.telefon_nr=t.telefon_nr LEFT OUTER JOIN
            Raum r ON t.raum_ID = r.raum_ID LEFT OUTER JOIN
            MA_RaumArbGruppe ma ON m.persknr=ma.persknr LEFT OUTER JOIN 
            RaumArb_Gruppe rag ON ma.rag_ID=rag.rag_ID
            WHERE aktiv>0 AND m.abt_tel=7";
*/
//    $sql = "SELECT persknr, name, vorname, titel, abt_name, telefon_nr, telefon_typ, public, geb_ID, raum_nr, email FROM v_tel_list";
//  Raum zu Mitarbeiter und nicht zu Telefon
    if ($edit) // auch ehemalige MA
//        $sql = "SELECT persknr, name, vorname, titel, abt_name, telefon_nr, telefon_typ, public, sort, geb_ID, raum_nr, email, aktiv FROM v_tel_list";
        $sql = "SELECT persknr, name, vorname, titel, abt_name, ag, telefon_nr, telefon_typ, public, sort, geb_ID, raum_nr, email, aktiv FROM v_tel_list_ag
                WHERE 1=1";
    else
//        $sql = "SELECT persknr, name, vorname, titel, abt_name, telefon_nr, telefon_typ, public, sort, geb_ID, raum_nr, email, aktiv FROM v_tel_list_ma_raum";
        $sql = "SELECT persknr, name, vorname, titel, abt_name, ag, telefon_nr, telefon_typ, public, sort, geb_ID, raum_nr, email, aktiv 
                FROM v_tel_list_ag WHERE aktiv > 0";
    if ($filter)
    {
        if ($fnum > 3)
            $wher = " AND " . $fieldf[$fnum] . " LIKE " . "'%$filter%'"; 
        else
            $wher = " AND " . $fieldf[$fnum] . " LIKE " . "'$filter%'"; 
    }
    else $wher = ""; 
    // intern/extern
	$ip=getenv("REMOTE_ADDR");
	$ippart=explode(".",$ip);
    if (($ippart[0] == 141 && $ippart[1] == 14) || ($ippart[0] == 172 && $ippart[1] == 16))
        $wip = "";
    else
        $wip = " AND public=1 "; 
               
    if ($sort == 2) $so = "name COLLATE latin1_general_ci $dir, 1, 3, 5, 6";
//    if ($sort == 2) $sort = "2, 3, 5";
    elseif ($sort == 5) $so = "5 $dir, 6, name COLLATE latin1_general_ci, 1, 3";
//    if ($sort == 5) $sort = "5, 2, 3";
    else $so = "$sort $dir ";
    if ($so) $ord = " ORDER BY $so, IFNULL(sort,99), 7 "; // immer nach Telefon-Nr als 2.

    $sql .= $wher . $wip . $ord;
//    echo "sql = $sql<br /><br />";
    $result = $dbc ->queryObjectArray($sql);
    
    if ($result)
    {
		$bg1 = "#F8F8F8";
		$bg2 = "#DEDFE1";
		$bg = "#FFFFFF";
        $getp = "&s=$sort&d=$dir&f=$fnum&b=$filter"; // Parameter Listenanzeige
     
        echo "<div align='center'>\n";
        echo "<p><b>Mitarbeiter/Objekte - Telefonliste</b></p>\n";
        
        echo "<table border='0' cellspacing='0'>\n";
        echo "<tr><td class='bigger'>Mittels '<img src='http://achilleus.rz-berlin.mpg.de/fhiiqm/img/auf.gif' border='0' width='11' hight='11' />' / '<img src='http://achilleus.rz-berlin.mpg.de/fhiiqm/img/ab.gif' border='0' width='11' hight='11' />' 
            können Sie nach allen Spalten auf- bzw. absteigend sortieren</td></tr>
            <tr><td class='bigger'>'<img src='http://achilleus.rz-berlin.mpg.de/fhiiqm/img/filter.gif' border='0' width='14' hight='11' />' erm&ouml;glicht das Filtern nach allen Spalten der Liste</td></tr>";
        if ($edit)
        {
            echo "<tr><td class='bigger'>Klick auf '<img src='/fhiiqm/img/edit.gif' border='0' width='11' hight='11'>' - Bearbeiten der Angaben</td></tr>";
            echo "<tr><td class='bigger'><span style='color: orange; font-size: 1em;'>Orange</span> <span style='background-color: #FFCC88; font-size: 1em;'>hinterlegte</span> Zeilen markieren ausgeschiedenen Mitarbeiter</td></tr>";
        }
        echo "<tr><td class='bigger'><span style='color: red; font-size: 1em;'>Rote</span> Telefon-/Fax-Nummern sind nur intern sichtbar</td></tr>";
        echo "</table>\n";

        echo "</div><p>&nbsp;&nbsp;&nbsp;<a href='/fhiiqm/ma_tel_pdf_mc.php?e=$edit$getp'>PDF erstellen</a></p>\n<div align='center'>\n";
        if (isset($fnum) && $fnum>1 && !$filter && !$subf)
        {
            // Formular anzeigen fuer Filterbegriff
            $text = $fields[$fnum];
            $azeil = array(10=>'10',20=>'20',25=>'25',50=>'50',100=>'100',9999=>'alle'); // Anzahl gezeigter rows
            echo "<form action=" . $_SERVER['PHP_SELF'] . " method='post' enctype='application/x-www-form-urlencoded' id='ffilter' name='ffilter' target='_self'>\n";
            echo "<input type='hidden' name='s' value='$sort'>";
            echo "<input type='hidden' name='d' value='$dir'>";
            echo "<input type='hidden' name='f' value='$fnum'>";
            echo "<input type='hidden' name='e' value='$edit'>";
            echo "<table width=\"45%\" border=\"0\">\n";
            echo "<tr><td>filtern nach $text: </td>";
            echo "<td><input id='filter' name='filter' type=\"text\" size=\"30\" maxlength=\"30\" value=\"$filter\"/></td>";
/*
            echo "<td>Zeilen/Seite?   <select name='z'>\n";
            foreach ($azeil as $key=>$val)
            {
                if ($key == $zeil) $select = "selected"; else $select = "";
                echo "<option $select value='$key'>$val</option>\n";
            }
            echo "</select></td>\n";
*/
            echo "<td><input class=\"button\" type=\"hidden\" value=\"finden\" name=\"subf\" title=\"subf\" /></td></tr></table>\n";
            echo "</form>\n";
            echo "<p>&nbsp;&nbsp;&nbsp;</p>\n";
        }
        
        // Schnellsuche Namen
        echo "<p>";
        for ($j=65; $j<91; $j++)
        {
            echo "<a href='". $_SERVER["PHP_SELF"] . "?e=$edit&f=2&b=". chr($j)."' target=\"_self\" title=\"Telefonliste\" class=\"sc\">".chr($j)."&nbsp;&nbsp;&nbsp;</a>"; 
        }
        echo "</p>\n";
        echo "<table width='75%'>\n";
        
        if ($filter>'!') echo "<tr><td class='bigger' colspan=6>Filter: ". $fields["$fnum"] . " wie '$filter'</td></tr>\n";

        // Listenkopf generieren
        echo "<tr bgcolor='#68ACBF'>";
        tab_column(2,"Name",$sort,$dir,2,$fnum,$filter,$start,$zeil,$edit);
        tab_column(3,"Vorname",$sort,$dir,3,$fnum,$filter,$start,$zeil,$edit);
        tab_column(5,"Abteilung",$sort,$dir,5,$fnum,$filter,$start,$zeil,$edit);
        tab_column(6,"Arbeitsgruppe",$sort,$dir,6,$fnum,$filter,$start,$zeil,$edit);
        tab_column(9,"Haus",$sort,$dir,9,$fnum,$filter,$start,$zeil,$edit);
        tab_column(10,"Raum",$sort,$dir,10,$fnum,$filter,$start,$zeil,$edit);
        tab_column(7,"Telefon/Fax",$sort,$dir,7,$fnum,$filter,$start,$zeil,$edit);
        if ($edit && !is_null($_SESSION["recht"]) && in_array("mte", $_SESSION["recht"]))
            echo "<th>&nbsp</th>";
        echo "</tr>\n";
        foreach ($result as $row)
        {
			if ($row->persknr != $vpnr)
            {
                if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
                $titel = ($row->titel)? ", $row->titel" : "" ;
                $email = ($row->email)? "<a href='mailto:$row->email'>$row->name$titel</a>" : "$row->name$titel";
                if ($row->aktiv == 0) $class = " class='bgmark'"; else $class="";
                echo "<tr$class bgcolor='" . $bg . "'><td>$email</td>";    
                echo "<td>$row->vorname</td>";
                echo "<td>$row->abt_name</td>";
                echo "<td>$row->ag</td>";
    //            echo "<td class=\"left\">$row->telnr " . ($row->telefon_typ == 'fax')? ", " . strtoupper($row->telefon_typ) : "" . "</td>";
                $ttyp = ($row->telefon_typ == 'fax')? " " . strtoupper($row->telefon_typ) : "";
                $rot = ($row->public)? "" : " class=\"red\"";
                echo "<td>$row->geb_ID</td>";
                echo "<td>$row->raum_nr</td>";
                if ($row->sort == 1)
                    echo "<td$rot><b>$row->telefon_nr</b> $ttyp</td>";
                else
                    echo "<td$rot>$row->telefon_nr $ttyp</td>";
                if ($edit && !is_null($_SESSION["recht"]) && in_array("mte", $_SESSION["recht"]))
                    echo "<td><a href='/fhiiqm/ma_tel_ed.php?i=$row->persknr$getp'><img src=\"/fhiiqm/img/edit.gif\" alt='edit' title='edit' border='0'/></a></td>";
                echo "</tr>\n";
            }
            else
            {
                if ($vabt != $row->abt_name) $abt = $row->abt_name;
                else $abt = '&nbsp';    
                if ($vag != $row->ag) $ag = $row->ag;
                else $ag = '&nbsp';    
                if ($vtel != $row->telefon_nr) 
                {
                    $ttyp = ($row->telefon_typ == 'fax')? " " . strtoupper($row->telefon_typ) : "";
                    $rot = ($row->public)? "" : " class=\"red\"";
                    $tel = $row->telefon_nr; 
                }
                else
                {
                    $tel = '&nbsp';
                    $ttyp = '';    
                } 
                echo "<tr bgcolor='" . $bg . "'><td colspan='2'>&nbsp;</td>";    
                echo "<td>$abt</td>";
                echo "<td>$ag</td>";
                echo "<td>&nbsp;</td>";
                echo "<td>&nbsp;</td>";
                if ($row->sort == 1)
                    echo "<td$rot><b>$tel</b> $ttyp</td>";
                else
                    echo "<td$rot>$tel $ttyp</td>";
                if ($edit && !is_null($_SESSION["recht"]) && in_array("mte", $_SESSION["recht"]))
                    echo "<td>&nbsp;</td>";                
                echo "</tr>\n";
            }
            $vpnr = $row->persknr;
            $vabt = $row->abt_name;
            $vag  = $row->ag;
            $vtel = $row->telefon_nr;
        }
        echo "</table></div>\n";
        echo "<p>&nbsp;&nbsp;&nbsp;<a href='/fhiiqm/ma_tel_pdf_mc.php?e=$edit$getp'>PDF erstellen</a></p>\n";

    }
    else
    {
        echo "<div align=center>";
        if ($dbc -> error)  
            echo "error: " . $dbc -> error . "<br />\n";
        else
        {
            echo "<p class='red'>&nbsp;&nbsp;&nbsp;Leider nichts gefunden f&uuml;r ". $fields["$fnum"] . " wie '$filter'!</p><br />";
            echo "&nbsp;&nbsp;&nbsp;<a href=\"" . $_SERVER["PHP_SELF"] . "?e=$edit\" target=\"_self\" title=\"Telefonliste\" class=\"sc\">Telefonliste</a></p>\n";
        }
        echo "</div>";
    }
    
?>
</body>
</html>