Implementierung Sammelklausur

This commit is contained in:
Stefan Puraner
2015-01-09 07:41:04 +00:00
parent a881a5f477
commit ae9007d893
6 changed files with 100 additions and 8 deletions
+19 -2
View File
@@ -62,12 +62,12 @@ function terminHinzufuegen(htmlTag)
{
case 'input':
var count = $("#prfTermin tr").length+1;
$("#prfTermin").append('<tr id="row'+count+'"><td><input type="text" id="termin'+count+'" name="termin[]"></td><td><input type="time" id="termin'+count+'Beginn" placeholder="00:00" name="termin'+count+'Beginn[]"></td><td><input type="time" id="termin'+count+'Ende" placeholder="00:00" name="termin'+count+'Ende[]"></td><td><input type="number" id="termin'+count+'min" placeholder="0" min="0" name="termin'+count+'minTeilnehmer[]"></td><td><input type="number" id="termin'+count+'max" placeholder="10" min="0" name="termin'+count+'maxTeilnehmer[]"></td></tr>');
$("#prfTermin").append('<tr id="row'+count+'"><td><input type="text" id="termin'+count+'" name="termin[]"></td><td><input type="time" id="termin'+count+'Beginn" placeholder="00:00" name="termin'+count+'Beginn[]"></td><td><input type="time" id="termin'+count+'Ende" placeholder="00:00" name="termin'+count+'Ende[]"></td><td><input type="number" id="termin'+count+'min" placeholder="0" min="0" name="termin'+count+'minTeilnehmer[]"></td><td><input type="number" id="termin'+count+'max" placeholder="10" min="0" name="termin'+count+'maxTeilnehmer[]"></td><td><input id="termin'+count+'sammelklausur" type="checkbox" name="sammelklausur"></td></tr>');
setDatePicker();
break;
case 'span':
var count = $("#prfTermin tr").length+1;
$("#prfTermin").append('<tr id="row'+count+'"><td><span style="visibility: hidden;" id="termin'+count+'Id"></span><span id="termin'+count+'" name="termin[]"></span></td><td><span id="termin'+count+'Beginn" name="termin'+count+'Beginn[]"></span></td><td><span id="termin'+count+'Ende" name="termin'+count+'Ende[]"></span></td><td><span id="termin'+count+'min" name="termin'+count+'minTeilnehmer[]"></span></td><td><span id="termin'+count+'max" name="termin'+count+'maxTeilnehmer[]"></span></td></tr>');
$("#prfTermin").append('<tr id="row'+count+'"><td><span style="visibility: hidden;" id="termin'+count+'Id"></span><span id="termin'+count+'" name="termin[]"></span></td><td><span id="termin'+count+'Beginn" name="termin'+count+'Beginn[]"></span></td><td><span id="termin'+count+'Ende" name="termin'+count+'Ende[]"></span></td><td><span id="termin'+count+'min" name="termin'+count+'minTeilnehmer[]"></span></td><td><span id="termin'+count+'max" name="termin'+count+'maxTeilnehmer[]"></span></td><td><span id="termin'+count+'sammelklausur" name="termin'+count+'sammelklausur"></td></tr>');
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("<td><a href='#' onclick='terminLoeschen(\""+d.pruefung.pruefung_id+"\", \""+t.pruefungstermin_id+"\");'>löschen</a></td>");
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))
@@ -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);
@@ -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);
}
}
@@ -247,6 +247,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
<th>bis</th>
<th>min. Teilnehmer</th>
<th>max. Teilnehmer</th>
<th>Sammelklausur</th>
<th></th>
</tr>
</thead>
@@ -267,6 +268,12 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
<td>
<input type="number" id="termin1max" placeholder="10" min="0" name="termin1maxTeilnehmer[]">
</td>
<td>
<input type="number" id="termin1max" placeholder="10" min="0" name="termin1maxTeilnehmer[]">
</td>
<td>
<input id="termin1sammelklausur" type="checkbox" name="sammelklausur">
</td>
</tr>
</tbody>
</table>
+6 -4
View File
@@ -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;
+52
View File
@@ -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;
}
}
}