This commit is contained in:
Andreas Österreicher
2008-07-29 10:45:16 +00:00
parent 4320da694c
commit 65a487a616
4 changed files with 91 additions and 68 deletions
+13 -48
View File
@@ -24,6 +24,9 @@ require_once('../../config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/zeitsperre.class.php');
require_once('../../../include/person.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/mitarbeiter.class.php');
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim Connecten zur Datenbank');
@@ -69,56 +72,18 @@ echo '<html>
<br>
';
//Untergebene holen
$qry = "SELECT * FROM public.tbl_benutzerfunktion WHERE (funktion_kurzbz='fbl' OR funktion_kurzbz='stgl') AND uid='".addslashes($user)."'";
$mitarbeiter = new mitarbeiter($conn);
$mitarbeiter->getUntergebene($user);
if($result = pg_query($conn, $qry))
{
$institut='';
$stge='';
while($row = pg_fetch_object($result))
{
if($row->funktion_kurzbz=='fbl')
{
if($institut!='')
$institut.=',';
$institut.="'".addslashes($row->fachbereich_kurzbz)."'";
}
elseif($row->funktion_kurzbz=='stgl')
{
if($stge!='')
$stge.=',';
$stge.="'".$row->studiengang_kz."'";
}
}
}
$qry = "SELECT distinct uid FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='Institut' AND (false ";
if($institut!='')
$qry.=" OR fachbereich_kurzbz in($institut)";
if($stge!='')
$qry.=" OR studiengang_kz in($stge)";
$qry.=")";
$untergebene='';
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
if($untergebene!='')
$untergebene.=',';
$untergebene.="'".addslashes($row->uid)."'";
}
}
if($untergebene=='')
if(count($mitarbeiter->untergebene)==0)
die('Es sind Ihnen keine Mitarbeiter zugeteilt für die sie den Urlaub freigeben dürfen');
$untergebene = '';
foreach ($mitarbeiter->untergebene as $row)
{
if($untergebene!='')
$untergebene.=',';
$untergebene .= "'".$row."'";
}
$qry = "SELECT * FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid in($untergebene)";
$mitarbeiter = array();
+1 -14
View File
@@ -65,19 +65,6 @@ $t=getdate();
$uid = get_uid();
$taste=0;
function getVorgesetzten($uid)
{
global $conn;
$qry = "SELECT CASE WHEN fachbereich_kurzbz is not null THEN (SELECT uid FROM public.tbl_benutzerfunktion WHERE fachbereich_kurzbz=a.fachbereich_kurzbz AND funktion_kurzbz='fbl' LIMIT 1)
WHEN studiengang_kz is not null THEN (SELECT uid FROM public.tbl_benutzerfunktion WHERE studiengang_kz=a.studiengang_kz AND funktion_kurzbz='stgl' LIMIT 1)
ELSE ''
END as vorgesetzter
FROM public.tbl_benutzerfunktion a WHERE funktion_kurzbz='Institut' AND uid='$uid'";
$result = pg_query($conn, $qry);
$row = pg_fetch_object($result);
return (isset($row->vorgesetzter)?$row->vorgesetzter:'');
}
$ma= new mitarbeiter($conn);
for($i=0;$i<6;$i++)
{
@@ -240,7 +227,7 @@ if(isset($_GET['speichern']) && isset($_GET['wtag']))
$to.=$vg.'@'.DOMAIN;
}
}
//$to = 'ruhan@technikum-wien.at';
//$to = 'oesi@technikum-wien.at';
$benutzer = new benutzer($conn);
$benutzer->load($uid);
$message = "Dies ist eine automatische Mail! \n".
+71 -3
View File
@@ -44,6 +44,7 @@ class mitarbeiter extends benutzer
var $anmerkung;
var $bismelden;
var $vorgesetzte=array();
var $untergebene=array();
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional einen Mitarbeiter
@@ -879,7 +880,6 @@ class mitarbeiter extends benutzer
*/
function getVorgesetzte($uid=null)
{
global $conn;
$return=false;
if (is_null($uid))
$uid=$this->uid;
@@ -889,7 +889,7 @@ class mitarbeiter extends benutzer
ELSE ''
END as vorgesetzter
FROM public.tbl_benutzerfunktion a WHERE funktion_kurzbz='Institut' AND uid='$uid'";
$result = pg_query($conn, $qry);
$result = pg_query($this->conn, $qry);
while($row = pg_fetch_object($result))
{
if ($row->vorgesetzter!='')
@@ -898,6 +898,9 @@ class mitarbeiter extends benutzer
$return=true;
}
}
$this->vorgesetzte = array_unique($this->vorgesetzte);
if ($return)
return $return;
// Suche nach Assistenz
@@ -906,7 +909,7 @@ class mitarbeiter extends benutzer
ELSE ''
END as vorgesetzter
FROM public.tbl_benutzerfunktion a WHERE funktion_kurzbz='ass' AND uid='$uid'";
$result = pg_query($conn, $qry);
$result = pg_query($this->conn, $qry);
while($row = pg_fetch_object($result))
{
if ($row->vorgesetzter!='')
@@ -915,7 +918,72 @@ class mitarbeiter extends benutzer
$return=true;
}
}
$this->vorgesetzte = array_unique($this->vorgesetzte);
return $return;
}
// ************************
// * gibt die UIDs der Untergebenen zurück
// ************************
function getUntergebene($uid=null)
{
if (is_null($uid))
$uid=$this->uid;
//Alle Studiengänge und Fachbereiche holen bei denen die Person die Leitung hat
$qry = "SELECT * FROM public.tbl_benutzerfunktion
WHERE (funktion_kurzbz='fbl' OR funktion_kurzbz='stgl') AND uid='".addslashes($uid)."'";
if($result = pg_query($this->conn, $qry))
{
$institut='';
$stge='';
while($row = pg_fetch_object($result))
{
if($row->funktion_kurzbz=='fbl')
{
if($institut!='')
$institut.=',';
$institut.="'".addslashes($row->fachbereich_kurzbz)."'";
}
elseif($row->funktion_kurzbz=='stgl')
{
if($stge!='')
$stge.=',';
$stge.="'".$row->studiengang_kz."'";
}
}
}
//Alle Personen holen die diesen Studiengaengen/Fachbereichen untergeordnet sind
$qry = "SELECT distinct uid FROM public.tbl_benutzerfunktion WHERE (funktion_kurzbz='Institut' AND (false ";
if($institut!='')
$qry.=" OR fachbereich_kurzbz in($institut)";
if($stge!='')
$qry.=" OR studiengang_kz in($stge)";
$qry.=")) ";
if($stge!='')
$qry.=" OR (funktion_kurzbz='ass' AND studiengang_kz in($stge))";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$this->untergebene[]=$row->uid;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Ermitteln der Untergebenen';
return false;
}
}
}
?>
+6 -3
View File
@@ -23,6 +23,7 @@
require_once('../config.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiensemester.class.php');
if(!$conn=pg_pconnect(CONN_STRING))
die("Konnte Verbindung zur Datenbank nicht herstellen");
@@ -105,15 +106,17 @@ if (isset($_GET['insert']))
}
}
$where=" studiensemester_kurzbz='SS2008'";
if ($semester>0)
$stsem_obj = new studiensemester($conn);
$studiensemester = $stsem_obj->getNearest();
$where=" studiensemester_kurzbz='".$studiensemester."'";
if (isset($semester) && $semester>0)
$where.=" AND semester=$semester";
if ($stg_kz>0)
$where.=" AND studiengang_kz='$stg_kz'";
if(!is_numeric($stg_kz))
$stg_kz=0;
if(!is_numeric($semester))
if(!isset($semester) || !is_numeric($semester))
$semester=0;