, * Andreas Oesterreicher and * Rudolf Hangl . * Stefan Puraner */ require_once(dirname(__FILE__) . '/basis_db.class.php'); require_once(dirname(__FILE__) . '/functions.inc.php'); require_once(dirname(__FILE__) . '/studiengang.class.php'); class lehrveranstaltung extends basis_db { public $new; // boolean public $lehrveranstaltungen = array(); // lehrveranstaltung Objekt public $lehrveranstaltung_id; // serial public $studiengang_kz; // integer public $bezeichnung; // string public $kurzbz; // string public $lehrform_kurzbz; // string public $semester; // smallint public $ects; // numeric(5,2) public $semesterstunden; // smallint public $anmerkung; // string public $lehre = true; // boolean public $lehreverzeichnis; // string public $aktiv = true; // boolean public $ext_id; // bigint public $insertamum; // timestamp public $insertvon; // string public $planfaktor; // numeric(3,2) public $planlektoren; // integer public $planpersonalkosten; // numeric(7,2) public $plankostenprolektor; // numeric(6,2) public $updateamum; // timestamp public $updatevon; // string public $sprache = 'German'; // varchar(16) public $sort; // smallint public $incoming = 5; // smallint public $zeugnis = true; // boolean public $projektarbeit; // boolean public $koordinator; // varchar(16) public $bezeichnung_english; // varchar(256) public $orgform_kurzbz; // varchar(3) public $lehrtyp_kurzbz; // varchar(32) public $oe_kurzbz; // varchar(32) public $raumtyp_kurzbz; // varchar(16) public $anzahlsemester; // smallint public $semesterwochen; // smallint public $lvnr; // varchar(32) public $bezeichnung_arr = array(); public $semester_alternativ; // smallint public $farbe; public $lehrauftrag=true; public $studienplan_lehrveranstaltung_id; public $studienplan_lehrveranstaltung_id_parent; public $stpllv_pflicht=true; public $stpllv_koordinator; public $stpllv_semester; public $sws; public $lvs; public $alvs; public $lvps; public $las; public $benotung=true; public $lvinfo=true; public $curriculum=true; public $export=true; /** * Konstruktor * @param $lehrveranstaltung_id ID der zu ladenden Lehrveranstaltung */ public function __construct($lehrveranstaltung_id = null) { parent::__construct(); if (!is_null($lehrveranstaltung_id)) $this->load($lehrveranstaltung_id); } /** * Laedt einen Datensatz * @param $lehrveranstaltung_id ID des zu ladenden Datensatzes * @return true wenn ok, false im Fehlerfall */ public function load($lehrveranstaltung_id) { if (!is_numeric($lehrveranstaltung_id)) { $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein'; return false; } $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER); if (!$this->db_query($qry)) { $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } if ($row = $this->db_fetch_object()) { $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; $this->studiengang_kz = $row->studiengang_kz; $this->bezeichnung = $row->bezeichnung; $this->kurzbz = $row->kurzbz; $this->lehrform_kurzbz = $row->lehrform_kurzbz; $this->semester = $row->semester; $this->ects = $row->ects; $this->semesterstunden = $row->semesterstunden; $this->anmerkung = $row->anmerkung; $this->lehre = $this->db_parse_bool($row->lehre); $this->lehreverzeichnis = $row->lehreverzeichnis; $this->aktiv = $this->db_parse_bool($row->aktiv); $this->ext_id = $row->ext_id; $this->insertamum = $row->insertamum; $this->insertvon = $row->insertvon; $this->planfaktor = $row->planfaktor; $this->planlektoren = $row->planlektoren; $this->planpersonalkosten = $row->planpersonalkosten; $this->plankostenprolektor = $row->plankostenprolektor; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; $this->sprache = $row->sprache; $this->sort = $row->sort; $this->incoming = $row->incoming; $this->zeugnis = $this->db_parse_bool($row->zeugnis); $this->projektarbeit = $this->db_parse_bool($row->projektarbeit); $this->koordinator = $row->koordinator; $this->bezeichnung_english = $row->bezeichnung_english; $this->orgform_kurzbz = $row->orgform_kurzbz; $this->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $this->oe_kurzbz = $row->oe_kurzbz; $this->raumtyp_kurzbz = $row->raumtyp_kurzbz; $this->anzahlsemester = $row->anzahlsemester; $this->semesterwochen = $row->semesterwochen; $this->lvnr = $row->lvnr; $this->semester_alternativ = $row->semester_alternativ; $this->farbe = $row->farbe; $this->sws = $row->sws; $this->lvs = $row->lvs; $this->alvs = $row->alvs; $this->lvps = $row->lvps; $this->las = $row->las; $this->benotung = $this->db_parse_bool($row->benotung); $this->lvinfo = $this->db_parse_bool($row->lvinfo); $this->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); // FIXME: LV-Bezeichnung richtig mehrsprachig machen // Zwischenzeitlich 'Italian' zum bezeichnung_arr dazugegeben $this->bezeichnung_arr['German'] = $this->bezeichnung; $this->bezeichnung_arr['Italian'] = $this->bezeichnung; $this->bezeichnung_arr['English'] = $this->bezeichnung_english; if ($this->bezeichnung_arr['English'] == '') $this->bezeichnung_arr['English'] = $this->bezeichnung_arr['German']; } return true; } /** * Liefert alle Lehrveranstaltungen * @return true wenn ok, false im Fehlerfall */ public function getAll() { $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung;"; if (!$this->db_query($qry)) { $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } while ($row = $this->db_fetch_object()) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $lv_obj->anzahlsemester = $row->anzahlsemester; $lv_obj->semesterwochen = $row->semesterwochen; $lv_obj->lvnr = $row->lvnr; $lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $lv_obj; } return true; } /** * Liefert alle Lehrveranstaltungen die den gefilterten Attributen entsprechen * @param $studiengang_kz integer Kennzahl des Studiengangs. * @param $semester integer Ausbildungssemester. * @param $lehreverzeichnis string LehreVZ * @param $lehre boolean Lehre * @param $aktiv boolean * @param $sort smallint Sortierung * @param $oe_kurzbz string Organisationseinheit * @param $lehrtyp string lehrtyp_kurzbz * @param $orgform string Organisationsform * @return true wenn ok, false im Fehlerfall */ public function load_lva($studiengang_kz=null, $semester = null, $lehreverzeichnis = null, $lehre = null, $aktiv = null, $sort = null, $oe_kurzbz=null, $lehrtyp=null, $orgform=null) { //Variablen pruefen if($semester == "null") $semester = null; if($lehreverzeichnis == "null") $lehreverzeichnis = null; if (!is_null($studiengang_kz) && (!is_numeric($studiengang_kz) && $studiengang_kz != '')) { $this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein'; return false; } if (!is_null($semester) && (!is_numeric($semester) && $semester != '')) { $this->errormsg = 'Semester muss eine gueltige Zahl sein'; return false; } if (!is_null($aktiv) && !is_bool($aktiv)) { $this->errormsg = 'Aktiv muss ein boolscher Wert sein'; return false; } if (!is_null($lehre) && !is_bool($lehre)) { $this->errormsg = 'Lehre muss ein boolscher Wert sein'; return false; } $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE 1=1"; if (!is_null($studiengang_kz)) $qry.=" AND studiengang_kz=" . $this->db_add_param($studiengang_kz, FHC_INTEGER); //Select Befehl zusammenbauen if (!is_null($lehreverzeichnis)) $qry .= " AND lehreverzeichnis=" . $this->db_add_param($lehreverzeichnis); if (!is_null($semester) && $semester != '') $qry .= " AND semester=" . $this->db_add_param($semester, FHC_INTEGER); else $qry .= " AND semester is not null "; if (!is_null($lehre)) $qry .= " AND lehre=" . ($lehre ? 'true' : 'false'); if (!is_null($aktiv) && $aktiv) $qry .= " AND aktiv "; if (!is_null($lehre) && $lehre) $qry .= " AND lehre "; if(!is_null($oe_kurzbz)) $qry .= " AND oe_kurzbz=".$this->db_add_param($oe_kurzbz); 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); if (is_null($sort) || empty($sort)) $qry .= " ORDER BY semester, bezeichnung"; else $qry .= " ORDER BY $sort "; //Datensaetze laden if (!$this->db_query($qry)) { $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } while ($row = $this->db_fetch_object()) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $lv_obj->anzahlsemester = $row->anzahlsemester; $lv_obj->semesterwochen = $row->semesterwochen; $lv_obj->lvnr = $row->lvnr; $lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['Italian'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $lv_obj; } return true; } /** * Liefert alle Lehrveranstaltungen zu einem Studiengang/Semester * @param $studiengang_kz * @param $semester * @return true wenn ok, false im Fehlerfall */ public function load_lva_le($studiengang_kz, $studiensemester_kurzbz = null, $semester = null, $lehreverzeichnis = null, $lehre = null, $aktiv = null, $sort = null) { //Variablen pruefen if (!is_numeric($studiengang_kz) || $studiengang_kz === '') { $this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein'; return false; } if (!is_null($semester) && (!is_numeric($semester) && $semester != '')) { $this->errormsg = 'Semester muss eine gueltige Zahl sein'; return false; } if (!is_null($aktiv) && !is_bool($aktiv)) { $this->errormsg = 'Aktiv muss ein boolscher Wert sein'; return false; } if (!is_null($lehre) && !is_bool($lehre)) { $this->errormsg = 'Lehre muss ein boolscher Wert sein'; return false; } $qry = "SELECT distinct lehre.tbl_lehrveranstaltung.*, tbl_lehreinheit.studiensemester_kurzbz FROM lehre.tbl_lehrveranstaltung,lehre.tbl_lehreinheit WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER); //Select Befehl zusammenbauen if (!is_null($lehreverzeichnis)) $qry .= " AND lehreverzeichnis=" . $this->db_add_param($lehreverzeichnis); if (!is_null($semester) && $semester != '') $qry .= " AND semester=" . $this->db_add_param($semester); else $qry .= " AND semester is not null "; if (!is_null($studiensemester_kurzbz) && $studiensemester_kurzbz != '') $qry .= " AND tbl_lehreinheit.studiensemester_kurzbz=" . $this->db_add_param($studiensemester_kurzbz); if (!is_null($lehre)) $qry .= " AND lehre=" . ($lehre ? 'true' : 'false'); if (!is_null($aktiv) && $aktiv) $qry .= " AND aktiv "; if (!is_null($lehre) && $lehre) $qry .= " AND lehre "; if (is_null($sort) || empty($sort)) $qry .= " ORDER BY semester, bezeichnung"; else $qry .= " ORDER BY $sort "; //Datensaetze laden if (!$this->db_query($qry)) { $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } while ($row = $this->db_fetch_object()) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $lv_obj->anzahlsemester = $row->anzahlsemester; $lv_obj->semesterwochen = $row->semesterwochen; $lv_obj->lvnr = $row->lvnr; $lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $lv_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; $this->lehrveranstaltungen[] = $lv_obj; } return true; } /** * Liefert alle Lehrveranstaltungen eines Studenten (alle Semester) * @param $student_uid * @return true wenn ok, false im Fehlerfall */ public function load_lva_student($student_uid, $studiensemester_kurzbz=NULL) { $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung WHERE uid=" . $this->db_add_param($student_uid); if($studiensemester_kurzbz !== NULL) $qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); $qry .= ") OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE student_uid=" . $this->db_add_param($student_uid); if($studiensemester_kurzbz !== NULL) $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param ($studiensemester_kurzbz); $qry .= ") ORDER BY semester, bezeichnung"; //Datensaetze laden if (!$this->db_query($qry)) { $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } while ($row = $this->db_fetch_object()) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $lv_obj->anzahlsemester = $row->anzahlsemester; $lv_obj->semesterwochen = $row->semesterwochen; $lv_obj->lvnr = $row->lvnr; $lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $lv_obj; } return true; } /** * Zaehlt alle Lehrveranstaltungen einer Organisationsform in einem Studiengang * @param $studiengang_kz * @param $orgform_kurzbz * @return false im Fehlerfall, ansonsten das Ergebnis */ public function count_lva_orgform($studiengang_kz, $orgform_kurzbz=null) { if(!is_numeric($studiengang_kz) || $studiengang_kz=='') { $this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein'; return false; } $qry='SELECT count(*) as count FROM lehre.tbl_lehrveranstaltung WHERE studiengang_kz='.$this->db_add_param($studiengang_kz).' AND orgform_kurzbz'.(is_null($orgform_kurzbz)?' is null':"=".$this->db_add_param($orgform_kurzbz)); $return=array(); if($db_result=$this->db_query($qry)) { if($row=$this->db_fetch_object($db_result)) { return $row->count; } } $this->errormsg = 'Fehler bei der Datenbankabfrage'; return false; } /** * Prueft die Gueltigkeit der Variablen * @return true wenn ok, false im Fehlerfall */ public function validate() { //Laenge Pruefen if (mb_strlen($this->bezeichnung) > 128) { $this->errormsg = 'Bezeichnung darf nicht laenger als 128 Zeichen sein'; return false; } if (mb_strlen($this->kurzbz) > 16) { $this->errormsg = 'Kurzbez darf nicht laenger als 16 Zeichen sein'; return false; } if (mb_strlen($this->anmerkung) > 64) { $this->errormsg = 'Anmerkung darf nicht laenger als 64 Zeichen sein'; return false; } if (mb_strlen($this->lehreverzeichnis) > 16) { $this->errormsg = 'Lehreverzeichnis darf nicht laenger als 16 Zeichen sein'; return false; } if (mb_strlen($this->lvnr) > 32) { $this->errormsg = 'LVNR darf nicht laenger als 32 Zeichen sein'; return false; } if (!is_numeric($this->studiengang_kz)) { $this->errormsg = 'Studiengang_kz ist ungueltig'; return false; } if ($this->semester != '' && !is_numeric($this->semester)) { $this->errormsg = 'Semester ist ungueltig'; return false; } if ($this->planfaktor != '' && !is_numeric($this->planfaktor)) { $this->errormsg = 'Planfaktor ist ungueltig'; return false; } if ($this->planlektoren != '' && !is_numeric($this->planlektoren)) { $this->errormsg = 'Planlektoren ist ungueltig'; return false; } if ($this->ects != '' && !is_numeric($this->ects)) { $this->errormsg = 'ECTS sind ungueltig'; return false; } if ($this->ects > 40) { $this->errormsg = 'ECTS darf nicht groesser als 40 sein'; return false; } if ($this->semesterstunden != '' && !isint($this->semesterstunden)) { $this->errormsg = 'Semesterstunden muss ein eine gueltige ganze Zahl sein'; return false; } if ($this->sort != '' && !isint($this->sort)) { $this->errormsg = 'Sort muss ein eine gueltige ganze Zahl sein'; return false; } if ($this->incoming != '' && !isint($this->incoming)) { $this->errormsg = 'Sort muss ein eine gueltige ganze Zahl sein'; return false; } if ($this->anzahlsemester != '' && !isint($this->sort)) { $this->errormsg = 'Anzahl Semester muss ein eine gueltige ganze Zahl sein'; return false; } if ($this->semesterwochen != '' && !isint($this->sort)) { $this->errormsg = 'Semesterwochen muss ein eine gueltige ganze Zahl sein'; return false; } $this->errormsg = ''; return true; } /** * Speichert den aktuellen Datensatz * @return true wenn ok, false im Fehlerfall */ public function save($new = null) { if ($new == null) $new = $this->new; //Gueltigkeit der Variablen pruefen if (!$this->validate()) return false; if ($new) { //Neuen Datensatz anlegen $qry = 'BEGIN; INSERT INTO lehre.tbl_lehrveranstaltung (studiengang_kz, bezeichnung, kurzbz, lehrform_kurzbz, semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, insertamum, insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort, zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz, incoming, lehrtyp_kurzbz, oe_kurzbz, raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe,sws,lvs,alvs,lvps,las,benotung,lvinfo, lehrauftrag) VALUES (' . $this->db_add_param($this->studiengang_kz) . ', ' . $this->db_add_param($this->bezeichnung) . ', ' . $this->db_add_param($this->kurzbz) . ', ' . $this->db_add_param($this->lehrform_kurzbz) . ', ' . $this->db_add_param($this->semester) . ', ' . $this->db_add_param($this->ects) . ', ' . $this->db_add_param($this->semesterstunden) . ', ' . $this->db_add_param($this->anmerkung) . ', ' . $this->db_add_param($this->lehre, FHC_BOOLEAN) . ',' . $this->db_add_param($this->lehreverzeichnis) . ', ' . $this->db_add_param($this->aktiv, FHC_BOOLEAN) . ', ' . $this->db_add_param($this->insertamum) . ', ' . $this->db_add_param($this->insertvon) . ', ' . $this->db_add_param($this->planfaktor) . ', ' . $this->db_add_param($this->planlektoren) . ', ' . $this->db_add_param($this->planpersonalkosten) . ', ' . $this->db_add_param($this->plankostenprolektor) . ', ' . $this->db_add_param($this->updateamum) . ', ' . $this->db_add_param($this->updatevon) . ',' . $this->db_add_param($this->sort) . ',' . $this->db_add_param($this->zeugnis, FHC_BOOLEAN) . ',' . $this->db_add_param($this->projektarbeit, FHC_BOOLEAN) . ',' . $this->db_add_param($this->sprache) . ',' . $this->db_add_param($this->koordinator) . ',' . $this->db_add_param($this->bezeichnung_english) . ',' . $this->db_add_param($this->orgform_kurzbz) . ',' . $this->db_add_param($this->incoming) . ',' . $this->db_add_param($this->lehrtyp_kurzbz) . ',' . $this->db_add_param($this->oe_kurzbz) . ',' . $this->db_add_param($this->raumtyp_kurzbz) . ',' . $this->db_add_param($this->anzahlsemester) . ',' . $this->db_add_param($this->semesterwochen) . ',' . $this->db_add_param($this->lvnr) .','. $this->db_add_param($this->semester_alternativ).','. $this->db_add_param($this->farbe).','. $this->db_add_param($this->sws).','. $this->db_add_param($this->lvs).','. $this->db_add_param($this->alvs).','. $this->db_add_param($this->lvps).','. $this->db_add_param($this->las).','. $this->db_add_param($this->benotung, FHC_BOOLEAN).','. $this->db_add_param($this->lvinfo, FHC_BOOLEAN).','. $this->db_add_param($this->lehrauftrag, FHC_BOOLEAN) .');'; } else { //bestehenden Datensatz akualisieren //Pruefen ob lehrveranstaltung_id eine gueltige Zahl ist if (!is_numeric($this->lehrveranstaltung_id) || $this->lehrveranstaltung_id == '') { $this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein'; return false; } $qry = 'UPDATE lehre.tbl_lehrveranstaltung SET ' . 'studiengang_kz=' . $this->db_add_param($this->studiengang_kz, FHC_INTEGER) . ', ' . 'bezeichnung=' . $this->db_add_param($this->bezeichnung) . ', ' . 'kurzbz=' . $this->db_add_param($this->kurzbz) . ', ' . 'lehrform_kurzbz=' . $this->db_add_param($this->lehrform_kurzbz) . ', ' . 'semester=' . $this->db_add_param($this->semester, FHC_INTEGER) . ', ' . 'ects=' . $this->db_add_param($this->ects) . ', ' . 'semesterstunden=' . $this->db_add_param($this->semesterstunden, FHC_INTEGER) . ', ' . 'anmerkung=' . $this->db_add_param($this->anmerkung) . ', ' . 'lehre=' . $this->db_add_param($this->lehre, FHC_BOOLEAN) . ', ' . 'lehreverzeichnis=' . $this->db_add_param($this->lehreverzeichnis) . ', ' . 'aktiv=' . $this->db_add_param($this->aktiv, FHC_BOOLEAN) . ', ' . 'planfaktor=' . $this->db_add_param($this->planfaktor) . ', ' . 'planlektoren=' . $this->db_add_param($this->planlektoren, FHC_INTEGER) . ', ' . 'planpersonalkosten=' . $this->db_add_param($this->planpersonalkosten) . ', ' . 'plankostenprolektor=' . $this->db_add_param($this->plankostenprolektor) . ', ' . 'updateamum=' . $this->db_add_param($this->updateamum) . ',' . 'updatevon=' . $this->db_add_param($this->updatevon) . ',' . 'sort=' . $this->db_add_param($this->sort) . ',' . 'incoming=' . $this->db_add_param($this->incoming, FHC_INTEGER) . ',' . 'zeugnis=' . $this->db_add_param($this->zeugnis, FHC_BOOLEAN) . ',' . 'projektarbeit=' . $this->db_add_param($this->projektarbeit, FHC_BOOLEAN) . ',' . 'koordinator=' . $this->db_add_param($this->koordinator) . ',' . 'sprache=' . $this->db_add_param($this->sprache) . ',' . 'bezeichnung_english=' . $this->db_add_param($this->bezeichnung_english) . ',' . 'orgform_kurzbz=' . $this->db_add_param($this->orgform_kurzbz) . ',' . 'lehrtyp_kurzbz=' . $this->db_add_param($this->lehrtyp_kurzbz) . ',' . 'oe_kurzbz=' . $this->db_add_param($this->oe_kurzbz) . ',' . 'raumtyp_kurzbz=' . $this->db_add_param($this->raumtyp_kurzbz) . ',' . 'anzahlsemester=' . $this->db_add_param($this->anzahlsemester, FHC_INTEGER) . ',' . 'semesterwochen=' . $this->db_add_param($this->semesterwochen, FHC_INTEGER) . ',' . 'lvnr = ' . $this->db_add_param($this->lvnr) . ', ' . 'semester_alternativ = '.$this->db_add_param($this->semester_alternativ).', '. 'farbe = '.$this->db_add_param($this->farbe).', '. 'sws = '.$this->db_add_param($this->sws).', '. 'lvs = '.$this->db_add_param($this->lvs).', '. 'alvs = '.$this->db_add_param($this->alvs).', '. 'lvps = '.$this->db_add_param($this->lvps).', '. 'las = '.$this->db_add_param($this->las).', '. 'benotung = '.$this->db_add_param($this->benotung, FHC_BOOLEAN).', '. 'lvinfo = '.$this->db_add_param($this->lvinfo, FHC_BOOLEAN).', '. 'lehrauftrag = '.$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN).' '. 'WHERE lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER, false) . ';'; } if ($this->db_query($qry)) { if ($new) { $qry = "SELECT currval('lehre.tbl_lehrveranstaltung_lehrveranstaltung_id_seq') as id"; if ($this->db_query($qry)) { if ($row = $this->db_fetch_object()) { $this->lehrveranstaltung_id = $row->id; $this->db_query('COMMIT;'); return true; } else { $this->errormsg = 'Fehler beim Auslesen der Sequence'; $this->db_query('ROLLBACK'); return false; } } else { $this->errormsg = 'Fehler beim Auslesen der Sequence'; $this->db_query('ROLLBACK'); return false; } } return true; } else { $this->db_query('ROLLBACK'); $this->errormsg = 'Fehler beim Speichern des Datensatzes'; return false; } } /** * Laedt die Lehrveranstaltung zu der ein Mitarbeiter * in einem Studiensemester zugeordnet ist * @param studiengang_kz, uid, studiensemester_kurzbz * @return true wenn ok, false wenn Fehler */ public function loadLVAfromMitarbeiter($studiengang_kz, $uid, $studiensemester_kurzbz) { if (!is_numeric($studiengang_kz)) { $this->errormsg = 'Studiengang_kz ist ungueltig'; return false; } $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter WHERE "; if ($studiengang_kz != 0) $qry.="tbl_lehrveranstaltung.studiengang_kz=" . $this->db_add_param($studiengang_kz) . " AND "; $qry.= "tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id AND tbl_lehreinheitmitarbeiter.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.studiensemester_kurzbz = " . $this->db_add_param($studiensemester_kurzbz) . " AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=" . $this->db_add_param($uid) . ";"; if ($this->db_query($qry)) { while ($row = $this->db_fetch_object()) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $lv_obj->anzahlsemester = $row->anzahlsemester; $lv_obj->semesterwochen = $row->semesterwochen; $lv_obj->lvnr = $row->lvnr; $lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $lv_obj; } return true; } else { $this->errormsg = 'Fehler beim Lesen aus der Datenbank'; return false; } } /** * Liefert die Tabellenelemente die den Kriterien der Parameter entsprechen * @param $stg Studiengangs_kz * $sem Semester * $order Sortierkriterium * @return array mit Lehrferanstaltungen oder false=fehler */ public function getTab($stg = null, $sem = null, $order = 'lehrveranstaltung_id') { if ($stg != null && !is_numeric($stg)) { $this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein'; return false; } if ($sem != null && !is_numeric($sem)) { $this->errormsg = 'Semester muss eine gueltige Zahl sein'; return false; } $sql_query = "SELECT * FROM lehre.tbl_lehrveranstaltung"; if ($stg != null || $sem != null) $sql_query .= " WHERE true"; if ($stg != null) $sql_query .= " AND studiengang_kz=".$this->db_add_param($stg); if ($sem != null) $sql_query .= " AND semester=".$this->db_add_param($sem); $sql_query .= " ORDER BY $order"; if ($this->db_query($sql_query)) { while ($row = $this->db_fetch_object()) { $l = new lehrveranstaltung(); $l->lehrveranstaltung_id = $row->lehrveranstaltung_id; $l->kurzbz = $row->kurzbz; $l->bezeichnung = $row->bezeichnung; $l->lehrform_kurzbz = $row->lehrform_kurzbz; $l->studiengang_kz = $row->studiengang_kz; $l->sprache = $row->sprache; $l->ects = $row->ects; $l->semesterstunden = $row->semesterstunden; $l->anmerkung = $row->anmerkung; $l->lehre = $row->lehre; $l->lehreverzeichnis = $row->lehreverzeichnis; $l->aktiv = $row->aktiv; $l->planfaktor = $row->planfaktor; $l->planlektoren = $row->planlektoren; $l->planpersonalkosten = $row->planpersonalkosten; $l->plankostenprolektor = $row->plankostenprolektor; $l->updateamum = $row->updateamum; $l->updatevon = $row->updatevon; $l->insertamum = $row->insertamum; $l->insertvon = $row->insertvon; $l->sort = $row->sort; $l->incoming = $row->incoming; $l->zeugnis = $this->db_parse_bool($row->zeugnis); $l->projektarbeit = $this->db_parse_bool($row->projektarbeit); $l->koordinator = $row->koordinator; $l->bezeichnung_english = $row->bezeichnung_english; $l->orgform_kurzbz = $row->orgform_kurzbz; $l->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $l->oe_kurzbz = $row->oe_kurzbz; $l->raumtyp_kurzbz = $row->raumtyp_kurzbz; $l->anzahlsemester = $row->anzahlsemester; $l->semesterwochen = $row->semesterwochen; $l->lvnr = $row->lvnr; $l->semester_alternativ = $row->semester_alternativ; $l->farbe = $row->farbe; $l->benotung = $this->db_parse_bool($row->benotung); $l->lvinfo = $this->db_parse_bool($row->lvinfo); $l->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $l->bezeichnung_arr['German'] = $row->bezeichnung; $l->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($l->bezeichnung_arr['English'] == '') $l->bezeichnung_arr['English'] = $l->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $l; } } else { $this->errormsg = $this->db_last_error(); return false; } return true; } /** * Laedt die LVs die als Array uebergeben werden * @param $ids Array mit den LV ids * @return true wenn ok, false im Fehlerfall */ public function loadArray($ids) { if (count($ids) == 0) return true; $ids = $this->db_implode4SQL($ids); $qry = 'SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id in(' . $ids . ')'; $qry .=" ORDER BY bezeichnung"; if (!$result = $this->db_query($qry)) { $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } while ($row = $this->db_fetch_object($result)) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $lv_obj->anzahlsemester = $row->anzahlsemester; $lv_obj->semesterwochen = $row->semesterwochen; $lv_obj->lvnr = $row->lvnr; $lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $lv_obj; } return true; } /** * Laedt alle Lehrveranstaltungen eines Studienplans * * @param $studienplan_id ID des Studienplans * @param $semeser Semester optional * @return boolean true wenn ok, false im Fehlerfall */ public function loadLehrveranstaltungStudienplan($studienplan_id, $semester = null, $order=null) { if (!is_numeric($studienplan_id) || $studienplan_id === '') { $this->errormsg = 'StudienplanID ist ungueltig'; return false; } $qry = "SELECT tbl_lehrveranstaltung.*, tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id, tbl_studienplan_lehrveranstaltung.semester as stpllv_semester, tbl_studienplan_lehrveranstaltung.pflicht as stpllv_pflicht, tbl_studienplan_lehrveranstaltung.koordinator as stpllv_koordinator, tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent, tbl_studienplan_lehrveranstaltung.sort stpllv_sort, tbl_studienplan_lehrveranstaltung.curriculum, tbl_studienplan_lehrveranstaltung.export, tbl_studienplan_lehrveranstaltung.genehmigung FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id) WHERE tbl_studienplan_lehrveranstaltung.studienplan_id=" . $this->db_add_param($studienplan_id, FHC_INTEGER); if (defined("CIS_PROFIL_STUDIENPLAN_MODULE_AUSBLENDEN") && CIS_PROFIL_STUDIENPLAN_MODULE_AUSBLENDEN) $qry .= " AND tbl_lehrveranstaltung.lehrtyp_kurzbz != 'modul'"; if (!is_null($semester)) { $qry.=" AND tbl_studienplan_lehrveranstaltung.semester=" . $this->db_add_param($semester, FHC_INTEGER); } if(is_null($order)) $qry.=" ORDER BY stpllv_sort, semester, sort"; else $qry.=' ORDER BY '.$order; $this->lehrveranstaltungen = array(); if ($result = $this->db_query($qry)) { while ($row = $this->db_fetch_object($result)) { $obj = new lehrveranstaltung(); $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $obj->studiengang_kz = $row->studiengang_kz; $obj->bezeichnung = $row->bezeichnung; $obj->kurzbz = $row->kurzbz; $obj->lehrform_kurzbz = $row->lehrform_kurzbz; $obj->semester = $row->semester; $obj->ects = $row->ects; $obj->semesterstunden = $row->semesterstunden; $obj->anmerkung = $row->anmerkung; $obj->lehre = $this->db_parse_bool($row->lehre); $obj->lehreverzeichnis = $row->lehreverzeichnis; $obj->aktiv = $this->db_parse_bool($row->aktiv); $obj->ext_id = $row->ext_id; $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->planfaktor = $row->planfaktor; $obj->planlektoren = $row->planlektoren; $obj->planpersonalkosten = $row->planpersonalkosten; $obj->plankostenprolektor = $row->plankostenprolektor; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; $obj->sprache = $row->sprache; $obj->sort = $row->sort; $obj->incoming = $row->incoming; $obj->zeugnis = $this->db_parse_bool($row->zeugnis); $obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); $obj->koordinator = $row->koordinator; $obj->bezeichnung_english = $row->bezeichnung_english; $obj->orgform_kurzbz = $row->orgform_kurzbz; $obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $obj->oe_kurzbz = $row->oe_kurzbz; $obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $obj->anzahlsemester = $row->anzahlsemester; $obj->semesterwochen = $row->semesterwochen; $obj->lvnr = $row->lvnr; $obj->semester_alternativ = $row->semester_alternativ; $obj->farbe = $row->farbe; $obj->stpllv_sort = $row->stpllv_sort; $obj->benotung = $this->db_parse_bool($row->benotung); $obj->lvinfo = $this->db_parse_bool($row->lvinfo); $obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $obj->bezeichnung_arr['German'] = $row->bezeichnung; $obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($obj->bezeichnung_arr['English'] == '') $obj->bezeichnung_arr['English'] = $obj->bezeichnung_arr['German']; $obj->sws = $row->sws; $obj->lvs = $row->lvs; $obj->alvs = $row->alvs; $obj->lvps = $row->lvps; $obj->las = $row->las; $obj->stpllv_semester = $row->stpllv_semester; $obj->stpllv_pflicht = $this->db_parse_bool($row->stpllv_pflicht); $obj->stpllv_koordinator = $row->stpllv_koordinator; $obj->studienplan_lehrveranstaltung_id = $row->studienplan_lehrveranstaltung_id; $obj->studienplan_lehrveranstaltung_id_parent = $row->studienplan_lehrveranstaltung_id_parent; $obj->curriculum = $this->db_parse_bool($row->curriculum); $obj->export = $this->db_parse_bool($row->export); $obj->genehmigung = $this->db_parse_bool($row->genehmigung); $obj->new = false; $this->lehrveranstaltungen[] = $obj; } return true; } else { $this->errormsg = 'Fehler beim Laden der Daten'; return false; } } /** * Liefert die Lehrveranstaltungen als verschachtelten Tree */ public function getLehrveranstaltungTree() { $tree = array(); foreach ($this->lehrveranstaltungen as $row) { if ($row->studienplan_lehrveranstaltung_id_parent == '' || (defined("CIS_PROFIL_STUDIENPLAN_MODULE_AUSBLENDEN") && CIS_PROFIL_STUDIENPLAN_MODULE_AUSBLENDEN)) { $tree[$row->studienplan_lehrveranstaltung_id] = $row; $tree[$row->studienplan_lehrveranstaltung_id]->childs = $this->getLehrveranstaltungTreeChilds($row->studienplan_lehrveranstaltung_id); } } return $tree; } /** * Generiert die Subtrees des Lehrveranstaltungstrees */ public function getLehrveranstaltungTreeChilds($studienplan_lehrveranstaltung_id) { $childs = array(); foreach ($this->lehrveranstaltungen as $row) { if ($row->studienplan_lehrveranstaltung_id_parent === $studienplan_lehrveranstaltung_id) { $childs[$row->studienplan_lehrveranstaltung_id] = $row; $childs[$row->studienplan_lehrveranstaltung_id]->childs = $this->getLehrveranstaltungTreeChilds($row->studienplan_lehrveranstaltung_id); } } return $childs; } /** * Generiert die Subtrees des Lehrveranstaltungstrees */ public function hasChildren($studienplan_lehrveranstaltung_id) { $childs = array(); foreach ($this->lehrveranstaltungen as $row) { if ($row->studienplan_lehrveranstaltung_id_parent === $studienplan_lehrveranstaltung_id) { $childs[$row->studienplan_lehrveranstaltung_id] = $row; $childs[$row->studienplan_lehrveranstaltung_id]->childs = $this->getLehrveranstaltungTreeChilds($row->studienplan_lehrveranstaltung_id); } } if(count($childs) > 0) { return true; } else { return false; } } /** * Baut die Datenstruktur für senden als JSON Objekt auf */ public function cleanResult() { $values = array(); if (count($this->lehrveranstaltungen) > 0) { foreach ($this->lehrveranstaltungen as $lv) { $obj = new stdClass(); $obj->lehrveranstaltung_id = $lv->lehrveranstaltung_id; $obj->studiengang_kz = $lv->studiengang_kz; $obj->bezeichnung = $lv->bezeichnung; $obj->kurzbz = $lv->kurzbz; $obj->lehrform_kurzbz = $lv->lehrform_kurzbz; $obj->semester = $lv->semester; $obj->ects = $lv->ects; $obj->semesterstunden = $lv->semesterstunden; $obj->lehrtyp_kurzbz = $lv->lehrtyp_kurzbz; $obj->studienplan_lehrveranstaltung_id = $lv->studienplan_lehrveranstaltung_id; $obj->stpllv_semester = $lv->stpllv_semester; $obj->stpllv_pflicht = $lv->stpllv_pflicht; $obj->stpllv_koordinator = $lv->stpllv_koordinator; $obj->oe_kurzbz = $lv->oe_kurzbz; $obj->lvnr = $lv->lvnr; $obj->benotung = $this->db_parse_bool($lv->benotung); $obj->lvinfo =$this->db_parse_bool( $lv->lvinfo); $obj->zeugnis = $this->db_parse_bool($lv->zeugnis); $obj->lehrauftrag = $this->db_parse_bool($lv->lehrauftrag); $values[] = $obj; } } else { $obj = new stdClass(); $obj->lehrveranstaltung_id = $this->lehrveranstaltung_id; $obj->studiengang_kz = $this->studiengang_kz; $obj->bezeichnung = $this->bezeichnung; $obj->kurzbz = $this->kurzbz; $obj->lehrform_kurzbz = $this->lehrform_kurzbz; $obj->semester = $this->semester; $obj->ects = $this->ects; $obj->semesterstunden = $this->semesterstunden; $obj->stpllv_semester = $this->stpllv_semester; $obj->stpllv_pflicht = $this->stpllv_pflicht; $obj->stpllv_koordinator = $this->stpllv_koordinator; $obj->oe_kurzbz = $this->oe_kurzbz; $obj->lvnr = $this->lvnr; $obj->benotung = $this->db_parse_bool($this->benotung); $obj->lvinfo =$this->db_parse_bool( $this->lvinfo); $obj->zeugnis = $this->db_parse_bool($this->zeugnis); $obj->lehrauftrag = $this->db_parse_bool($this->lehrauftrag); $values[] = $obj; } return $values; } /** * Baut die Baumstruktur für jsTree in Studienordnung auf * @param $tree Array von Lehrveranstaltungen * @return Array mit der Baumstruktur */ protected function cleanTreeResult($tree) { $values = array(); if (count($tree) > 0) { foreach ($tree as $lv) { $obj = new stdClass(); $obj->lehrveranstaltung_id = $lv->lehrveranstaltung_id; $obj->studiengang_kz = $lv->studiengang_kz; $obj->bezeichnung = $lv->bezeichnung; $obj->bezeichnung_english = $lv->bezeichnung_english; $obj->kurzbz = $lv->kurzbz; $obj->lehrform_kurzbz = $lv->lehrform_kurzbz; $obj->semester = $lv->semester; $obj->ects = $lv->ects; $obj->semesterstunden = $lv->semesterstunden; $obj->studienplan_lehrveranstaltung_id = $lv->studienplan_lehrveranstaltung_id; $obj->lehrtyp_kurzbz = $lv->lehrtyp_kurzbz; $obj->stpllv_semester = $lv->stpllv_semester; $obj->stpllv_pflicht = $lv->stpllv_pflicht; $obj->stpllv_koordinator = $lv->stpllv_koordinator; $obj->lvnr = $lv->lvnr; $obj->stpllv_sort = $lv->stpllv_sort; $obj->oe_kurzbz = $lv->oe_kurzbz; $obj->sws = $lv->sws; $obj->alvs = $lv->alvs; $obj->lvs = $lv->lvs; $obj->lvps = $lv->lvps; $obj->las = $lv->las; $obj->semesterwochen = $lv->semesterwochen; $obj->orgform_kurzbz = $lv->orgform_kurzbz; $obj->incoming = $lv->incoming; $obj->sprache = $lv->sprache; $obj->benotung = $lv->benotung; $obj->lvinfo = $lv->lvinfo; $obj->zeugnis = $lv->zeugnis; $obj->curriculum = $lv->curriculum; $obj->export = $lv->export; $obj->genehmigung = $lv->genehmigung; $obj->lehrauftrag = $lv->lehrauftrag; $obj->lehre = $lv->lehre; $obj->children = array(); if(count($lv->childs) > 0) { $obj->children = $this->cleanTreeResult($lv->childs); } $values[] = $obj; } } else { $obj = new stdClass(); $obj->lehrveranstaltung_id = $this->lehrveranstaltung_id; $obj->studiengang_kz = $this->studiengang_kz; $obj->bezeichnung = $this->bezeichnung; $obj->kurzbz = $this->kurzbz; $obj->lehrform_kurzbz = $this->lehrform_kurzbz; $obj->semester = $this->semester; $obj->ects = $this->ects; $obj->semesterstunden = $this->semesterstunden; $obj->stpllv_semester = $this->stpllv_semester; $obj->stpllv_pflicht = $this->stpllv_pflicht; $obj->stpllv_koordinator = $this->stpllv_koordinator; $obj->lvnr = $this->lvnr; $obj->benotung = $this->db_parse_bool($this->benotung); $obj->lvinfo =$this->db_parse_bool( $this->lvinfo); $obj->zeugnis = $this->db_parse_bool($this->zeugnis); $obj->curriculum = $this->db_parse_bool($this->curriculum); $obj->lehrauftrag = $this->lehrauftrag; $values[] = $obj; } return $values; } /** * Baut die Datenstruktur für jsTree in Studienordnung auf * @param $studienplan_id ID des Studienpland */ public function getLvTree($studienplan_id) { $values = array(); $this->loadLehrveranstaltungStudienplan($studienplan_id); $tree = $this->getLehrveranstaltungTree(); $values = $this->cleanTreeResult($tree); unset($this->lehrveranstaltungen); $this->lehrveranstaltungen=array(); return $values; } /** * Lädt alle kompatiblen LVs zu einer Lehrveranstaltung * @param $lehrveranstaltung_id ID der Lehrveranstaltung */ public function loadLVkompatibel($lehrveranstaltung_id) { if (!is_numeric($lehrveranstaltung_id)) { $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein'; return false; } $qry = "SELECT lehrveranstaltung_id_kompatibel FROM lehre.tbl_lehrveranstaltung_kompatibel WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).";"; if($this->db_query($qry)) { $data = array(); while($row = $this->db_fetch_object()) { $data[] = $row->lehrveranstaltung_id_kompatibel; } return $data; } } /** * Lädt alle kompatiblen LVs zu einer Lehrveranstaltung * @param $lehrveranstaltung_id ID der Lehrveranstaltung */ public function getLVkompatibel($lehrveranstaltung_id) { if (!is_numeric($lehrveranstaltung_id)) { $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein'; return false; } $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id IN ( SELECT lehrveranstaltung_id_kompatibel FROM lehre.tbl_lehrveranstaltung_kompatibel WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).");"; if($this->db_query($qry)) { while($row = $this->db_fetch_object()) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $lv_obj; } return true; } } /** * Lädt alle Lehrveranstaltungen zu denen die übergebene LV ID kompatibel ist * @param $lehrveranstaltung_id ID der Lehrveranstaltung */ public function getLVkompatibelTo($lehrveranstaltung_id, $studienplan_ids=array()) { if (!is_numeric($lehrveranstaltung_id)) { $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein'; return false; } if((!is_array($studienplan_ids)) && (count($studienplan_ids) < 1)) { $this->errormsg = 'Es muss ein Array von Studienplan_IDs mit mindestens einem Element übergeben werden.'; return false; } $studienplaene = ""; foreach($studienplan_ids as $stplId) { $studienplaene .= $stplId.","; } $studienplaene = rtrim($studienplaene, ","); $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_studienplan_lehrveranstaltung USING (lehrveranstaltung_id) WHERE lehrveranstaltung_id IN ( SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung_kompatibel WHERE lehrveranstaltung_id_kompatibel=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).") AND studienplan_id IN(".$studienplaene.");"; if($this->db_query($qry)) { while($row = $this->db_fetch_object()) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $lv_obj; } return true; } } /** * Speichert eine Kombination aus LV und ihrer kompatiblen Lehrveranstaltung * @param $lehrveranstaltung_id ID der Lehrveranstaltung * @param $lehrveranstaltung_id ID der kompatiblen Lehrveranstaltung */ public function saveKompatibleLehrveranstaltung($lehrveranstaltung_id, $lehrveranstaltung_id_kompatibel) { $qry = 'SELECT * FROM lehre.tbl_lehrveranstaltung_kompatibel WHERE lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).' AND lehrveranstaltung_id_kompatibel='.$this->db_add_param($lehrveranstaltung_id_kompatibel, FHC_INTEGER).';'; if($this->db_query($qry)) { if(!$this->db_fetch_object()) { $qry = 'INSERT INTO lehre.tbl_lehrveranstaltung_kompatibel (lehrveranstaltung_id, lehrveranstaltung_id_kompatibel) VALUES ('.$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).', '. $this->db_add_param($lehrveranstaltung_id_kompatibel, FHC_INTEGER).');'; if($this->db_query($qry)) { return true; } else { $this->errormsg = 'Fehler beim Speichern des Datensatzes'; return false; } } else { $this->errormsg = 'Lehrveranstaltung bereits vorhanden'; return false; } } else { $this->errormsg = 'Fehler beim Laden des Datensatzes'; return false; } } /** * Löscht eine kompatible Lehrveranstaltung * @param $lehrveranstaltung_id ID der Lehrveranstaltung * @param $lehrveranstaltung_id ID der kompatiblen Lehrveranstaltung */ public function deleteKompatibleLehrveranstaltung($lehrveranstaltung_id, $lehrveranstaltung_id_kompatibel) { $qry = 'DELETE FROM lehre.tbl_lehrveranstaltung_kompatibel WHERE lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).' AND lehrveranstaltung_id_kompatibel='.$this->db_add_param($lehrveranstaltung_id_kompatibel, FHC_INTEGER).';'; if($this->db_query($qry)) { return true; } else { $this->errormsg = 'Fehler beim Laden des Datensatzes'; return false; } } /** * Lädt Lehrveranstaltungen nach ihrer Organisationseinheit * @param $oe_kurzbz Kurzbezeichnung der Organisationseinheit * @param $aktiv optional, true wenn nur aktive LVs * @param $lehrtyp optional, gewünschter Lehrtyp */ public function load_lva_oe($oe_kurzbz, $aktiv=null, $lehrtyp=null, $sort=null, $semester=null) { if (is_null($oe_kurzbz)) { $this->errormsg = 'OE KurzBz darf nicht null sein'; return false; } if (!is_null($aktiv) && !is_bool($aktiv)) { $this->errormsg = 'Aktivkz muss ein boolscher Wert sein'; return false; } $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE oe_kurzbz=" . $this->db_add_param($oe_kurzbz, FHC_STRING); //Select Befehl zusammenbauen if (!is_null($aktiv) && $aktiv) $qry .= " AND aktiv "; if(!is_null($lehrtyp)) $qry .= " AND lehrtyp_kurzbz=".$this->db_add_param($lehrtyp); if(!is_null($semester)) $qry .= " AND semester=".$this->db_add_param ($semester); if (is_null($sort) || empty($sort)) $qry .= " ORDER BY semester, bezeichnung"; else $qry .= " ORDER BY $sort "; $qry .= ";"; //Datensaetze laden if (!$this->db_query($qry)) { $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } while ($row = $this->db_fetch_object()) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->lvnr = $row->lvnr; $lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->farbe = $row->farbe; $lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $lv_obj; } return true; } /** * Loescht den Datenensatz mit der ID die uebergeben wird * @param $lvid ID die geloescht werden soll * @return true wenn ok, false im Fehlerfall */ public function delete($lvid) { //Pruefen ob adresse_id eine gueltige Zahl ist if(!is_numeric($lvid) || $lvid == '') { $this->errormsg = 'lvid muss eine gültige Zahl sein'."\n"; return false; } $qry = "SELECT count(*) as anzahl FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id=".$this->db_add_param($lvid, FHC_INTEGER)." OR lehrfach_id=".$this->db_add_param($lvid, FHC_INTEGER); if($this->db_query($qry)) { if($row = $this->db_fetch_object()) { if($row->anzahl>0) { $this->errormsg = 'Zu dieser Lehrveranstaltung existieren Lehreinheiten oder Lehrfächer in der Datenbank. Sie kann daher nicht gelöscht werden.'; return false; } else { //loeschen des Datensatzes $qry="DELETE FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$this->db_add_param($lvid, FHC_INTEGER, false); if($this->db_query($qry)) { return true; } else { $this->errormsg = 'Fehler beim Löschen der Daten'."\n"; return false; } } } else { $this->errormsg = 'Fehler beim Abfragen zugewiesener Lehreinheiten'."\n"; return false; } } else { $this->errormsg = 'Fehler beim Abfragen zugewiesener Lehreinheiten'."\n"; return false; } } /** * Sucht nach Lehrveranstaltungen * @param $filter Suchfilter */ public function search($filter) { $qry = "SELECT tbl_lehrveranstaltung.*, tbl_studiengang.kurzbzlang as studiengang_kurzbzlang FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz) WHERE lower(tbl_lehrveranstaltung.bezeichnung || ' ' || tbl_studiengang.kurzbzlang || ' ' || tbl_lehrveranstaltung.semester) like lower('%".$this->db_escape($filter)."%') OR lower(tbl_studiengang.kurzbzlang || ' ' || tbl_lehrveranstaltung.semester || ' ' || tbl_lehrveranstaltung.bezeichnung) like lower('%".$this->db_escape($filter)."%') "; if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result)) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $lv_obj->anzahlsemester = $row->anzahlsemester; $lv_obj->semesterwochen = $row->semesterwochen; $lv_obj->lvnr = $row->lvnr; $lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->studiengang_kurzbzlang = $row->studiengang_kurzbzlang; $this->lehrveranstaltungen[] = $lv_obj; } return true; } else { $this->errormsg='Fehler bei Datenbankabfrage'; return false; } } /** * Liefert die Anzahl der ECTS Punkte die ein Student in einem Studiensemester * bereits verbraucht hat (fuer reduzierte Studiengebuehr) * @param $uid UID * @param $studiensemester_kurzbz * @return numeric - Anzahl der ECTS Punkte */ public function getUsedECTS($uid, $studiensemester_kurzbz) { $qry = " SELECT sum(ects) as ectssumme FROM ( SELECT lehrveranstaltung_id, ects FROM campus.vw_student_lehrveranstaltung WHERE uid=".$this->db_add_param($uid)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." UNION SELECT lehrveranstaltung_id, ects FROM lehre.tbl_zeugnisnote JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) WHERE student_uid=".$this->db_add_param($uid)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." ) a"; if($result = $this->db_query($qry)) { if($row = $this->db_fetch_object($result)) { return $row->ectssumme; } else { $this->errormsg = 'Fehler beim Ermitteln der ECTS Punkte'; return false; } } else { $this->errormsg = 'Fehler beim Ermitteln der ECTS Punkte'; return false; } } /** * lädt die Lehrveranstaltungen zum zugehörigen Mitarbeiter * @param String $uid User ID des Mitarbeiters * @param String $studiensemster_kurzbz Kurzbezeichnung des Studiensemesters */ public function getLVByMitarbeiter($uid, $studiensemester_kurzbz = null) { $qry = 'SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE mitarbeiter_uid='.$this->db_add_param($uid); if($studiensemester_kurzbz != null) { $qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).';'; } if($this->db_query($qry)) { while($row = $this->db_fetch_object()) { $lv_obj = new lehrveranstaltung(); $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $lv_obj->studiengang_kz = $row->studiengang_kz; $lv_obj->bezeichnung = $row->bezeichnung; $lv_obj->kurzbz = $row->kurzbz; $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; $lv_obj->semester = $row->semester; $lv_obj->ects = $row->ects; $lv_obj->semesterstunden = $row->semesterstunden; $lv_obj->anmerkung = $row->anmerkung; $lv_obj->lehre = $this->db_parse_bool($row->lehre); $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); $lv_obj->ext_id = $row->ext_id; $lv_obj->insertamum = $row->insertamum; $lv_obj->insertvon = $row->insertvon; $lv_obj->planfaktor = $row->planfaktor; $lv_obj->planlektoren = $row->planlektoren; $lv_obj->planpersonalkosten = $row->planpersonalkosten; $lv_obj->plankostenprolektor = $row->plankostenprolektor; $lv_obj->updateamum = $row->updateamum; $lv_obj->updatevon = $row->updatevon; $lv_obj->sprache = $row->sprache; $lv_obj->sort = $row->sort; $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->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $lv_obj->anzahlsemester = $row->anzahlsemester; $lv_obj->semesterwochen = $row->semesterwochen; $lv_obj->lvnr = $row->lvnr; $lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->farbe = $row->farbe; $lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($lv_obj->bezeichnung_arr['English'] == '') $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; $this->lehrveranstaltungen[] = $lv_obj; } return true; } else { $this->errormsg = "Lehrveranstaltungen konnten nicht geladen werden."; } } /** * Lädt alle Studenten UIDs die die angegebenen LV besuchen (optional mit Studiensemester) * @param integer $lehrveranstaltung_id ID der Lehrveranstaltung * @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters * @return boolean|array false, wenn eine Fehler auftritt; Array mit UIDs wenn erfolgreich */ public function getStudentsOfLv($lehrveranstaltung_id, $studiensemester_kurzbz=null, $lehreinheit_id=null) { if(!is_numeric($lehrveranstaltung_id)) { $this->errormsg = "Lehrveranstaltung ID muss eine gültige Zahl sein."; return false; } $qry = 'SELECT distinct uid FROM campus.vw_student_lehrveranstaltung WHERE ' . 'lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id); if(!is_null($studiensemester_kurzbz)) { $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz); } if(!is_null($lehreinheit_id)) { $qry .= ' AND lehreinheit_id='.$this->db_add_param($lehreinheit_id); } $qry .= ';'; if($this->db_query($qry)) { $result = array(); while($row = $this->db_fetch_object()) { array_push($result, $row->uid); } return $result; } return false; } /** * * @param type $lv_id * @param type $semester -> Ausbildungssemester * @return boolean */ public function getALVS($lv_id, $semester) { if($semester=='') { $this->errormsg = "Kein Semester übergeben"; return false; } $ss = ($semester%2==0)?'SS':'WS'; $qry_ss = "SELECT studiensemester_kurzbz, start, ende FROM public.tbl_studiensemester WHERE substring(studiensemester_kurzbz from 1 for 2)='$ss' AND start < now() ORDER BY start DESC LIMIT 1"; if(!$result = $this->db_query($qry_ss)) { $this->errormsg = "Fehler bei der Abfrage aufgetreten"; return false; } if(!$row= $this->db_fetch_object($result)) { $this->errormsg = "Kein Semester gefunden"; return false; } $qry_alvs = "SELECT sum(lm.semesterstunden) as alvs FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter lm USING (lehreinheit_id) WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_STRING)." AND studiensemester_kurzbz = ".$this->db_add_param($row->studiensemester_kurzbz).";"; if(!$result_alvs=$this->db_query($qry_alvs)) { $this->errormsg = "Fehler bei der Abfrage aufgetreten"; return false; } if($row_alvs = $this->db_fetch_object($result_alvs)) { return $row_alvs->alvs; } else { $this->errormsg = $qry_alvs; return false; } } /** * Lädt alle Lehreinheit_IDs eine Lehrveranstaltung (optional mit Studiensemester) * @param integer $lehrveranstaltung_id ID der Lehrveranstaltung * @param string $uid UID eines Studenten * @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters * @return boolean|array false, wenn eine Fehler auftritt; Array mit UIDs wenn erfolgreich */ public function getLehreinheitenOfLv($lehrveranstaltung_id, $uid, $studiensemester_kurzbz=null) { if(!is_numeric($lehrveranstaltung_id)) { $this->errormsg = "Lehrveranstaltung ID muss eine gültige Zahl sein."; return false; } $qry = 'SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung WHERE ' . 'lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id) . ' AND uid='.$this->db_add_param($uid); if(!is_null($studiensemester_kurzbz)) { $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz); } $qry .= ' ORDER BY lehreinheit_id;'; if($this->db_query($qry)) { $result = array(); while($row = $this->db_fetch_object()) { array_push($result, $row->lehreinheit_id); } return $result; } return false; } /** * Prueft ob das Lehrverzeichnis bereits anderwertig verwendet wird * @param $lehreverzeichnis * @param $studiengang_kz * @param $semester */ public function lehreverzeichnisExists($lehreverzeichnis, $studiengang_kz, $semester) { $qry = 'SELECT 1 FROM lehre.tbl_lehrveranstaltung WHERE lehreverzeichnis='.$this->db_add_param($lehreverzeichnis).' AND studiengang_kz='.$this->db_add_param($studiengang_kz).' AND semester='.$this->db_add_param($semester).';'; if($this->db_query($qry)) { if($this->db_num_rows() > 0) { return true; } return false; } else { $this->errormsg = "Fehler beim Laden der Daten"; return false; } } /** * Lädt alle Lehrveranstaltungen eine Studienplans * Optionale Filterung nach Lehrtyp und Semester * @param type $studienplan_id * @param type $lehrtyp_kurzbz * @param type $semester * @return boolean */ public function getLVFromStudienplanByLehrtyp($studienplan_id, $lehrtyp_kurzbz=NULL, $semester=NULL) { if (!is_numeric($studienplan_id) || $studienplan_id === '') { $this->errormsg = 'StudienplanID ist ungueltig'; return false; } $qry = "SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id) WHERE tbl_studienplan_lehrveranstaltung.studienplan_id=" . $this->db_add_param($studienplan_id, FHC_INTEGER); if (!is_null($lehrtyp_kurzbz)) { $qry.=" AND tbl_lehrveranstaltung.lehrtyp_kurzbz=" . $this->db_add_param($lehrtyp_kurzbz, FHC_STRING); } if (!is_null($semester)) { $qry.=" AND tbl_studienplan_lehrveranstaltung.semester=" . $this->db_add_param($semester, FHC_INTEGER); } $qry.=" ORDER BY bezeichnung;"; $this->lehrveranstaltungen = array(); if ($result = $this->db_query($qry)) { while ($row = $this->db_fetch_object($result)) { $obj = new lehrveranstaltung(); $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $obj->studiengang_kz = $row->studiengang_kz; $obj->bezeichnung = $row->bezeichnung; $obj->kurzbz = $row->kurzbz; $obj->lehrform_kurzbz = $row->lehrform_kurzbz; $obj->semester = $row->semester; $obj->ects = $row->ects; $obj->semesterstunden = $row->semesterstunden; $obj->anmerkung = $row->anmerkung; $obj->lehre = $this->db_parse_bool($row->lehre); $obj->lehreverzeichnis = $row->lehreverzeichnis; $obj->aktiv = $this->db_parse_bool($row->aktiv); $obj->ext_id = $row->ext_id; $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->planfaktor = $row->planfaktor; $obj->planlektoren = $row->planlektoren; $obj->planpersonalkosten = $row->planpersonalkosten; $obj->plankostenprolektor = $row->plankostenprolektor; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; $obj->sprache = $row->sprache; $obj->sort = $row->sort; $obj->incoming = $row->incoming; $obj->zeugnis = $this->db_parse_bool($row->zeugnis); $obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); $obj->koordinator = $row->koordinator; $obj->bezeichnung_english = $row->bezeichnung_english; $obj->orgform_kurzbz = $row->orgform_kurzbz; $obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $obj->oe_kurzbz = $row->oe_kurzbz; $obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; $obj->anzahlsemester = $row->anzahlsemester; $obj->semesterwochen = $row->semesterwochen; $obj->lvnr = $row->lvnr; $obj->semester_alternativ = $row->semester_alternativ; $obj->farbe = $row->farbe; $obj->benotung = $this->db_parse_bool($row->benotung); $obj->lvinfo = $this->db_parse_bool($row->lvinfo); $obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $obj->bezeichnung_arr['German'] = $row->bezeichnung; $obj->bezeichnung_arr['English'] = $row->bezeichnung_english; if ($obj->bezeichnung_arr['English'] == '') $obj->bezeichnung_arr['English'] = $obj->bezeichnung_arr['German']; $obj->new = false; $this->lehrveranstaltungen[] = $obj; } return true; } else { $this->errormsg = 'Fehler beim Laden der Daten'; return false; } } /** * Gibt alle Organisationseinheiten der Studiengänge zurück, mit denen * die Lehrveranstaltung über Studienpläne verknüpft ist * @return boolean|array false im Fehlerfall, sonst ein Array */ public function getAllOe() { $oe = array(); $qry = 'SELECT DISTINCT oe_kurzbz FROM lehre.tbl_studienplan_lehrveranstaltung JOIN lehre.tbl_studienplan USING(studienplan_id) JOIN lehre.tbl_studienordnung USING(studienordnung_id) JOIN public.tbl_studiengang USING(studiengang_kz) WHERE lehrveranstaltung_id = '.$this->db_add_param($this->lehrveranstaltung_id); if($result = $this->db_query($qry)) { while ($row = $this->db_fetch_object($result)) { $oe[] = $row->oe_kurzbz; } } else { $this->errormsg = "Fehler beim Laden der Daten"; return false; } // oe_kurzbz des Studiengangs der LVA hinzufügen $stg = new studiengang($this->studiengang_kz); if(!in_array($stg->oe_kurzbz, $oe)) { $oe[] = $stg->oe_kurzbz; } return $oe; } /** * 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 * @return UID des Mitarbeiters */ public function getLVLeitung($lehrveranstaltung_id, $studiensemester_kurzbz) { $qry = "SELECT mitarbeiter_uid, CASE WHEN lehrfunktion_kurzbz='LV-Leitung' THEN 1 ELSE 2 END as sort FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)." AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." ORDER BY sort LIMIT 1"; if($result = $this->db_query($qry)) { if($row = $this->db_fetch_object($result)) { return $row->mitarbeiter_uid; } else { $this->errormsg = 'Keine Eintrag gefunden'; return false; } } else { $this->errormsg = 'Fehler beim Laden der Daten'; 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; } } /** * Prüft ob eine Lehrvernstaltung in Studienplordnungen verwendet wird die * nicht mehr in bearbeitung sind. Diese sind fuer die bearbeitung gesperrt * @param integer $lehrveranstaltung_id * @return boolean true wenn gesperrt * @return boolean false wenn nicht gesperrt * @return boolean false und errormsg im Fehlerfall */ public function isGesperrt($lehrveranstaltung_id) { $qry = "SELECT count(*) as anzahl FROM lehre.tbl_studienplan JOIN lehre.tbl_studienplan_lehrveranstaltung USING(studienplan_id) JOIN lehre.tbl_studienordnung USING(studienordnung_id) WHERE tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND tbl_studienordnung.status_kurzbz<>'development'"; if($result = $this->db_query($qry)) { if($row = $this->db_fetch_object($result)) { if($row->anzahl>0) { return true; } else { return false; } } else { $this->errormsg='Fehler beim Laden der Daten'; return false; } } else { $this->errormsg = 'Fehler beim Laden der Daten'; return false; } } /** * Prueft ob eine Lehrveranstaltung im gewaehlten Studiensemester angeboten wird. * Dazu wird geprueft ob die LV einem aktuellen Studienplan zugeordnet ist, und ob ein Lehrauftrag vorhanden ist. * * @param $lehrveranstaltung_id ID der Lehrveranstaltung. * @param $studiensemester_kurzbz Kurzbz des Studiensemesters. * @return boolean true wenn angeboten, false wenn nicht angeboten */ public function isOffered($lehrveranstaltung_id, $studiensemester_kurzbz) { $qry = "SELECT * FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = ".$this->db_add_param($lehrveranstaltung_id)." AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)." AND EXISTS ( SELECT * FROM lehre.tbl_studienplan_lehrveranstaltung JOIN lehre.tbl_studienplan_semester USING(studienplan_id) WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." )"; if($result = $this->db_query($qry)) { if($row = $this->db_num_rows($result)>0) { return true; } else { return false; } } else { $this->errormsg = 'Fehler beim Laden der Daten'; return false; } } } ?>