Preparation for change in Pruefungsanmeldung

This commit is contained in:
Stefan Puraner
2015-06-01 09:40:30 +02:00
parent e2afff0a0b
commit d51cf69035
4 changed files with 202 additions and 61 deletions
+26 -2
View File
@@ -425,6 +425,27 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t
$("#terminHidden").val(termin_id);
$("#lehrveranstaltung").html(lvBezeichnung);
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getLvKompatibel",
lehrveranstaltung_id: lehrveranstaltung_id
},
error: loadError
}).success(function(data){
var html = "";
data.result.forEach(function(v, i){
console.log(i);
console.log(v);
html += '<option id="'+v.lehrveranstaltung_id+'" value="'+v.lehrveranstaltung_id+'">';
html += v.bezeichnung;
html += "</option>";
});
$("#studienverpflichtung").html(html);
});
var start = terminVon;
var ende = terminBis;
start = start.split(' ');
@@ -462,6 +483,9 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
if(bemerkungen === undefined)
bemerkungen = "von Lektor hinzugefügt";
var studienverpflichtung_id = $("#studienverpflichtung option:selected").val();
console.log(studienverpflichtung_id);
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
@@ -471,7 +495,8 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
termin_id: termin_id,
lehrveranstaltung_id: lehrveranstaltung_id,
bemerkung: bemerkungen,
uid: uid
uid: uid,
studienverpflichtung_id: studienverpflichtung_id
},
error: loadError
}).success(function(data){
@@ -894,7 +919,6 @@ function loadPruefungStudiengang(studiengang_kz, studiensemester)
{
var liste = "";
data.result.forEach(function(e){
console.log(e);
liste += "<ul><li>"+e.bezeichnung+"<ul>";
e.pruefung[0].termine.forEach(function(d){
liste += "<li> <a onclick='showAnmeldungen(\""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung_id+"\");'>"+convertDateTime(d.von)+" "+convertDateTime(d.von, "time")+" - "+convertDateTime(d.bis, "time")+"</a></li>";
@@ -28,8 +28,13 @@ require_once('../../../../include/pruefungsfenster.class.php');
require_once('../../../../include/note.class.php');
require_once('../../../../include/addon.class.php');
require_once('../../../../include/mail.class.php');
require_once('../../../../include/anrechnung.class.php');
require_once('../../../../include/prestudent.class.php');
require_once('../../../../include/person.class.php');
$uid = get_uid();
//TODO
$uid = "p20132443";
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
@@ -106,6 +111,10 @@ switch($method)
$ort_kurzbz = $_REQUEST["ort_kurzbz"];
$data = saveRaum($terminId, $ort_kurzbz, $uid);
break;
case 'getLvKompatibel':
$lvid = filter_input(INPUT_POST, "lehrveranstaltung_id");
$data = getLvKompatibel($lvid);
break;
default:
break;
}
@@ -360,6 +369,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$studiensemester = new studiensemester();
$stdsem = $studiensemester->getLastOrAktSemester(0);
$lv_besucht = false;
$studienverpflichtung_id = filter_input(INPUT_POST, "studienverpflichtung_id");
//Defaulteinstellung für Anzahlprüfungsversuche (wird durch Addon "ktu" überschrieben)
$maxAnzahlVersuche = 0;
@@ -506,34 +516,85 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$data['errormsg']='Anmeldung auf Grund von Sperre nicht möglich.';
return $data;
}
if($anmeldung->save(true))
$anrechnung = new anrechnung();
$lv_komp = new lehrveranstaltung($studienverpflichtung_id);
$person = new person();
$person->getPersonFromBenutzer($uid);
$prestudent = new prestudent();
$prestudent->getPrestudenten($person->person_id);
if(count($prestudent->result) > 0)
{
$pruefung = new pruefungCis($termin->pruefung_id);
if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== ""))
$to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN;
$prestudent_id = "";
foreach($prestudent->result as $ps)
{
if($ps->getLaststatus($ps->prestudent_id, $stdsem))
{
if(($ps->status_kurzbz == "Student"))
{
$prestudent_id = $ps->prestudent_id;
}
}
}
if($prestudent_id != "")
{
$anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id;
$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->new = true;
if($anrechnung->save())
{
if($anmeldung->save(true))
{
$pruefung = new pruefungCis($termin->pruefung_id);
if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== ""))
$to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN;
else
$to = $pruefung->mitarbeiter_uid."@".DOMAIN;
$from = "noreply@".DOMAIN;
$subject = "Anmeldung zur Prüfung";
$mail = new mail($to, $from, $subject, "Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.");
$student = new student($uid);
$datum = new datum();
$lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id);
$html = "StudentIn ".$student->vorname." ".$student->nachname." hat sich zur Prüfung ".$lv->bezeichnung." am ".$datum->formatDatum($termin->von, "m.d.Y")." von ".$datum->formatDatum($termin->von,"h:i")." Uhr bis ".$datum->formatDatum($termin->bis,"h:i")." Uhr angemeldet.";
$mail->setHTMLContent($html);
$mail->send();
$data['result'] = "Anmeldung erfolgreich!";
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['error']='true';
$data['errormsg']=$anmeldung->errormsg;
}
}
else
{
$data['error']='true';
$data['errormsg']=$anrechnung->errormsg;
}
}
else
$to = $pruefung->mitarbeiter_uid."@".DOMAIN;
$from = "noreply@".DOMAIN;
$subject = "Anmeldung zur Prüfung";
$mail = new mail($to, $from, $subject, "Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.");
$student = new student($uid);
$datum = new datum();
$lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id);
$html = "StudentIn ".$student->vorname." ".$student->nachname." hat sich zur Prüfung ".$lv->bezeichnung." am ".$datum->formatDatum($termin->von, "m.d.Y")." von ".$datum->formatDatum($termin->von,"h:i")." Uhr bis ".$datum->formatDatum($termin->bis,"h:i")." Uhr angemeldet.";
$mail->setHTMLContent($html);
$mail->send();
$data['result'] = "Anmeldung erfolgreich!";
$data['error']='false';
$data['errormsg']='';
{
$data['error']='true';
$data['errormsg']="Prestudent nicht gefunden.";
}
}
else
{
$data['error']='true';
$data['errormsg']=$anmeldung->errormsg;
$data['errormsg']="Prestudent nicht gefunden.";
}
return $data;
}
@@ -980,4 +1041,22 @@ function saveRaum($terminId, $ort_kurzbz, $uid)
}
return $data;
}
function getLvKompatibel($lvid)
{
$lv = new lehrveranstaltung();
if($lv->getLVkompatibel($lvid))
{
$data['result']=$lv->lehrveranstaltungen;
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['result']="";
$data['error']='true';
$data['errormsg']=$lv->errormsg;
}
return $data;
}
?>
@@ -32,6 +32,9 @@ require_once('../../../../include/student.class.php');
$uid = get_uid();
//TODO
$uid = "p20132443";
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
@@ -142,7 +145,7 @@ $studiensemester->getAll();
$("#saveDialog").dialog({
modal: true,
autoOpen: false,
width: "400px"
width: "auto"
});
$("#dialog").dialog({ autoOpen: false });
@@ -284,6 +287,12 @@ $studiensemester->getAll();
<span type="text" id="terminBis" disabled="true"></span>
</td>
</tr>
<tr>
<td style="vertical-align: top; font-weight: bold;">Studienverpflichtung:* </td>
<td>
<select id="studienverpflichtung"></select>
</td>
</tr>
<tr>
<td style="vertical-align: top; font-weight: bold;">Bemerkung: </td>
<td>
+65 -36
View File
@@ -39,6 +39,8 @@ class anrechnung extends basis_db
public $updateamum; // timestamp
public $updatevon; // varchar(32)
public $begruendungen = array();
public function validate()
{
if(!is_numeric($this->prestudent_id))
@@ -124,45 +126,46 @@ class anrechnung extends basis_db
*/
public function save()
{
if(!$this->validate())
return false;
if($this->new == "1")
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).', '.
// 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->updatevon).');';
$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);
}
if($this->db_query($qry))
else
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Anrechnung: '.$this->db_last_error();
return false;
}
// 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();
return false;
}
}
/**
@@ -252,8 +255,34 @@ class anrechnung extends basis_db
}
else
{
$this->errormsg = 'Daten konnten nicht geladen werden';
$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;
}
else
{
$this->errormsg = 'Daten konnten nicht geladen werden';
return false;
}
}
}