diff --git a/cis/private/lehre/pruefung/pruefung.js b/cis/private/lehre/pruefung/pruefung.js
index 0bc5df0b8..c8edc3860 100644
--- a/cis/private/lehre/pruefung/pruefung.js
+++ b/cis/private/lehre/pruefung/pruefung.js
@@ -62,12 +62,12 @@ function terminHinzufuegen(htmlTag)
{
case 'input':
var count = $("#prfTermin tr").length+1;
- $("#prfTermin").append('
| | | | |
');
+ $("#prfTermin").append(' | | | | | |
');
setDatePicker();
break;
case 'span':
var count = $("#prfTermin tr").length+1;
- $("#prfTermin").append(' | | | | |
');
+ $("#prfTermin").append(' | | | | | |
');
break;
}
@@ -1065,6 +1065,9 @@ function savePruefungstermin()
case 4:
termin.max = $(w).val();
break;
+ case 5:
+ termin.sammelklausur = $(w).prop("checked");
+ break;
}
});
if(!checkTermin(termin))
@@ -1353,6 +1356,14 @@ function loadPruefungsDetails(prfId)
$("#termin"+j+"Ende").text(bis);
$("#termin"+j+"min").text(min);
$("#termin"+j+"max").text(max);
+ if(t.sammelklausur)
+ {
+ $("#termin"+j+"sammelklausur").text("true");
+ }
+ else
+ {
+ $("#termin"+j+"sammelklausur").text("false");
+ }
$("#termin"+j+"Id").closest("tr").append("löschen | ");
terminHinzufuegen("span");
}
@@ -1458,6 +1469,9 @@ function updatePruefung(prfId)
case 5:
termin.max = $(w).text();
break;
+ case 6:
+ termin.sammelklausur = $(w).prop("checked");
+ break;
}
});
if(!checkTermin(termin))
@@ -1496,6 +1510,9 @@ function updatePruefung(prfId)
case 4:
termin.max = $(w).val();
break;
+ case 5:
+ termin.sammelklausur = $(w).prop("checked");
+ break;
}
});
if(!checkTermin(termin))
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
index 8c5ae3407..28b672b2c 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
@@ -823,8 +823,20 @@ function getAllFreieRaeume($terminId)
$datum_bis = explode(" ", $pruefungstermin->bis);
$teilnehmer = $pruefungstermin->getNumberOfParticipants();
$teilnehmer = $teilnehmer !== false ? $teilnehmer : 0;
+ $pruefungstermin->getAll($pruefungstermin->von, $pruefungstermin->bis, TRUE);
+
if($ort->search($datum_von[0], $datum_von[1], $datum_bis[1], null, $teilnehmer, true))
{
+ foreach($pruefungstermin->result as $termin)
+ {
+ if($termin->pruefungstermin_id != $pruefungstermin->pruefungstermin_id && !is_null($termin->ort_kurzbz))
+ {
+ $o = new ort($termin->ort_kurzbz);
+ $o->ort_kurzbz .= " (Sammelklausur)";
+ array_push($ort->result, $o);
+ }
+ }
+
usort($ort->result, "compareRaeume");
$data['result']=$ort->result;
$data['error']='false';
@@ -863,7 +875,7 @@ function saveRaum($terminId, $ort_kurzbz, $uid)
if($reservierung->isReserviert($ort_kurzbz, $datum_von[0], $h))
$reserviert = true;
}
- if(!$reserviert)
+ if(!$reserviert || $pruefungstermin->sammelklausur == TRUE)
{
$pruefung = new pruefungCis($pruefungstermin->pruefung_id);
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
diff --git a/cis/private/lehre/pruefung/pruefungstermin.json.php b/cis/private/lehre/pruefung/pruefungstermin.json.php
index d649d1a15..1b8c94077 100644
--- a/cis/private/lehre/pruefung/pruefungstermin.json.php
+++ b/cis/private/lehre/pruefung/pruefungstermin.json.php
@@ -229,6 +229,7 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id
$termin->max = $t["max"];
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
+ $termin->sammelklausur = $t["sammelklausur"];
// if(checkTerminPruefungsfenster($pruefungsfenster_id, $date))
// {
if(!(checkCollision($uid, $termin->beginn, $termin->ende)))
@@ -372,6 +373,7 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
$termin->max = $t["max"];
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
+ $termin->sammelklausur = $t["sammelklausur"];
// if(checkTerminPruefungsfenster($pruefungsfenster_id, $date))
// {
if(!(checkCollision($uid, $termin->beginn, $termin->ende)))
@@ -394,7 +396,7 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
}
foreach ($termineNeuArray as $t)
{
- $pruefung->saveTerminPruefung($pruefung_id, $t->beginn, $t->ende, $t->max, $t->min);
+ $pruefung->saveTerminPruefung($pruefung_id, $t->beginn, $t->ende, $t->max, $t->min, $t->sammelklausur);
}
}
diff --git a/cis/private/lehre/pruefung/pruefungstermin_festlegen.php b/cis/private/lehre/pruefung/pruefungstermin_festlegen.php
index 15e8eab88..bfc11ec1f 100644
--- a/cis/private/lehre/pruefung/pruefungstermin_festlegen.php
+++ b/cis/private/lehre/pruefung/pruefungstermin_festlegen.php
@@ -247,6 +247,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
bis |
min. Teilnehmer |
max. Teilnehmer |
+ Sammelklausur |
|
@@ -267,6 +268,12 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
+
+
+ |
+
+
+ |
diff --git a/include/pruefungCis.class.php b/include/pruefungCis.class.php
index 75821ad14..3e02e48c6 100644
--- a/include/pruefungCis.class.php
+++ b/include/pruefungCis.class.php
@@ -200,7 +200,7 @@ class pruefungCis extends basis_db
}
foreach ($this->termine as $termin)
{
- if(!$this->saveTerminPruefung($this->pruefung_id, $termin->beginn, $termin->ende, $termin->max, $termin->min))
+ if(!$this->saveTerminPruefung($this->pruefung_id, $termin->beginn, $termin->ende, $termin->max, $termin->min, $termin->sammelklausur))
{
$this->errormsg = 'Fehler beim Speichern der Termine.';
$this->db_query('ROLLBACK');
@@ -417,7 +417,7 @@ class pruefungCis extends basis_db
* @param type $min minimale Teilnehmerzahl
* @return boolean true, wenn ok; false im Fehlerfall
*/
- public function saveTerminPruefung($pruefung_id, $beginn, $ende, $max, $min)
+ public function saveTerminPruefung($pruefung_id, $beginn, $ende, $max, $min, $sammelklausur)
{
if(!is_numeric($pruefung_id))
{
@@ -425,12 +425,13 @@ class pruefungCis extends basis_db
return false;
}
- $qry = 'INSERT INTO campus.tbl_pruefungstermin (pruefung_id, von, bis, teilnehmer_max, teilnehmer_min) VALUES ('
+ $qry = 'INSERT INTO campus.tbl_pruefungstermin (pruefung_id, von, bis, teilnehmer_max, teilnehmer_min, sammelklausur) VALUES ('
. $this->db_add_param($pruefung_id).', '
. $this->db_add_param($beginn).', '
. $this->db_add_param($ende).', '
. $this->db_add_param($max).', '
- . $this->db_add_param($min).');';
+ . $this->db_add_param($min).', '
+ . $this->db_add_param($sammelklausur).');';
if(!$this->db_query($qry))
{
@@ -462,6 +463,7 @@ class pruefungCis extends basis_db
$obj->anmeldung_von= $row->anmeldung_von;
$obj->anmeldung_bis = $row->anmeldung_bis;
$obj->ort_kurzbz = $row->ort_kurzbz;
+ $obj->sammelklausur = $row->sammelklausur;
array_push($this->termine, $obj);
}
return true;
diff --git a/include/pruefungstermin.class.php b/include/pruefungstermin.class.php
index 9b5817c75..c3ff1badb 100644
--- a/include/pruefungstermin.class.php
+++ b/include/pruefungstermin.class.php
@@ -37,6 +37,7 @@ class pruefungstermin extends basis_db{
public $anmeldung_von; //date
public $anmeldung_bis; //date
public $ort_kurzbz; //varchar(16)
+ public $sammelklausur; //boolean
/**
* Konstruktor
@@ -92,6 +93,7 @@ class pruefungstermin extends basis_db{
$this->anmeldung_von= $row->anmeldung_von;
$this->anmeldung_bis = $row->anmeldung_bis;
$this->ort_kurzbz = $row->ort_kurzbz;
+ $this->sammelklausur = $row->sammelklausur;
}
return true;
}
@@ -185,4 +187,54 @@ class pruefungstermin extends basis_db{
return false;
}
+
+ /**
+ * lädt alle Prüfungstermine
+ */
+ public function getAll($beginn=NULL, $ende=NULL, $sammelklausur=NULL)
+ {
+ $qry = 'SELECT * FROM campus.tbl_pruefungstermin';
+
+ if(!is_null($beginn) && !is_null($ende))
+ {
+ $qry .= ' WHERE von <='.$this->db_add_param($beginn).' '
+ . 'AND bis >='.$this->db_add_param($ende);
+ }
+ if(!is_null($sammelklausur) && !is_null($beginn))
+ {
+ $qry .= ' AND sammelklausur='.$this->db_add_param($sammelklausur);
+ }
+ else
+ {
+ $qry .= ' WHERE sammelklausur='.$this->db_add_param($sammelklausur);
+ }
+
+ $qry .= ';';
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new stdClass();
+ $obj->pruefungstermin_id = $row->pruefungstermin_id;
+ $obj->pruefung_id = $row->pruefung_id;
+ $obj->von = $row->von;
+ $obj->bis = $row->bis;
+ $obj->teilnehmer_max = $row->teilnehmer_max;
+ $obj->teilnehmer_min = $row->teilnehmer_min;
+ $obj->anmeldung_von= $row->anmeldung_von;
+ $obj->anmeldung_bis = $row->anmeldung_bis;
+ $obj->ort_kurzbz = $row->ort_kurzbz;
+ $obj->sammelklausur = $row->sammelklausur;
+ array_push($this->result, $obj);
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Termine konnten nicht geladen werden.';
+ return false;
+ }
+
+ }
}