Prüfungsverwaltung; Student kann sich anmelden; Prüfer kann bestätigen

This commit is contained in:
Stefan Puraner
2014-03-28 14:24:20 +00:00
parent 42285ca49d
commit c2df183879
7 changed files with 1466 additions and 336 deletions
+5
View File
@@ -517,6 +517,11 @@ class organisationseinheit extends basis_db
return $data;
}
/**
* Lädt Organisationseinheiten nach ihrem Typ
* @param type $oetyp_kurzbz
* @return boolean true, wenn ok; false, im Fehlerfall
*/
public function getByTyp($oetyp_kurzbz)
{
$qry = 'SELECT * FROM public.tbl_organisationseinheit WHERE organisationseinheittyp_kurzbz='.$this->db_add_param($oetyp_kurzbz).';';
+30 -7
View File
@@ -571,20 +571,34 @@ class pruefungCis extends basis_db
return true;
}
public function getPruefungByLv($lehrveranstaltung_IDs = array())
/**
* Lädt alle Prüfungen zur angebenen Lehrveranstaltung
* @param String|Array $lehrveranstaltung_IDs einzelne ID einer Lehrveranstaltung oder ein Array von IDs
* @return boolean true, wenn ok; false, im Fehlerfall
*/
public function getPruefungByLv($lehrveranstaltung_IDs)
{
if(empty($lehrveranstaltung_IDs))
{
$this->errormsg = "Keine Lehrveranstaltungen übergeben.</br>";
return false;
}
$in = "";
if (is_array($lehrveranstaltung_IDs))
{
foreach($lehrveranstaltung_IDs as $id)
{
$in.= $id.', ';
}
$in = substr($in, 0, -2);
}
else
{
$in = $lehrveranstaltung_IDs;
}
$in = "";
foreach($lehrveranstaltung_IDs as $id)
{
$in.= $id.', ';
}
$in = substr($in, 0, -2);
$qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.');';
@@ -603,6 +617,10 @@ class pruefungCis extends basis_db
return false;
}
/**
* Lädt alle Prüfung-Lehrveranstaltung Kombinationen
* @return boolean true, wenn ok; false, im Fehlerfall
*/
public function getAll()
{
$qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung;';
@@ -622,6 +640,11 @@ class pruefungCis extends basis_db
return false;
}
/**
* Lädt den Wert des letzten Studenten in der Anmeldereihung
* @param type $pruefungstermin_id Id eines Prüfungstermines
* @return boolean|integer Wert des Letzten in der Reihung oder false, wenn ein Fehler auftritt
*/
public function getLastOfReihung($pruefungstermin_id)
{
$qry = 'SELECT MAX(reihung) FROM campus.tbl_pruefungsanmeldung WHERE '
+133
View File
@@ -77,6 +77,11 @@ class pruefungsanmeldung extends basis_db {
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)
@@ -109,6 +114,11 @@ class pruefungsanmeldung extends basis_db {
}
}
/**
* 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))
@@ -141,6 +151,13 @@ class pruefungsanmeldung extends basis_db {
}
}
/**
* 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 '
@@ -167,12 +184,71 @@ class pruefungsanmeldung extends basis_db {
$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;
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);
}
$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;
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);
@@ -195,4 +271,61 @@ class pruefungsanmeldung extends basis_db {
}
}
/**
* 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)
{
$qry = 'UPDATE campus.tbl_pruefungsanmeldung SET status_kurzbz='.$this->db_add_param($status).''
. ' 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;
}
}
+4
View File
@@ -126,6 +126,10 @@ class pruefungstermin extends basis_db{
}
/**
* Lädt die Anzahl der Anmeldungen zu eine Prüfung
* @return boolean|integer Anzahl der Teilnehmer; false, wenn Fehler
*/
public function getNumberOfParticipants()
{
$qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung WHERE pruefungstermin_id='.$this->db_add_param($this->pruefungstermin_id).';';