, * Andreas Oesterreicher , * Rudolf Hangl and * Gerald Raab . */ require_once(dirname(__FILE__).'/basis_db.class.php'); class pruefung extends basis_db { public $new; // boolean public $result = array(); // pruefung Objekt public $pruefung_id; public $lehreinheit_id; // integer public $student_uid; // varchar(16) public $mitarbeiter_uid; // varchar(16) public $note; // smallint public $pruefungstyp_kurzbz; // varchar(16) public $datum; // Date public $anmerkung; // varchar(256) public $insertamum; // timestamp) public $insertvon; // varchar(16) public $updateamum; // timestamp public $updatevon; // varchar(16) public $ext_id; // bigint public $lehrveranstaltung_bezeichnung; public $lehrveranstaltung_id; public $note_bezeichnung; public $pruefungstyp_beschreibung; public $studiensemester_kurzbz; /** * Konstruktor * @param pruefung_id ID der zu ladenden Pruefung */ public function __construct($pruefung_id=null) { parent::__construct(); if($pruefung_id!=null) $this->load($pruefung_id); } /** * Laedt einen Prüfungsdatensatz * @param pruefung_id ID * @return true wenn ok, false im Fehlerfall */ public function load($pruefung_id) { if(!is_numeric($pruefung_id)) { $this->errormsg = 'pruefung_id muss eine gueltige Zahl sein'; return false; } $qry = "SELECT tbl_pruefung.*, tbl_lehreinheit.lehrveranstaltung_id, tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz FROM lehre.tbl_pruefung JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) WHERE pruefung_id=$pruefung_id"; if($this->db_query($qry)) { if($row = $this->db_fetch_object()) { $this->pruefung_id = $row->pruefung_id; $this->lehreinheit_id=$row->lehreinheit_id; $this->student_uid=$row->student_uid; $this->mitarbeiter_uid=$row->mitarbeiter_uid; $this->note=$row->note; $this->pruefungstyp_kurzbz=$row->pruefungstyp_kurzbz; $this->datum=$row->datum; $this->anmerkung=$row->anmerkung; $this->insertamum=$row->insertamum; $this->insertvon=$row->insertvon; $this->updateamum=$row->updateamum; $this->updatevon=$row->updatevon; $this->ext_id=$row->ext_id; $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; $this->studiensemester_kurzbz = $row->studiensemester_kurzbz; } } else { $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } return true; } /** * Liefert alle Pruefungen * @return true wenn ok, false im Fehlerfall */ public function getAll($order=null, $student=null) { $qry = 'SELECT * FROM lehre.tbl_pruefung'; if ($student) $qry.=' WHERE student ="'.addslashes($student).'"'; if($order!=null) $qry .=" ORDER BY $order"; if(!$this->db_query($qry)) { $this->errormsg = 'Datensatz konnte nicht geladen werden'; return false; } while($row = $this->db_fetch_object()) { $pruef_obj = new pruefung(); $pruef_obj->lehreinheit_id=$row->lehreinheit_id; $pruef_obj->student_uid=$row->student_uid; $pruef_obj->mitarbeiter_uid=$row->mitarbeiter_uid; $pruef_obj->note=$row->note; $pruef_obj->pruefungstyp_kurzbz=$row->pruefungstyp_kurzbz; $pruef_obj->datum=$row->datum; $pruef_obj->anmerkung=$row->anmerkung; $pruef_obj->insertamum=$row->insertamum; $pruef_obj->insertvon=$row->insertvon; $pruef_obj->updateamum=$row->updateamum; $pruef_obj->updatevon=$row->updatevon; $pruef_obj->ext_id=$row->ext_id; $this->result[] = $pruef_obj; } return true; } /** * Loescht eine Pruefung * @param $preufung_id ID der zu loeschenden Pruefung * @return true wenn ok, false im Fehlerfall */ public function delete($pruefung_id) { if(!is_numeric($pruefung_id)) { $this->errormsg = 'Pruefung_id ist ungueltig'; return false; } $qry = "DELETE FROM lehre.tbl_pruefung WHERE pruefung_id='$pruefung_id'"; if($this->db_query($qry)) { return true; } else { $this->errormsg = 'Fehler beim Loeschen der Pruefung'; return false; } } /** * Prueft die Gueltigkeit der Variablen * @return true wenn ok, false im Fehlerfall */ public function validate() { //Laenge Pruefen if(mb_strlen($this->anmerkung)>256) { $this->errormsg = 'Anmerkung darf nicht laenger als 256 Zeichen sein'; return false; } $this->errormsg = ''; return true; } /** * Speichert den aktuellen Datensatz * @return true wenn ok, false im Fehlerfall */ public function save() { //Gueltigkeit der Variablen pruefen if(!$this->validate()) { return false; } if($this->new) { //Neuen Datensatz anlegen $qry = 'BEGIN;INSERT INTO lehre.tbl_pruefung (lehreinheit_id, student_uid, mitarbeiter_uid, note, pruefungstyp_kurzbz, datum, anmerkung, insertamum, insertvon, updateamum, updatevon, ext_id) VALUES ('. $this->addslashes($this->lehreinheit_id).', '. $this->addslashes($this->student_uid).', '. $this->addslashes($this->mitarbeiter_uid).', '. $this->addslashes($this->note).', '. $this->addslashes($this->pruefungstyp_kurzbz).', '. $this->addslashes($this->datum).', '. $this->addslashes($this->anmerkung).', '. $this->addslashes($this->insertamum).', '. $this->addslashes($this->insertvon).', '. $this->addslashes($this->updateamum).', '. $this->addslashes($this->updatevon).', '. $this->addslashes($this->ext_id).');'; } else { //bestehenden Datensatz akualisieren //Pruefen ob pruefung_id gueltig ist if(!is_numeric($this->pruefung_id)) { $this->errormsg = 'pruefung_id ist ungueltig.'; return false; } $qry = 'UPDATE lehre.tbl_pruefung SET '. 'lehreinheit_id='.$this->addslashes($this->lehreinheit_id).', '. 'student_uid='.$this->addslashes($this->student_uid).', '. 'mitarbeiter_uid='.$this->addslashes($this->mitarbeiter_uid).', '. 'note='.$this->addslashes($this->note).', '. 'pruefungstyp_kurzbz='.$this->addslashes($this->pruefungstyp_kurzbz).', '. 'datum='.$this->addslashes($this->datum).', '. 'anmerkung='.$this->addslashes($this->anmerkung).', '. 'insertamum='.$this->addslashes($this->insertamum).', '. 'insertvon='.$this->addslashes($this->insertvon).', '. 'updateamum='.$this->addslashes($this->updateamum).', '. 'updatevon='.$this->addslashes($this->updatevon).', '. 'ext_id='.$this->addslashes($this->ext_id).' '. 'WHERE pruefung_id='.$this->addslashes($this->pruefung_id).';'; } if($this->db_query($qry)) { if($this->new) { //Sequence auslesen $qry = "SELECT currval('lehre.tbl_pruefung_pruefung_id_seq') as id"; if($this->db_query($qry)) { if($row = $this->db_fetch_object()) { $this->pruefung_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 der Pruefung:'.$this->db_last_error(); return false; } } /** * Liefert alle Pruefungen eines Studenten * @param student_uid * @return true wenn ok, false wenn Fehler */ public function getPruefungen($student_uid, $pruefungstyp=null,$lv_id=null,$stsem=null) { $qry = "SELECT tbl_pruefung.*, tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_note.bezeichnung as note_bezeichnung, tbl_pruefungstyp.beschreibung as typ_beschreibung, tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz FROM lehre.tbl_pruefung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_note, lehre.tbl_pruefungstyp WHERE student_uid='".addslashes($student_uid)."' AND tbl_pruefung.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_pruefung.note = tbl_note.note AND tbl_pruefung.pruefungstyp_kurzbz=tbl_pruefungstyp.pruefungstyp_kurzbz"; if ($pruefungstyp != null) $qry .= " AND tbl_pruefungstyp.pruefungstyp_kurzbz = '".addslashes($pruefungstyp)."'"; if ($lv_id != null) $qry .= " AND tbl_lehrveranstaltung.lehrveranstaltung_id = '".addslashes($lv_id)."'"; if ($stsem != null) $qry .= " AND tbl_lehreinheit.studiensemester_kurzbz = '".addslashes($stsem)."'"; $qry .= " ORDER BY datum DESC"; if($this->db_query($qry)) { while($row = $this->db_fetch_object()) { $obj = new pruefung(); $obj->pruefung_id = $row->pruefung_id; $obj->lehreinheit_id = $row->lehreinheit_id; $obj->student_uid = $row->student_uid; $obj->mitarbeiter_uid = $row->mitarbeiter_uid; $obj->note = $row->note; $obj->note_bezeichnung = $row->note_bezeichnung; $obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; $obj->pruefungstyp_beschreibung = $row->typ_beschreibung; $obj->datum = $row->datum; $obj->anmerkung = $row->anmerkung; $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; $obj->lehrveranstaltung_bezeichnung = $row->lehrveranstaltung_bezeichnung; $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; $this->result[] = $obj; } return true; } else { $this->errormsg = 'Fehler beim Laden der Daten'; return false; } } /** * Laedt die Pruefungen zu einer Lehrveranstaltung * * @param $lv_id * @param $pruefungstyp * @param $stsem * @return boolean */ public function getPruefungenLV($lv_id, $pruefungstyp=null, $stsem=null) { $qry = "SELECT tbl_pruefung.*, tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_note.bezeichnung as note_bezeichnung, tbl_pruefungstyp.beschreibung as typ_beschreibung, tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz FROM lehre.tbl_pruefung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_note, lehre.tbl_pruefungstyp WHERE tbl_pruefung.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_pruefung.note = tbl_note.note AND tbl_pruefung.pruefungstyp_kurzbz=tbl_pruefungstyp.pruefungstyp_kurzbz"; if ($pruefungstyp != null) $qry .= " AND tbl_pruefungstyp.pruefungstyp_kurzbz = '".addslashes($pruefungstyp)."'"; if ($lv_id != null) $qry .= " AND tbl_lehrveranstaltung.lehrveranstaltung_id = '".addslashes($lv_id)."'"; if ($stsem != null) $qry .= " AND tbl_lehreinheit.studiensemester_kurzbz = '".addslashes($stsem)."'"; $qry .= " ORDER BY datum DESC"; if($this->db_query($qry)) { while($row = $this->db_fetch_object()) { $obj = new pruefung(); $obj->pruefung_id = $row->pruefung_id; $obj->lehreinheit_id = $row->lehreinheit_id; $obj->student_uid = $row->student_uid; $obj->mitarbeiter_uid = $row->mitarbeiter_uid; $obj->note = $row->note; $obj->note_bezeichnung = $row->note_bezeichnung; $obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; $obj->pruefungstyp_beschreibung = $row->typ_beschreibung; $obj->datum = $row->datum; $obj->anmerkung = $row->anmerkung; $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; $obj->lehrveranstaltung_bezeichnung = $row->lehrveranstaltung_bezeichnung; $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; $this->result[] = $obj; } return true; } else { $this->errormsg = 'Fehler beim Laden der Daten'; return false; } } } ?>