mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
Diverse Funktionen hinzugefügt zur Ermittlung der Lektoren und Koordinatoren einer LV
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
* Klasse benutzerfunktion (FAS-Online)
|
||||
* @create 04-12-2006
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class benutzerfunktion extends basis_db
|
||||
{
|
||||
@@ -57,7 +57,7 @@ class benutzerfunktion extends basis_db
|
||||
public function __construct($benutzerfunktion_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
if($benutzerfunktion_id != null)
|
||||
$this->load($benutzerfunktion_id);
|
||||
}
|
||||
@@ -106,7 +106,7 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function benutzerfunktion_exists($uid, $benutzerfunktion)
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_benutzerfunktion
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($benutzerfunktion);
|
||||
|
||||
if($row = $this->db_fetch_object($this->db_query($qry)))
|
||||
@@ -131,8 +131,8 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function getBenutzerFunktion($uid, $funktion_kurzbz, $oe_kurzbz)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)."
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)."
|
||||
AND oe_kurzbz=".$this->db_add_param($oe_kurzbz);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
@@ -168,7 +168,7 @@ class benutzerfunktion extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt mehrere BenutzerFunktionen
|
||||
* @param funktion_kurzbz, studiengang_kz, semester
|
||||
@@ -177,7 +177,7 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function getBenutzerFunktionen($funktion_kurzbz, $oe_kurzbz='', $semester='', $uid='')
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)."
|
||||
AND (datum_bis >= now() OR datum_bis IS NULL)
|
||||
AND (datum_von <= now() OR datum_von IS NULL)";
|
||||
@@ -188,7 +188,7 @@ class benutzerfunktion extends basis_db
|
||||
$qry.=" AND semester=".$this->db_add_param($semester);
|
||||
if($uid!='')
|
||||
$qry.=" AND uid=".$this->db_add_param($uid);
|
||||
|
||||
|
||||
$qry.=" ORDER BY funktion_kurzbz, oe_kurzbz, semester";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
@@ -196,7 +196,7 @@ class benutzerfunktion extends basis_db
|
||||
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;
|
||||
@@ -211,9 +211,9 @@ class benutzerfunktion extends basis_db
|
||||
$obj->datum_bis = $row->datum_bis;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->wochenstunden = $row->wochenstunden;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -283,7 +283,7 @@ class benutzerfunktion extends basis_db
|
||||
$this->errormsg='Benutzerfunktion_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$qry = "DELETE FROM public.tbl_benutzerfunktion WHERE benutzerfunktion_id=".$this->db_add_param($benutzerfunktion_id, FHC_INTEGER);
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
@@ -293,7 +293,7 @@ class benutzerfunktion extends basis_db
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
@@ -379,13 +379,13 @@ class benutzerfunktion extends basis_db
|
||||
$this->benutzerfunktion_id = $row->id;
|
||||
$this->db_query('COMMIT;');
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
@@ -399,7 +399,7 @@ class benutzerfunktion extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Lädt alle Benutzerfunktionen zu einer UID
|
||||
* @param type $uid UID des Mitarbeiters
|
||||
@@ -410,7 +410,7 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function getBenutzerFunktionByUid($uid, $funktion_kurzbz=null, $startZeitraum=null, $endeZeitraum=null)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid);
|
||||
if(!is_null($funktion_kurzbz))
|
||||
{
|
||||
@@ -458,7 +458,7 @@ class benutzerfunktion extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt alle Benutzerfunktionen in einer Organisationseinheit
|
||||
* @param $oe_kurzbz
|
||||
@@ -470,7 +470,7 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function getOeFunktionen($oe_kurzbz, $funktionen_kurzbz=null, $startZeitraum=null, $endeZeitraum=null)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz);
|
||||
|
||||
if(!is_null($funktionen_kurzbz))
|
||||
@@ -486,15 +486,15 @@ class benutzerfunktion extends basis_db
|
||||
{
|
||||
$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;
|
||||
@@ -509,9 +509,9 @@ class benutzerfunktion extends basis_db
|
||||
$obj->datum_bis = $row->datum_bis;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->wochenstunden = $row->wochenstunden;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -521,5 +521,7 @@ class benutzerfunktion extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -489,4 +489,49 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Lektoren einer Lehrveranstlatung in einem Studiensemester
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
* @return array + true wenn ok / false im Fehlerfall
|
||||
*/
|
||||
public function getMitarbeiterLV($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
if(!is_numeric($lehrveranstaltung_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheit_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT
|
||||
vw_mitarbeiter.uid, vorname, nachname, titelpre, titelpost
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN campus.vw_mitarbeiter ON(tbl_lehreinheitmitarbeiter.mitarbeiter_uid=vw_mitarbeiter.uid)
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
$qry .=" ORDER BY nachname, vorname;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->uid = $row->uid;
|
||||
$obj->titelpre = $row->titelpre;
|
||||
$obj->titelpost = $row->titelpost;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ class lehrveranstaltung extends basis_db
|
||||
|
||||
if(!is_null($lehrtyp))
|
||||
$qry .= " AND lehrtyp_kurzbz=".$this->db_add_param($lehrtyp);
|
||||
|
||||
|
||||
if(!is_null($orgform) && $orgform!='')
|
||||
$qry .= " AND orgform_kurzbz=".$this->db_add_param($orgform);
|
||||
|
||||
@@ -899,7 +899,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->incoming = $row->incoming;
|
||||
$lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis);
|
||||
$lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit);
|
||||
$lv_obj->zeugnis = $row->koordinator;
|
||||
$lv_obj->koordinator = $row->koordinator;
|
||||
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
|
||||
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
$lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz;
|
||||
@@ -2195,7 +2195,7 @@ class lehrveranstaltung extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den LV-Leiter einer Lehrveranstaltung, wenn keiner der Lektoren als LVLeiter eingetragen ist,
|
||||
* Laedt den LV-Leiter einer Lehrveranstaltung, wenn keiner der Lektoren als LVLeiter eingetragen ist,
|
||||
* wird der erstbeste Lektor geliefert
|
||||
* @param $lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @param $studiensemester_kurzbz Studiensemester
|
||||
@@ -2203,10 +2203,10 @@ class lehrveranstaltung extends basis_db
|
||||
*/
|
||||
public function getLVLeitung($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid,
|
||||
CASE WHEN lehrfunktion_kurzbz='LV-Leitung' THEN 1 ELSE 2 END as sort
|
||||
FROM
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
WHERE
|
||||
@@ -2232,5 +2232,83 @@ class lehrveranstaltung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert den Koordinator einer Lehrveranstaltung
|
||||
* @param $lehrveranstaltung_id
|
||||
* @param $studiensemester_kurzbz
|
||||
*/
|
||||
public function getKoordinator($lehrveranstaltung_id, $studiensemester_kurzbz=null)
|
||||
{
|
||||
$qry = "
|
||||
SELECT a.uid, vorname, nachname, titelpre, titelpost
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
koordinator as uid
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
UNION
|
||||
SELECT
|
||||
uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung as lehrfach on(tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id)
|
||||
JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz)
|
||||
JOIN public.tbl_benutzerfunktion ON(tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz)
|
||||
WHERE
|
||||
tbl_benutzerfunktion.funktion_kurzbz='fbk'
|
||||
AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now())
|
||||
AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
|
||||
AND tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_benutzerfunktion.oe_kurzbz=(
|
||||
SELECT
|
||||
tbl_studiengang.oe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
)
|
||||
AND EXISTS(
|
||||
SELECT
|
||||
lehrveranstaltung_id
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND koordinator is null
|
||||
)
|
||||
";
|
||||
if(!is_null($studiensemester_kurzbz))
|
||||
$qry.=" AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
$qry.="
|
||||
) as a
|
||||
JOIN campus.vw_mitarbeiter ON(a.uid=vw_mitarbeiter.uid)
|
||||
WHERE vw_mitarbeiter.aktiv";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->uid = $row->uid;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->titelpost = $row->titelpost;
|
||||
$obj->titelpre = $row->titelpre;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
Reference in New Issue
Block a user