diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index f1be3e449..5e5e5e3d2 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -33,8 +33,6 @@ require_once('../../../../include/prestudent.class.php'); require_once('../../../../include/person.class.php'); $uid = get_uid(); -//TODO -$uid = "p20132443"; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); @@ -544,11 +542,11 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; $anrechnung->prestudent_id = $prestudent_id; $anrechnung->begruendung_id = "2"; - //TODO welche uid übergeben? - $anrechnung->genehmigt_von = "p.vondrak"; + $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; $anrechnung->new = true; if($anrechnung->save()) { + $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; if($anmeldung->save(true)) { $pruefung = new pruefungCis($termin->pruefung_id); @@ -671,12 +669,16 @@ function getAllPruefungen($aktStudiensemester = null, $uid = null) function stornoAnmeldung($uid = null) { $pruefungsanmeldung_id=$_REQUEST['pruefungsanmeldung_id']; - $pruefungsanmeldung = new pruefungsanmeldung(); + $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); + $anrechnung = new anrechnung($pruefungsanmeldung->anrechnung_id); if($pruefungsanmeldung->delete($pruefungsanmeldung_id, $uid)) { - $data['result']='Anmeldung erfolgreich gelöscht.'; - $data['error']='false'; - $data['errormsg']=''; + if($anrechnung->delete($anrechnung->anrechnung_id)) + { + $data['result'] = 'Anmeldung erfolgreich gelöscht.'; + $data['error'] = 'false'; + $data['errormsg'] = ''; + } } else { diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php index 5dff3c506..250b38fed 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php @@ -32,8 +32,6 @@ require_once('../../../../include/student.class.php'); $uid = get_uid(); -//TODO -$uid = "p20132443"; $db = new basis_db(); $rechte = new benutzerberechtigung(); diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index cb5cb5d0a..97c633a4b 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -205,4 +205,7 @@ define('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN',false); //Gibt an, ob der Lageplan im Infoterminal angezeigt werden soll. define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN',true); +//User, welcher für das Anlegen von Anrechnungen bei der Prüfungsanmeldung verwendet wird +define('CIS_PRUEFUNGSANMELDUNG_USER','p.pruefungsanmeldung'); + ?> diff --git a/include/anrechnung.class.php b/include/anrechnung.class.php index e6ed5bb74..8a6449890 100644 --- a/include/anrechnung.class.php +++ b/include/anrechnung.class.php @@ -1,4 +1,5 @@ */ -require_once(dirname(__FILE__).'/basis_db.class.php'); -require_once(dirname(__FILE__).'/datum.class.php'); -require_once(dirname(__FILE__).'/lehrveranstaltung.class.php'); +require_once(dirname(__FILE__) . '/basis_db.class.php'); +require_once(dirname(__FILE__) . '/datum.class.php'); +require_once(dirname(__FILE__) . '/lehrveranstaltung.class.php'); -class anrechnung extends basis_db -{ - public $errormsg; - public $new; - public $result; +class anrechnung extends basis_db { - // Tabellenspalten - public $anrechnung_id; // integer - public $prestudent_id; // integer - public $lehrveranstaltung_id; // integer - public $begruendung_id; // integer - public $lehrveranstaltung_id_kompatibel; // integer - public $genehmigt_von; // varchar(32) - public $insertamum; // timestamp - public $insertvon; // varchar(32) - public $updateamum; // timestamp - public $updatevon; // varchar(32) - - public $begruendungen = array(); - - public function validate() - { - if(!is_numeric($this->prestudent_id)) - { - $this->errormsg = "Prestudent_id ist ungueltig"; - return false; - } - - if(!is_numeric($this->lehrveranstaltung_id)) - { - $this->errormsg = "Wählen Sie eine Lehrveranstaltung aus"; - return false; - } - - if(!is_numeric($this->begruendung_id)) - { - $this->errormsg = "Wählen Sie eine Begründung aus"; - return false; - } - - if($this->begruendung_id == "2" && !is_numeric($this->lehrveranstaltung_id_kompatibel)) - { - $this->errormsg = "Wählen Sie eine kompatible Lehrveranstaltung aus"; - return false; - } - - if(empty($this->genehmigt_von)) - { - $this->errormsg = "Wählen Sie die Person aus, die die Anrechnung genehmigt hat"; - return false; - } - - return true; + public $errormsg; + public $new; + public $result; + // Tabellenspalten + public $anrechnung_id; // integer + public $prestudent_id; // integer + public $lehrveranstaltung_id; // integer + public $begruendung_id; // integer + public $lehrveranstaltung_id_kompatibel; // integer + public $genehmigt_von; // varchar(32) + public $insertamum; // timestamp + public $insertvon; // varchar(32) + public $updateamum; // timestamp + public $updatevon; // varchar(32) + public $begruendungen = array(); + + /** + * Konstruktor - Laedt optional eine Anrechnung + * @param $anrechnung_id + */ + public function __construct($anrechnung_id = null) { + parent::__construct(); + if ($anrechnung_id != null) + $this->load($anrechnung_id); + } + + public function validate() { + if (!is_numeric($this->prestudent_id)) { + $this->errormsg = "Prestudent_id ist ungueltig"; + return false; } - - /** - * Lädt eine Anrechnung - * @param $anrechnung_id ID der Anrechnung - * @return true wenn ok, false im Fehlerfall - */ - public function getAnrechnung($anrechnung_id) - { - $qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, " - . "lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon " - . "FROM lehre.tbl_anrechnung " - . "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) " - . "WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id); - - if($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object($result)) - { - $datum = new datum(); - $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id); - $row->insertamum = $datum->convertISODate($row->insertamum); - $row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung; - if($row->lehrveranstaltung_id_kompatibel != '') - { - $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel); - $row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung; - } - else - $row->lehrveranstaltung_bez_kompatibel = null; - - $this->result[] = $row; - } - else - { - $this->errormsg = 'Es wurde kein Datensatz mit dieser ID gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Speichert eine Anrechnung - * @return true wenn ok, false im Fehlerfall - */ - public function save() - { - if(!$this->validate()) - return false; - if($this->new == "1") - { - // Neuen Datensatz anlegen - $qry = 'INSERT INTO lehre.tbl_anrechnung (prestudent_id, lehrveranstaltung_id, begruendung_id, lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon) VALUES ('. - $this->db_add_param($this->prestudent_id).', '. - $this->db_add_param($this->lehrveranstaltung_id).', '. - $this->db_add_param($this->begruendung_id).', '. - $this->db_add_param($this->lehrveranstaltung_id_kompatibel).', '. - $this->db_add_param($this->genehmigt_von).', '. - 'NOW(),'. - $this->db_add_param($this->insertvon).', '. - 'NOW(),'. - $this->db_add_param($this->updatevon).') RETURNING anrechnung_id;'; + if (!is_numeric($this->lehrveranstaltung_id)) { + $this->errormsg = "Wählen Sie eine Lehrveranstaltung aus"; + return false; + } + + if (!is_numeric($this->begruendung_id)) { + $this->errormsg = "Wählen Sie eine Begründung aus"; + return false; + } + + if ($this->begruendung_id == "2" && !is_numeric($this->lehrveranstaltung_id_kompatibel)) { + $this->errormsg = "Wählen Sie eine kompatible Lehrveranstaltung aus"; + return false; + } + + if (empty($this->genehmigt_von)) { + $this->errormsg = "Wählen Sie die Person aus, die die Anrechnung genehmigt hat"; + return false; + } + + return true; + } + + /** + * Lädt eine Anrechnung + * @param $anrechnung_id ID der Anrechnung + * @return true wenn ok, false im Fehlerfall + */ + public function getAnrechnung($anrechnung_id) { + $qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, " + . "lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon " + . "FROM lehre.tbl_anrechnung " + . "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) " + . "WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id); + + if ($result = $this->db_query($qry)) { + if ($row = $this->db_fetch_object($result)) { + $datum = new datum(); + $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id); + $row->insertamum = $datum->convertISODate($row->insertamum); + $row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung; + if ($row->lehrveranstaltung_id_kompatibel != '') { + $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel); + $row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung; + } else + $row->lehrveranstaltung_bez_kompatibel = null; + + $this->result[] = $row; } - else - { - // Datensatz aktualisieren - $qry = 'UPDATE lehre.tbl_anrechnung SET ' - . 'lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id) . ', ' - . 'begruendung_id = ' . $this->db_add_param($this->begruendung_id) . ', ' - . 'lehrveranstaltung_id_kompatibel = ' . $this->db_add_param($this->lehrveranstaltung_id_kompatibel) . ', ' - . 'genehmigt_von = ' . $this->db_add_param($this->genehmigt_von) . ', ' - . 'updateamum = NOW(), ' - . 'updatevon = ' . $this->db_add_param($this->updatevon) . ' ' - . 'WHERE anrechnung_id = ' . $this->db_add_param($this->anrechnung_id); - } - - if($this->db_query($qry)) - { - $this->anrechnung_id = $this->db_fetch_object()->anrechnung_id; - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern der Anrechnung: '.$this->db_last_error(); + else { + $this->errormsg = 'Es wurde kein Datensatz mit dieser ID gefunden'; return false; } + } else { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; } - - /** - * Gibt alle Anrechnungen eines Prestudenten zurück - * @param $prestudent_id - * @return true wenn ok, false im Fehlerfall - */ - public function getAnrechnungPrestudent($prestudent_id) - { - $qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, " - . "lehrveranstaltung_id_kompatibel, genehmigt_von , insertamum, insertvon, updateamum, updatevon " - . "FROM lehre.tbl_anrechnung " - . "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) " - . "WHERE prestudent_id = " . $this->db_add_param($prestudent_id); + } - if($this->db_query($qry)) - { - $datum = new datum(); - - while($row = $this->db_fetch_object()) - { - $row->insertamum = $datum->convertISODate($row->insertamum); - $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id); - $row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung; - if($row->lehrveranstaltung_id_kompatibel != '') - { - $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel); - $row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung; - } - else - $row->lehrveranstaltung_bez_kompatibel = null; - - $this->result[] = $row; - } - - return true; - } - else - { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } + /** + * Speichert eine Anrechnung + * @return true wenn ok, false im Fehlerfall + */ + public function save() { + if (!$this->validate()) + return false; + + if ($this->new == "1") { + // Neuen Datensatz anlegen + $qry = 'INSERT INTO lehre.tbl_anrechnung (prestudent_id, lehrveranstaltung_id, begruendung_id, lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon) VALUES (' . + $this->db_add_param($this->prestudent_id) . ', ' . + $this->db_add_param($this->lehrveranstaltung_id) . ', ' . + $this->db_add_param($this->begruendung_id) . ', ' . + $this->db_add_param($this->lehrveranstaltung_id_kompatibel) . ', ' . + $this->db_add_param($this->genehmigt_von) . ', ' . + 'NOW(),' . + $this->db_add_param($this->insertvon) . ', ' . + 'NOW(),' . + $this->db_add_param($this->updatevon) . ') RETURNING anrechnung_id;'; + } else { + // Datensatz aktualisieren + $qry = 'UPDATE lehre.tbl_anrechnung SET ' + . 'lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id) . ', ' + . 'begruendung_id = ' . $this->db_add_param($this->begruendung_id) . ', ' + . 'lehrveranstaltung_id_kompatibel = ' . $this->db_add_param($this->lehrveranstaltung_id_kompatibel) . ', ' + . 'genehmigt_von = ' . $this->db_add_param($this->genehmigt_von) . ', ' + . 'updateamum = NOW(), ' + . 'updatevon = ' . $this->db_add_param($this->updatevon) . ' ' + . 'WHERE anrechnung_id = ' . $this->db_add_param($this->anrechnung_id); } - - /** - * Loescht eine Anrechnung - * @param $anrechnung_id - * @return true wenn ok, false im Fehlerfall - */ - public function delete($anrechnung_id) - { - $qry = "DELETE FROM lehre.tbl_anrechnung WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id); - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Datensatz konnte nicht geloescht werden'; - return false; - } + + if ($this->db_query($qry)) { + $this->anrechnung_id = $this->db_fetch_object()->anrechnung_id; + return true; + } else { + $this->errormsg = 'Fehler beim Speichern der Anrechnung: ' . $this->db_last_error(); + return false; } - - /** - * Gibt die Anzahl der Notizen für eine Anrechnung zurück - * @param $anrechung_id - * @return Anzahl der Notizen, false im Fehlerfall - */ - public function getAnzahlNotizen($anrechung_id) - { - $qry = "SELECT COUNT(*) AS anzahl " - . "FROM public.tbl_notizzuordnung " - . "WHERE anrechnung_id = " . $this->db_add_param($anrechung_id); - - if($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object($result)) - { - return $row->anzahl; - } - else - { - $this->errormsg = 'Daten konnten nicht geladen werden'; - return false; - } - } - else - { - $this->errormsg = 'Daten konnten nicht geladen werden'; - return false; - } - } - - /** - * Gibt alle möglichen Begründungen zurück - * @return array Array der Begründungen - */ - public function getAllBegruendung() - { - $qry = 'SELECT * FROM lehre.tbl_anrechnung_begruendung'; - - if($this->db_query($qry)) - { - while ($row = $this->db_fetch_object()) - { - $stdobj = new stdClass(); - $stdobj->begruendung_id = $row->begruendung_id; - $stdobj->bezeichnung = $row->bezeichnung; - array_push($this->begruendungen, $stdobj); - } - return true; + } + + /** + * Gibt alle Anrechnungen eines Prestudenten zurück + * @param $prestudent_id + * @return true wenn ok, false im Fehlerfall + */ + public function getAnrechnungPrestudent($prestudent_id) { + $qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, " + . "lehrveranstaltung_id_kompatibel, genehmigt_von , insertamum, insertvon, updateamum, updatevon " + . "FROM lehre.tbl_anrechnung " + . "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) " + . "WHERE prestudent_id = " . $this->db_add_param($prestudent_id); + + if ($this->db_query($qry)) { + $datum = new datum(); + + while ($row = $this->db_fetch_object()) { + $row->insertamum = $datum->convertISODate($row->insertamum); + $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id); + $row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung; + if ($row->lehrveranstaltung_id_kompatibel != '') { + $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel); + $row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung; + } else + $row->lehrveranstaltung_bez_kompatibel = null; + + $this->result[] = $row; } - else - { + + return true; + } + else { + $this->errormsg = 'Datensatz konnte nicht geladen werden'; + return false; + } + } + + /** + * Loescht eine Anrechnung + * @param $anrechnung_id + * @return true wenn ok, false im Fehlerfall + */ + public function delete($anrechnung_id) { + $qry = "DELETE FROM lehre.tbl_anrechnung WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id); + + if ($this->db_query($qry)) { + return true; + } else { + $this->errormsg = 'Datensatz konnte nicht geloescht werden'; + return false; + } + } + + /** + * Gibt die Anzahl der Notizen für eine Anrechnung zurück + * @param $anrechung_id + * @return Anzahl der Notizen, false im Fehlerfall + */ + public function getAnzahlNotizen($anrechung_id) { + $qry = "SELECT COUNT(*) AS anzahl " + . "FROM public.tbl_notizzuordnung " + . "WHERE anrechnung_id = " . $this->db_add_param($anrechung_id); + + if ($result = $this->db_query($qry)) { + if ($row = $this->db_fetch_object($result)) { + return $row->anzahl; + } else { $this->errormsg = 'Daten konnten nicht geladen werden'; return false; } + } else { + $this->errormsg = 'Daten konnten nicht geladen werden'; + return false; } -} \ No newline at end of file + } + + /** + * Gibt alle möglichen Begründungen zurück + * @return array Array der Begründungen + */ + public function getAllBegruendung() { + $qry = 'SELECT * FROM lehre.tbl_anrechnung_begruendung'; + + if ($this->db_query($qry)) { + while ($row = $this->db_fetch_object()) { + $stdobj = new stdClass(); + $stdobj->begruendung_id = $row->begruendung_id; + $stdobj->bezeichnung = $row->bezeichnung; + array_push($this->begruendungen, $stdobj); + } + return true; + } else { + $this->errormsg = 'Daten konnten nicht geladen werden'; + return false; + } + } + + /** + * Lädt eine Anrechnung + * @param $anrechnung_id ID der Anrechnung + * @return true wenn ok, false im Fehlerfall + */ + public function load($anrechnung_id) { + $qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, " + . "lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon " + . "FROM lehre.tbl_anrechnung " + . "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) " + . "WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id); + + if ($result = $this->db_query($qry)) { + if ($row = $this->db_fetch_object($result)) { + $this->anrechnung_id = $row->anrechnung_id; + $this->prestudent_id = $row->prestudent_id; + $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $this->lehrveranstaltung_id_kompatibel = $row->lehrveranstaltung_id_kompatibel; + $this->begruendung_id = $row->begruendung_id; + $this->begruendung = $row->begruendung; + $this->genehmigt_von = $row->genehmigt_von; + + $datum = new datum(); + $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id); + $this->insertamum = $datum->convertISODate($row->insertamum); + $this->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung; + if ($row->lehrveranstaltung_id_kompatibel != '') { + $lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel); + $this->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung; + } else + $this->lehrveranstaltung_bez_kompatibel = null; + } + else { + $this->errormsg = 'Es wurde kein Datensatz mit dieser ID gefunden'; + return false; + } + } else { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + +} diff --git a/include/pruefungsanmeldung.class.php b/include/pruefungsanmeldung.class.php index e22ff62c1..a1bcf9c0a 100644 --- a/include/pruefungsanmeldung.class.php +++ b/include/pruefungsanmeldung.class.php @@ -1,355 +1,361 @@ - - */ - -require_once(dirname(__FILE__) . '/basis_db.class.php'); - -class pruefungsanmeldung extends basis_db { - public $new; - public $result = array(); - - public $pruefungsanmeldung_id; //bigint - public $uid; //varchar(32) - public $pruefungstermin_id; //bigint - public $lehrveranstaltung_id; //bigint - public $status_kurzbz; //varchar(32) - public $wuensche; //text - public $reihung; //smallint - public $kommentar; //text - public $statusupdatevon; //varchar(32) - public $statusupdateamum; //timestamp - - /** - * Konstruktor - * @param pruefung_id ID der zu ladenden Prüfung - */ - public function __construct($pruefungsanmeldung_id = null) - { - parent::__construct(); - - if ($pruefungsanmeldung_id != null) - $this->load($pruefungsanmeldung_id); - } - - public function __set($name, $value) - { - switch ($name) { - case 'pruefungsanmeldung_id': - if (!is_numeric($value)) - throw new Exception('Attribute pruefungsanmeldung_id must be numeric!'); - $this->$name = $value; - break; - case 'pruefungstermin_id': - if(!is_numeric($value)) - throw new Exception('Attribute pruefungstermin_id must be numeric!'); - $this->$name = $value; - break; - case 'lehrveranstaltung_id': - if(!is_numeric($value)) - throw new Exception('Attribute lehrveranstaltung_id must be numeric!'); - $this->$name = $value; - break; - default: - $this->$name = $value; - } - } - - public function __get($name) - { - return $this->$name; - } - - /** - * speichert eine Prüfungsanmeldung - * @param type $new - * @return boolean true, wenn erfolgreich; false im Fehlerfall - */ - public function save($new = null) - { - if ($new == null) - $new = $this->new; - - if($new) - { - $qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar) VALUES (' - . $this->db_add_param($this->uid).', ' - . $this->db_add_param($this->pruefungstermin_id).', ' - . $this->db_add_param($this->lehrveranstaltung_id).', ' - . $this->db_add_param($this->status_kurzbz).', ' - . $this->db_add_param($this->wuensche).', ' - . $this->db_add_param($this->reihung).', ' - . $this->db_add_param($this->kommentar).');'; - } - else - { - $qry = 'UPDATE campus.tbl_pruefungsanmeldung SET ' - . 'uid='.$this->db_add_param($this->uid).', ' - . 'pruefungstermin_id='.$this->db_add_param($this->pruefungstermin_id).', ' - . 'lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id).', ' - . 'status_kurzbz='.$this->db_add_param($this->status_kurzbz).', ' - . 'wuensche='.$this->db_add_param($this->wuensche).', ' - . 'reihung='.$this->db_add_param($this->reihung).', ' - . 'kommentar='.$this->db_add_param($this->kommentar) - . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($this->pruefungsanmeldung_id).';'; - } - - if ($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern der Anmeldung.'; - return false; - } - } - - /** - * Lädt eine Prüfungsanmeldung - * @param type $pruefungsanmeldung_id - * @return boolean true, wenn erfolgreich; false im Fehlerfall - */ - public function load($pruefungsanmeldung_id) - { - if(!is_numeric($pruefungsanmeldung_id)) - { - $this->errormsg = "Anmeldung ID muss eine gültige Zahl sein"; - return false; - } - - $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';'; - - if(!$this->db_query($qry)) - { - $this->errormsg = 'Anmeldungsdaten konnten nicht geladen werden.'; - return false; - } - else - { - if($row = $this->db_fetch_object()) - { - $this->pruefungsanmeldung_id = $row->pruefungsanmeldung_id; - $this->uid = $row->uid; - $this->pruefungstermin_id = $row->pruefungstermin_id; - $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $this->status_kurzbz = $row->status_kurzbz; - $this->wuensche = $row->wuensche; - $this->reihung = $row->reihung; - $this->kommentar = $row->kommentar; - $this->statusupdateamum = $row->statusupdateamum; - $this->statusupdatevon = $row->statusupdatevon; - } - return true; - } - } - - /** - * Lädt alle Prüfungsanmeldungen eines Studenten - * @param type $uid UID eines Studenten - * @param type $studiensemester_kurbz Filter nach Studiensemester (zB 'WS2013') - * @param type $status_kurzbz Filter nach Status (zB 'angemeldet') - * @return boolean|array false, bei Fehler; Array mit Anmeldungen - */ - public function getAnmeldungenByStudent($uid, $studiensemester_kurbz=null, $status_kurzbz=null) - { - $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung pa ' - . 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id ' - . 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id ' - . 'WHERE uid='.$this->db_add_param($uid).';'; - - if(!$this->db_query($qry)) - { - $this->errormsg = 'Anmeldungen konnten nicht geladen werden.'; - return false; - } - else - { - $anmeldungen = array(); - while($row = $this->db_fetch_object()) - { - $anmeldung = new stdClass(); - $anmeldung->pruefungsanmeldung_id = $row->pruefungsanmeldung_id; - $anmeldung->uid = $row->uid; - $anmeldung->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $anmeldung->status_kurzbz = $row->status_kurzbz; - $anmeldung->pruefungstermin_id = $row->pruefungstermin_id; - $anmeldung->pruefung_id = $row->pruefung_id; - $anmeldung->von = $row->von; - $anmeldung->bis = $row->bis; - $anmeldung->reihung = $row->reihung; - $anmeldung->wuensche = $row->wuensche; - $anmeldung->kommentar = $row->kommentar; - $anmeldung->statusupdateamum = $row->statusupdateamum; - $anmeldung->statusupdatevon = $row->statusupdatevon; - array_push($anmeldungen, $anmeldung); - } - return $anmeldungen; - } - } - - /** - * Lädt alle Anmeldungen eines Prüfungstermins - * @param type $pruefungstermin_id ID des Prüfungstermins - * @param type $lehrveranstaltung_id Filter nach Lehrveranstaltung - * @param type $studiensemester_kurbz Filter nach Studiensemester (zB 'WS2013') - * @param type $status_kurzbz Filter nach Status (zB 'angemeldet') - * @return boolean|array false, bei Fehler; Array mit Anmeldungen - */ - public function getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id=null, $studiensemester_kurbz=null, $status_kurzbz=null) - { - $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung pa ' - . 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id ' - . 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id ' - . 'WHERE pa.pruefungstermin_id='.$this->db_add_param($pruefungstermin_id); - - if($lehrveranstaltung_id !== null) - { - $qry .= ' AND lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id); - } - - if($status_kurzbz !== null) - { - $qry .= ' AND status_kurzbz='.$this->db_add_param($status_kurzbz); - } - $qry .=' ORDER BY reihung'; - $qry .=';'; - - if(!$this->db_query($qry)) - { - $this->errormsg = "Anmeldungen konnten nicht geladen werden."; - return false; - } - else - { - $anmeldungen = array(); - while($row = $this->db_fetch_object()) - { - $anmeldung = new stdClass(); - $anmeldung->pruefungsanmeldung_id = $row->pruefungsanmeldung_id; - $anmeldung->uid = $row->uid; - $anmeldung->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $anmeldung->status_kurzbz = $row->status_kurzbz; - $anmeldung->pruefungstermin_id = $row->pruefungstermin_id; - $anmeldung->pruefung_id = $row->pruefung_id; - $anmeldung->von = $row->von; - $anmeldung->bis = $row->bis; - $anmeldung->reihung = $row->reihung; - $anmeldung->wuensche = $row->wuensche; - $anmeldung->kommentar = $row->kommentar; - $anmeldung->statusupdateamum = $row->statusupdateamum; - $anmeldung->statusupdatevon = $row->statusupdatevon; - array_push($anmeldungen, $anmeldung); - } - return $anmeldungen; - } - } - - /** - * Löscht eine Prüfungsanmeldung - * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung - * @param type $uid UID eines Studenten - * @return boolean true, wenn ok; false im Fehlerfall - */ - public function delete($pruefungsanmeldung_id, $uid=null) - { - $qry = 'DELETE FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id); - - if(!is_null($uid)) - { - $qry .= ' AND uid='.$this->db_add_param($uid); - } - - $qry .= ' ;'; - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Anmeldung konnte nicht gelöscht werden.'; - return false; - } - } - - /** - * speichert die Reihung eines Anmeldungstermins - * WICHTIG: Auf den Aufbau des übergebenen arrays muss geachtet werden - * @param Array $reihung Ein Array mit Objekten (Attribute: lehrveranstaltung_id, reihung, terminId, uid) - * @return boolean true, wenn ok; false, im Fehlerfall - */ - public function saveReihung($reihung) - { - if(is_array($reihung)) - { - foreach($reihung as $key=>$anmeldung) - { - if($key === 0) - { - $qry = 'BEGIN; UPDATE campus.tbl_pruefungsanmeldung SET reihung='.$this->db_add_param($anmeldung["reihung"]).' WHERE ' - . 'uid='.$this->db_add_param($anmeldung["uid"]).' AND ' - . 'pruefungstermin_id='.$this->db_add_param($anmeldung["terminId"]).' AND ' - . 'lehrveranstaltung_id='.$this->db_add_param($anmeldung["lehrveranstaltung_id"]).';'; - } else { - $qry = 'UPDATE campus.tbl_pruefungsanmeldung SET reihung='.$this->db_add_param($anmeldung["reihung"]).' WHERE ' - . 'uid='.$this->db_add_param($anmeldung["uid"]).' AND ' - . 'pruefungstermin_id='.$this->db_add_param($anmeldung["terminId"]).' AND ' - . 'lehrveranstaltung_id='.$this->db_add_param($anmeldung["lehrveranstaltung_id"]).';'; - } - if((!$this->db_query($qry)) || ($this->db_affected_rows()===0)) - { - $this->db_query('ROLLBACK'); - $this->errormsg = "Reihung konnte nicht geändert werden."; - return false; - } - } - $this->db_query('COMMIT;'); - return true; - } - $this->errormsg = "No Array"; - return false; - } - - - /** - * Ändert den Status einer Prüfungsanmeldung - * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung - * @param type $status Status auf den geändert werden soll - * @return boolean true, wenn ok; false, im Fehlerfall - */ - public function changeState($pruefungsanmeldung_id, $status, $user) - { - $qry = 'UPDATE campus.tbl_pruefungsanmeldung SET ' - . 'status_kurzbz='.$this->db_add_param($status).', ' - . 'statusupdatevon='.$this->db_add_param($user).', ' - . 'statusupdateamum=NOW() ' - . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';'; - - if(!$this->db_query($qry)) - { - $this->errormsg = 'Status konnte nicht geändert werden.'; - return false; - } - return true; - } -} + + */ + +require_once(dirname(__FILE__) . '/basis_db.class.php'); + +class pruefungsanmeldung extends basis_db { + public $new; + public $result = array(); + + public $pruefungsanmeldung_id; //bigint + public $uid; //varchar(32) + public $pruefungstermin_id; //bigint + public $lehrveranstaltung_id; //bigint + public $status_kurzbz; //varchar(32) + public $wuensche; //text + public $reihung; //smallint + public $kommentar; //text + public $statusupdatevon; //varchar(32) + public $statusupdateamum; //timestamp + public $anrechnung_id; //integer + + /** + * Konstruktor + * @param pruefung_id ID der zu ladenden Prüfung + */ + public function __construct($pruefungsanmeldung_id = null) + { + parent::__construct(); + + if ($pruefungsanmeldung_id != null) + $this->load($pruefungsanmeldung_id); + } + + public function __set($name, $value) + { + switch ($name) { + case 'pruefungsanmeldung_id': + if (!is_numeric($value)) + throw new Exception('Attribute pruefungsanmeldung_id must be numeric!'); + $this->$name = $value; + break; + case 'pruefungstermin_id': + if(!is_numeric($value)) + throw new Exception('Attribute pruefungstermin_id must be numeric!'); + $this->$name = $value; + break; + case 'lehrveranstaltung_id': + if(!is_numeric($value)) + throw new Exception('Attribute lehrveranstaltung_id must be numeric!'); + $this->$name = $value; + break; + default: + $this->$name = $value; + } + } + + public function __get($name) + { + return $this->$name; + } + + /** + * speichert eine Prüfungsanmeldung + * @param type $new + * @return boolean true, wenn erfolgreich; false im Fehlerfall + */ + public function save($new = null) + { + if ($new == null) + $new = $this->new; + + if($new) + { + $qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar, anrechnung_id) VALUES (' + . $this->db_add_param($this->uid).', ' + . $this->db_add_param($this->pruefungstermin_id).', ' + . $this->db_add_param($this->lehrveranstaltung_id).', ' + . $this->db_add_param($this->status_kurzbz).', ' + . $this->db_add_param($this->wuensche).', ' + . $this->db_add_param($this->reihung).', ' + . $this->db_add_param($this->kommentar).', ' + . $this->db_add_param($this->anrechnung_id).');'; + } + else + { + $qry = 'UPDATE campus.tbl_pruefungsanmeldung SET ' + . 'uid='.$this->db_add_param($this->uid).', ' + . 'pruefungstermin_id='.$this->db_add_param($this->pruefungstermin_id).', ' + . 'lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id).', ' + . 'status_kurzbz='.$this->db_add_param($this->status_kurzbz).', ' + . 'wuensche='.$this->db_add_param($this->wuensche).', ' + . 'reihung='.$this->db_add_param($this->reihung).', ' + . 'kommentar='.$this->db_add_param($this->kommentar).', ' + . 'anrechnung_id='.$this->db_add_param($this->anrechnung_id) + . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($this->pruefungsanmeldung_id).';'; + } + + if ($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Anmeldung.'; + return false; + } + } + + /** + * Lädt eine Prüfungsanmeldung + * @param type $pruefungsanmeldung_id + * @return boolean true, wenn erfolgreich; false im Fehlerfall + */ + public function load($pruefungsanmeldung_id) + { + if(!is_numeric($pruefungsanmeldung_id)) + { + $this->errormsg = "Anmeldung ID muss eine gültige Zahl sein"; + return false; + } + + $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';'; + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Anmeldungsdaten konnten nicht geladen werden.'; + return false; + } + else + { + if($row = $this->db_fetch_object()) + { + $this->pruefungsanmeldung_id = $row->pruefungsanmeldung_id; + $this->uid = $row->uid; + $this->pruefungstermin_id = $row->pruefungstermin_id; + $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $this->status_kurzbz = $row->status_kurzbz; + $this->wuensche = $row->wuensche; + $this->reihung = $row->reihung; + $this->kommentar = $row->kommentar; + $this->statusupdateamum = $row->statusupdateamum; + $this->statusupdatevon = $row->statusupdatevon; + $this->anrechnung_id = $row->anrechnung_id; + } + return true; + } + } + + /** + * Lädt alle Prüfungsanmeldungen eines Studenten + * @param type $uid UID eines Studenten + * @param type $studiensemester_kurbz Filter nach Studiensemester (zB 'WS2013') + * @param type $status_kurzbz Filter nach Status (zB 'angemeldet') + * @return boolean|array false, bei Fehler; Array mit Anmeldungen + */ + public function getAnmeldungenByStudent($uid, $studiensemester_kurbz=null, $status_kurzbz=null) + { + $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung pa ' + . 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id ' + . 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id ' + . 'WHERE uid='.$this->db_add_param($uid).';'; + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Anmeldungen konnten nicht geladen werden.'; + return false; + } + else + { + $anmeldungen = array(); + while($row = $this->db_fetch_object()) + { + $anmeldung = new stdClass(); + $anmeldung->pruefungsanmeldung_id = $row->pruefungsanmeldung_id; + $anmeldung->uid = $row->uid; + $anmeldung->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $anmeldung->status_kurzbz = $row->status_kurzbz; + $anmeldung->pruefungstermin_id = $row->pruefungstermin_id; + $anmeldung->pruefung_id = $row->pruefung_id; + $anmeldung->von = $row->von; + $anmeldung->bis = $row->bis; + $anmeldung->reihung = $row->reihung; + $anmeldung->wuensche = $row->wuensche; + $anmeldung->kommentar = $row->kommentar; + $anmeldung->statusupdateamum = $row->statusupdateamum; + $anmeldung->statusupdatevon = $row->statusupdatevon; + $anmeldung->anrechnung_id = $row->anrechnung_id; + array_push($anmeldungen, $anmeldung); + } + return $anmeldungen; + } + } + + /** + * Lädt alle Anmeldungen eines Prüfungstermins + * @param type $pruefungstermin_id ID des Prüfungstermins + * @param type $lehrveranstaltung_id Filter nach Lehrveranstaltung + * @param type $studiensemester_kurbz Filter nach Studiensemester (zB 'WS2013') + * @param type $status_kurzbz Filter nach Status (zB 'angemeldet') + * @return boolean|array false, bei Fehler; Array mit Anmeldungen + */ + public function getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id=null, $studiensemester_kurbz=null, $status_kurzbz=null) + { + $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung pa ' + . 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id ' + . 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id ' + . 'WHERE pa.pruefungstermin_id='.$this->db_add_param($pruefungstermin_id); + + if($lehrveranstaltung_id !== null) + { + $qry .= ' AND lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id); + } + + if($status_kurzbz !== null) + { + $qry .= ' AND status_kurzbz='.$this->db_add_param($status_kurzbz); + } + $qry .=' ORDER BY reihung'; + $qry .=';'; + + if(!$this->db_query($qry)) + { + $this->errormsg = "Anmeldungen konnten nicht geladen werden."; + return false; + } + else + { + $anmeldungen = array(); + while($row = $this->db_fetch_object()) + { + $anmeldung = new stdClass(); + $anmeldung->pruefungsanmeldung_id = $row->pruefungsanmeldung_id; + $anmeldung->uid = $row->uid; + $anmeldung->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $anmeldung->status_kurzbz = $row->status_kurzbz; + $anmeldung->pruefungstermin_id = $row->pruefungstermin_id; + $anmeldung->pruefung_id = $row->pruefung_id; + $anmeldung->von = $row->von; + $anmeldung->bis = $row->bis; + $anmeldung->reihung = $row->reihung; + $anmeldung->wuensche = $row->wuensche; + $anmeldung->kommentar = $row->kommentar; + $anmeldung->statusupdateamum = $row->statusupdateamum; + $anmeldung->statusupdatevon = $row->statusupdatevon; + $anmeldung->anrechnung_id = $row->anrechnung_id; + array_push($anmeldungen, $anmeldung); + } + return $anmeldungen; + } + } + + /** + * Löscht eine Prüfungsanmeldung + * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung + * @param type $uid UID eines Studenten + * @return boolean true, wenn ok; false im Fehlerfall + */ + public function delete($pruefungsanmeldung_id, $uid=null) + { + $qry = 'DELETE FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id); + + if(!is_null($uid)) + { + $qry .= ' AND uid='.$this->db_add_param($uid); + } + + $qry .= ' ;'; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Anmeldung konnte nicht gelöscht werden.'; + return false; + } + } + + /** + * speichert die Reihung eines Anmeldungstermins + * WICHTIG: Auf den Aufbau des übergebenen arrays muss geachtet werden + * @param Array $reihung Ein Array mit Objekten (Attribute: lehrveranstaltung_id, reihung, terminId, uid) + * @return boolean true, wenn ok; false, im Fehlerfall + */ + public function saveReihung($reihung) + { + if(is_array($reihung)) + { + foreach($reihung as $key=>$anmeldung) + { + if($key === 0) + { + $qry = 'BEGIN; UPDATE campus.tbl_pruefungsanmeldung SET reihung='.$this->db_add_param($anmeldung["reihung"]).' WHERE ' + . 'uid='.$this->db_add_param($anmeldung["uid"]).' AND ' + . 'pruefungstermin_id='.$this->db_add_param($anmeldung["terminId"]).' AND ' + . 'lehrveranstaltung_id='.$this->db_add_param($anmeldung["lehrveranstaltung_id"]).';'; + } else { + $qry = 'UPDATE campus.tbl_pruefungsanmeldung SET reihung='.$this->db_add_param($anmeldung["reihung"]).' WHERE ' + . 'uid='.$this->db_add_param($anmeldung["uid"]).' AND ' + . 'pruefungstermin_id='.$this->db_add_param($anmeldung["terminId"]).' AND ' + . 'lehrveranstaltung_id='.$this->db_add_param($anmeldung["lehrveranstaltung_id"]).';'; + } + if((!$this->db_query($qry)) || ($this->db_affected_rows()===0)) + { + $this->db_query('ROLLBACK'); + $this->errormsg = "Reihung konnte nicht geändert werden."; + return false; + } + } + $this->db_query('COMMIT;'); + return true; + } + $this->errormsg = "No Array"; + return false; + } + + + /** + * Ändert den Status einer Prüfungsanmeldung + * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung + * @param type $status Status auf den geändert werden soll + * @return boolean true, wenn ok; false, im Fehlerfall + */ + public function changeState($pruefungsanmeldung_id, $status, $user) + { + $qry = 'UPDATE campus.tbl_pruefungsanmeldung SET ' + . 'status_kurzbz='.$this->db_add_param($status).', ' + . 'statusupdatevon='.$this->db_add_param($user).', ' + . 'statusupdateamum=NOW() ' + . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';'; + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Status konnte nicht geändert werden.'; + return false; + } + return true; + } +} diff --git a/system/checksystem.php b/system/checksystem.php index f90c147d1..9f004bc01 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3146,6 +3146,17 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht } } +// Spalte anrechnung_id fuer campus.tbl_pruefungsanmeldung +if(!$result = @$db->db_query("SELECT anrechnung_id FROM campus.tbl_pruefungsanmeldung")) +{ + $qry = 'ALTER TABLE campus.tbl_pruefungsanmeldung ADD COLUMN anrechnung_id integer;'; + + if(!$db->db_query($qry)) + echo 'campus.tbl_pruefungsanmeldung: '.$db->db_last_error().'
'; + else + echo '
campus.tbl_pruefungsanmeldung: neue Spalte anrechnung_id hinzugefuegt'; +} + echo '


'; $tabellen=array(