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
+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;
}
}
}