CIS-Suche nach Organisationseinheiten

This commit is contained in:
kindlm
2015-04-27 18:55:52 +02:00
parent d3e768575f
commit f373ec7a67
12 changed files with 360 additions and 29 deletions
+1 -1
View File
@@ -171,7 +171,7 @@ function loadampel()
</td>
<td valign="middle" align="center">
<form name="searchform" action="private/tools/suche.php" method="GET" target="content" style="display:inline">
<input id="globalsearch" type="search" size="55" name="search" placeholder=" <?php echo $p->t('menu/suchePersonOrtDokumentInhalt');?> ..."/>
<input id="globalsearch" type="search" size="55" name="search" placeholder=" <?php echo $p->t('menu/suchePersonOrtDokumentInhalt');?> ..." title="<?php echo $p->t('menu/suchePersonOrtDokumentInhaltLang');?>"/>
<img src="../skin/images/search.png" onclick="document.searchform.submit()" class="suchicon"/>
</form>
</td>
+120 -2
View File
@@ -32,6 +32,13 @@ require_once('../../../include/dms.class.php');
require_once('../../../include/service.class.php');
require_once('../../../include/ort.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/organisationseinheit.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/benutzerfunktion.class.php');
require_once('../../../include/person.class.php');
require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/kontakt.class.php');
require_once('../../../include/bisverwendung.class.php');
$uid = get_uid();
$db = new basis_db();
@@ -79,11 +86,12 @@ if (count($easteregg_intersect)==4)
}
$searchPerson = searchPerson($searchItems);
$searchOE = searchOE($searchItems);
$searchOrt = searchOrt($search);
$searchDms = searchDms($searchItems);
$searchContent = searchContent($searchItems);
if (!$searchPerson && !$searchOrt && !$searchDms && !$searchContent)
if (!$searchPerson && !$searchOrt && !$searchDms && !$searchContent && !$searchOE)
echo $p->t('tools/esWurdenKeineErgebnisseGefunden');
@@ -133,10 +141,18 @@ function searchPerson($searchItems)
';
foreach($bn->result as $row)
{
$bisverwendung = new bisverwendung();
$bisverwendung->getLastVerwendung($row->uid);
echo '<tr>';
//echo '<td>',$row->titelpre,'</td>';
echo '<td>',$row->vorname,'</td>';
echo '<td><a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a></td>';
echo '<td><a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
if($row->aktiv==false)
echo '<span style="color: red"> (ausgeschieden)</span>';
elseif($bisverwendung->beschausmasscode==5)
echo '<span style="color: orange"> (karenziert)</span>';
echo '</td>';
//echo '<td>',$row->titelpost,'</td>';
echo '<td>',($row->studiengang!=''?$row->studiengang:'-'),'</td>';
echo '<td>',($row->mitarbeiter_uid==NULL?'StudentIn':'MitarbeiterIn'),'</td>';
@@ -158,6 +174,108 @@ function searchPerson($searchItems)
else
return false;
}
function searchOE($searchItems)
{
global $db, $p, $noalias;
//Suche nach Studiengaengen mit dem Suchbegriff und merge mit $searchItems
$stg_oe_array = array();
$stg = new studiengang();
$stg->search($searchItems);
foreach($stg->result as $row)
{
if($row->aktiv===true)
$stg_oe_array[].= $row->oe_kurzbz;
}
$searchItems = array_merge_recursive($stg_oe_array,$searchItems);
$oe = new organisationseinheit();
$oe->search($searchItems);
if(count($oe->result)>0)
{
echo '<h2 style="padding-bottom: 10px;">',$p->t('global/organisationseinheiten'),'</h2>';
echo '
<script type="text/javascript">
$(document).ready(function()
{
$(".tablesorter").each(function(i,v)
{
$("#"+v.id).tablesorter(
{
sortList: [[2,0],[1,0],[0,0]],
widgets: [\'zebra\'],
headers: {8:{sorter:false}}
})
});
}
);
</script>';
foreach($oe->result as $row)
{
if($row->aktiv==true)
{
$benutzerfunktion = new benutzerfunktion();
$benutzerfunktion->getOeFunktionen($row->oe_kurzbz,'ass,Leitung,stvLtg,oezuordnung','now()','now()');
$oebezeichnung = new organisationseinheit();
$oebezeichnung->load($row->oe_kurzbz);
echo '<h3>',$row->organisationseinheittyp_kurzbz,' ',$oebezeichnung->bezeichnung,'</h3>';
echo '<table class="tablesorter" id="t'.$row->oe_kurzbz.'">
<thead>
<tr>
<th>',$p->t('global/vorname'),'</th>
<th>',$p->t('global/nachname'),'</th>
<th>',$p->t('global/funktion'),'</th>
<th>',$p->t('global/telefonnummer'),'</th>
<th>',$p->t('lvplan/raum'),'</th>
<th>',$p->t('global/mail'),'</th>
</tr>
</thead>
<tbody>
';
foreach($benutzerfunktion->result as $bf)
{
$person = new person();
$person->getPersonFromBenutzer($bf->uid);
$mitarbeiter = new mitarbeiter();
$mitarbeiter->load($bf->uid);
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($mitarbeiter->standort_id,'telefon');
$bisverwendung = new bisverwendung();
$bisverwendung->getLastVerwendung($bf->uid);
echo '<tr>';
echo '<td>'.$person->vorname.'</td>';
echo '<td><a href="../profile/index.php?uid=',$person->uid,'" title="',$person->titelpre,' ',$person->vorname,' ',$person->nachname,' ',$person->titelpost,'">',$person->nachname,'</a></td>';
echo '<td>'.$bf->bezeichnung;
if($person->aktiv==false)
echo '<span style="color: red"> (ausgeschieden)</span>';
elseif($bisverwendung->beschausmasscode==5)
echo '<span style="color: orange"> (karenziert)</span>';
echo '</td>';
echo '<td>',($mitarbeiter->telefonklappe!=''?$kontakt->kontakt.'-'.$mitarbeiter->telefonklappe:'-'),'</td>';
echo '<td>',($mitarbeiter->ort_kurzbz!=''?$mitarbeiter->ort_kurzbz:'-'),'</td>';
//if($row->alias!='' && !in_array($row->studiengang_kz, $noalias)) ??? Was macht $noalias?
if($person->alias!='')
$mail = $person->alias.'@'.DOMAIN;
else
$mail = $person->uid.'@'.DOMAIN;
echo '<td><a href="mailto:',$mail,'">',$mail,'</a></td>';
//if(!defined('CIS_SUCHE_LVPLAN_ANZEIGEN') || CIS_SUCHE_LVPLAN_ANZEIGEN)
//echo '<td><a href="../../../cis/private/lvplan/stpl_week.php?pers_uid='.$person->uid.($person->mitarbeiter_uid==NULL?'&type=student':'&type=lektor').'">'.$p->t('lvplan/lvPlan').'</a></td>';
echo '</tr>';
echo "\n";
}
echo "\n";
echo '</tbody></table><br>';
}
}
return true;
}
else
return false;
}
function searchOrt($search)
{
global $db, $p, $noalias;
+24 -17
View File
@@ -297,23 +297,29 @@ class benutzer extends person
*/
public function search($searchItems, $limit=null, $aktiv=true)
{
$qry = "SELECT * FROM (SELECT
distinct on (uid) vorname, nachname, uid, mitarbeiter_uid, titelpre, titelpost, lektor, fixangestellt, alias,
(SELECT UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz)
FROM public.tbl_student JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE student_uid=tbl_benutzer.uid) as studiengang,
(SELECT studiengang_kz FROM public.tbl_student
WHERE student_uid=tbl_benutzer.uid) as studiengang_kz,
(SELECT tbl_kontakt.kontakt || ' - ' ||telefonklappe
FROM public.tbl_mitarbeiter
LEFT JOIN public.tbl_kontakt USING(standort_id)
WHERE
mitarbeiter_uid=tbl_benutzer.uid
AND (tbl_kontakt.kontakttyp='telefon' OR tbl_kontakt.kontakttyp is null)
limit 1) as klappe,
(SELECT planbezeichnung FROM public.tbl_mitarbeiter
LEFT JOIN public.tbl_ort USING (ort_kurzbz)
WHERE mitarbeiter_uid=tbl_benutzer.uid) as raum
$qry = "SELECT * FROM (
SELECT
distinct on (uid) vorname, nachname, uid, mitarbeiter_uid, titelpre, titelpost, lektor, fixangestellt, alias, tbl_benutzer.aktiv,
(SELECT UPPER
(tbl_studiengang.typ || tbl_studiengang.kurzbz)
FROM public.tbl_student
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE student_uid=tbl_benutzer.uid) as studiengang,
(SELECT studiengang_kz FROM public.tbl_student
WHERE student_uid=tbl_benutzer.uid) as studiengang_kz,
(SELECT tbl_kontakt.kontakt || ' - ' ||telefonklappe
FROM public.tbl_mitarbeiter
LEFT JOIN public.tbl_kontakt USING(standort_id)
WHERE
mitarbeiter_uid=tbl_benutzer.uid
AND (tbl_kontakt.kontakttyp='telefon' OR tbl_kontakt.kontakttyp is null)
limit 1) as klappe,
(SELECT planbezeichnung FROM public.tbl_mitarbeiter
LEFT JOIN public.tbl_ort USING (ort_kurzbz)
WHERE mitarbeiter_uid=tbl_benutzer.uid) as raum
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
@@ -359,6 +365,7 @@ class benutzer extends person
$obj->alias = $row->alias;
$obj->lektor = $row->lektor;
$obj->fixangestellt = $row->fixangestellt;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$this->result[] = $obj;
}
+63
View File
@@ -458,5 +458,68 @@ class benutzerfunktion extends basis_db
return false;
}
}
/**
* Laedt alle Benutzerfunktionen in einer Organisationseinheit
* @param $oe_kurzbz
* @param $funktionen_kurzbz (optional) Funktionen in der OE, kommagetrennt
* @param type $startZeitraum OPTIONAL Start Zeitraum in dem die Funktion aktiv ist
* @param type $endeZeitraum OPTIONAL Ende Zeitraum in dem die Funktion aktiv ist
* @return false wenn nicht vorhanden oder fehler
* sonst true
*/
public function getOeFunktionen($oe_kurzbz, $funktionen_kurzbz=null, $startZeitraum=null, $endeZeitraum=null)
{
$qry = "SELECT * FROM public.tbl_benutzerfunktion
WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz);
if(!is_null($funktionen_kurzbz))
{
$funktionen_kurzbz = explode(',', $funktionen_kurzbz);
$qry .= ' AND funktion_kurzbz IN('.$this->implode4SQL($funktionen_kurzbz).')';
}
if(!is_null($startZeitraum))
{
$qry .=' AND (datum_bis IS NULL OR datum_bis >='.$this->db_add_param($startZeitraum).')';
}
if(!is_null($endeZeitraum))
{
$qry .=' AND (datum_von IS NULL OR datum_von <='.$this->db_add_param($endeZeitraum).')';
}
$qry.=" ORDER BY bezeichnung, uid";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new benutzerfunktion();
$obj->benutzerfunktion_id = $row->benutzerfunktion_id;
$obj->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$obj->uid = $row->uid;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->funktion_kurzbz = $row->funktion_kurzbz;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->semester = $row->semester;
$obj->datum_von = $row->datum_von;
$obj->datum_bis = $row->datum_bis;
$obj->bezeichnung = $row->bezeichnung;
$obj->wochenstunden = $row->wochenstunden;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der OE-Funktionen';
return false;
}
}
}
?>
+6 -2
View File
@@ -408,7 +408,7 @@ class bisverwendung extends basis_db
}
/**
* Laedt alle Verwendungen eines Mitarbeiters
* Laedt die Letzte (aktuellste) Verwendungen eines Mitarbeiters
* @param $uid UID des Mitarbeiters
* @return true wenn ok, false wenn Fehler
*/
@@ -421,7 +421,11 @@ class bisverwendung extends basis_db
bis.tbl_bisverwendung
WHERE
mitarbeiter_uid=".$this->db_add_param($uid)."
ORDER BY beginn DESC LIMIT 1;";
AND
(beginn<=now() OR beginn IS NULL)
AND
(ende>=now() OR ende IS NULL)
ORDER BY ende DESC NULLS LAST,beginn DESC NULLS LAST LIMIT 1;";
if($this->db_query($qry))
{
+12 -4
View File
@@ -556,15 +556,23 @@ class organisationseinheit extends basis_db
/**
* Sucht nach einer Organisationseinheit
* @param type $oetyp_kurzbz
* @param type $searchItem
* @return boolean true, wenn ok; false, im Fehlerfall
*/
public function search($searchItem)
{
$qry = 'SELECT * FROM public.tbl_organisationseinheit WHERE
(LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR
LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\'))
ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
(
LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
OR
LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
)';
foreach($searchItem as $value)
{
$qry.=' OR (oe_kurzbz='.$this->db_add_param($value).')
OR (bezeichnung='.$this->db_add_param($value).')';
}
$qry.= 'ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
if($this->db_query($qry))
{
+65 -1
View File
@@ -867,5 +867,69 @@ class person extends basis_db
return $fullname;
}
}
/**
* Laedt Personendaten eines Benutzers
* @param $uid
*/
function getPersonFromBenutzer($uid)
{
$qry = "SELECT
*
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
WHERE
uid=".$this->db_add_param($uid, FHC_STRING);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->person_id = $row->person_id;
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
$this->geburtsnation = $row->geburtsnation;
$this->sprache = $row->sprache;
$this->anrede = $row->anrede;
$this->titelpost = $row->titelpost;
$this->titelpre = $row->titelpre;
$this->nachname = $row->nachname;
$this->vorname = $row->vorname;
$this->vornamen = $row->vornamen;
$this->gebdatum = $row->gebdatum;
$this->gebort = $row->gebort;
$this->gebzeit = $row->gebzeit;
$this->foto = $row->foto;
$this->anmerkungen = $row->anmerkung;
$this->homepage = $row->homepage;
$this->svnr = $row->svnr;
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->familienstand = $row->familienstand;
$this->geschlecht = $row->geschlecht;
$this->anzahlkinder = $row->anzahlkinder;
$this->aktiv = $this->db_parse_bool($row->aktiv);
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->ext_id = $row->ext_id;
$this->kurzbeschreibung = $row->kurzbeschreibung;
$this->zugangscode = $row->zugangscode;
$this->foto_sperre = $this->db_parse_bool($row->foto_sperre);
$this->matr_nr = $row->matr_nr;
$this->uid = $row->uid;
$this->aktiv = $this->db_parse_bool($row->aktiv);;
$this->alias = $row->alias;
$this->updateaktivvon = $row->updateaktivvon;
$this->updateaktivam = $row->updateaktivam;
$this->aktivierungscode = $row->aktivierungscode;
}
else
{
$this->errormsg = 'Keine Personendaten zu dieser UID gefunden';
return false;
}
}
}
}
?>
+63
View File
@@ -710,4 +710,67 @@ class studiengang extends basis_db
return false;
}
}
/**
* Sucht nach einem Studiengang
* @param type $searchItem
* @return boolean true, wenn ok; false, im Fehlerfall
*/
public function search($searchItem)
{
$qry = 'SELECT * FROM public.tbl_studiengang WHERE
LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR
LOWER(english) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
ORDER BY typ,bezeichnung;';
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new studiengang();
$obj->studiengang_kz = $row->studiengang_kz;
$obj->kurzbz = $row->kurzbz;
$obj->kurzbzlang = $row->kurzbzlang;
$obj->bezeichnung = $row->bezeichnung;
$obj->english = $row->english;
$obj->typ = $row->typ;
$obj->farbe = $row->farbe;
$obj->email = $row->email;
$obj->max_semester = $row->max_semester;
$obj->max_verband = $row->max_verband;
$obj->max_gruppe = $row->max_gruppe;
$obj->erhalter_kz = $row->erhalter_kz;
$obj->bescheid = $row->bescheid;
$obj->bescheidbgbl1 = $row->bescheidbgbl1;
$obj->bescheidbgbl2 = $row->bescheidbgbl2;
$obj->bescheidgz = $row->bescheidgz;
$obj->bescheidvom = $row->bescheidvom;
$obj->ext_id = $row->ext_id;
$obj->kuerzel = mb_strtoupper($row->typ . $row->kurzbz);
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->zusatzinfo_html = $row->zusatzinfo_html;
$obj->sprache = $row->sprache;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->studienplaetze = $row->studienplaetze;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->lgartcode = $row->lgartcode;
$obj->telefon = $row->telefon;
$obj->titelbescheidvom = $row->titelbescheidvom;
$obj->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
$obj->moodle = $this->db_parse_bool($row->moodle);
$obj->mischform = $this->db_parse_bool($row->mischform);
$obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden des Studiengangs';
return false;
}
}
}
+1
View File
@@ -9,6 +9,7 @@ $this->phrasen['global/studiengangsleitung']='Studiengangsleitung';
$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung';
$this->phrasen['global/lehreinheit']='Lehreinheit';
$this->phrasen['global/organisationseinheit']='Organisationseinheit';
$this->phrasen['global/organisationseinheiten']='Organisationseinheiten';
$this->phrasen['global/fhtw']='Fachhochschule Technikum Wien';
$this->phrasen['global/fhTechnikumWien']='FH Technikum Wien';
+2 -1
View File
@@ -7,5 +7,6 @@ $this->phrasen['menu/organisationseinheit']='Zeitsperren nach Organisationseinhe
$this->phrasen['menu/assistenz']='Zeitsperren aller AssistentInnen';
$this->phrasen['menu/lektoren']='Lektoren';
$this->phrasen['menu/urlaubAlle']='Alle';
$this->phrasen['menu/suchePersonOrtDokumentInhalt']='Suche Person / Ort / Dokument / Inhalt / Durchwahl';
$this->phrasen['menu/suchePersonOrtDokumentInhalt']='Suche Person / OE / Ort / Dokument / Inhalt / DW';
$this->phrasen['menu/suchePersonOrtDokumentInhaltLang']='Suche Person / Organisationseinheit / Ort / Dokument / Inhalt / Durchwahl';
?>
+1
View File
@@ -9,6 +9,7 @@ $this->phrasen['global/studiengangsleitung']='Program Director';
$this->phrasen['global/lehrveranstaltung']='Subject';
$this->phrasen['global/lehreinheit']='Teaching unit';
$this->phrasen['global/organisationseinheit']='Organisation Unit';
$this->phrasen['global/organisationseinheiten']='Organisation Units';
$this->phrasen['global/fhtw']='University of Applied Sciences Technikum Wien';
$this->phrasen['global/fhTechnikumWien']='UAS Technikum Wien';
+2 -1
View File
@@ -7,5 +7,6 @@ $this->phrasen['menu/organisationseinheit']='Organization Units';
$this->phrasen['menu/assistenz']='Assistants';
$this->phrasen['menu/lektoren']='Lector';
$this->phrasen['menu/urlaubAlle']='All';
$this->phrasen['menu/suchePersonOrtDokumentInhalt']='Search Person / Room / Document / Content / Extension';
$this->phrasen['menu/suchePersonOrtDokumentInhalt']='Search Person / OU / Room / Document / Content / Ext.';
$this->phrasen['menu/suchePersonOrtDokumentInhaltLang']='Search Person / Organisation Unit / Room / Document / Content / Extension';
?>