mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
fixed selection of studienverpflichtung at registration for exam
This commit is contained in:
@@ -446,6 +446,34 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t
|
||||
});
|
||||
$("#studienverpflichtung").html(html);
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getPrestudenten"
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data)
|
||||
{
|
||||
if(data.error !== false)
|
||||
{
|
||||
var html = "<select id='prestudent_studiengang' name='studiengang'>";
|
||||
//show if more than 1 active prestudent exists
|
||||
if(data.result.length > 1)
|
||||
{
|
||||
data.result.forEach(function(v,i){
|
||||
html += "<option value='"+v.studiengang_kz+"'>"+v.kuerzel+"</option>";
|
||||
});
|
||||
}
|
||||
html += "</select>";
|
||||
|
||||
console.log(html);
|
||||
|
||||
$("#studiengang").html("<td style='vertical-align: top; font-weight: bold;'><?php echo $p->t('pruefung/AnrechnungInStudiengang'); ?>:</td><td>"+html+"</td>");
|
||||
}
|
||||
});
|
||||
|
||||
var start = terminVon;
|
||||
var ende = terminBis;
|
||||
@@ -487,6 +515,10 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
var studienverpflichtung_id = null;
|
||||
if($("#studienverpflichtung").length)
|
||||
studienverpflichtung_id = $("#studienverpflichtung option:selected").val();
|
||||
|
||||
var studiengang_kz = null;
|
||||
if($('#prestudent_studiengang').length)
|
||||
studiengang_kz = $('#prestudent_studiengang option:selected').val();
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
@@ -498,7 +530,8 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
lehrveranstaltung_id: lehrveranstaltung_id,
|
||||
bemerkung: bemerkungen,
|
||||
uid: uid,
|
||||
studienverpflichtung_id: studienverpflichtung_id
|
||||
studienverpflichtung_id: studienverpflichtung_id,
|
||||
studiengang_kz: studiengang_kz
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
|
||||
@@ -491,6 +491,32 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t
|
||||
$("#studienverpflichtung").html(html);
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getPrestudenten"
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data)
|
||||
{
|
||||
if(data.error !== false)
|
||||
{
|
||||
//show if more than 1 active prestudent exists
|
||||
if(data.result.length > 1)
|
||||
{
|
||||
var html = "<select id='prestudent_studiengang' name='studiengang'>";
|
||||
data.result.forEach(function(v,i){
|
||||
html += "<option value='"+v.studiengang_kz+"'>"+v.kuerzel+"</option>";
|
||||
});
|
||||
html += "</select>";
|
||||
|
||||
$("#studiengang").html("<td style='vertical-align: top; font-weight: bold;'><?php echo $p->t('pruefung/AnrechnungInStudiengang'); ?>:</td><td>"+html+"</td>");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var start = terminVon;
|
||||
var ende = terminBis;
|
||||
start = start.split(' ');
|
||||
@@ -532,6 +558,10 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
if($("#studienverpflichtung").length)
|
||||
studienverpflichtung_id = $("#studienverpflichtung option:selected").val();
|
||||
|
||||
var studiengang_kz = null;
|
||||
if($('#prestudent_studiengang').length)
|
||||
studiengang_kz = $('#prestudent_studiengang option:selected').val();
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
@@ -542,7 +572,8 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
lehrveranstaltung_id: lehrveranstaltung_id,
|
||||
bemerkung: bemerkungen,
|
||||
uid: uid,
|
||||
studienverpflichtung_id: studienverpflichtung_id
|
||||
studienverpflichtung_id: studienverpflichtung_id,
|
||||
studiengang_kz: studiengang_kz
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
|
||||
@@ -41,6 +41,7 @@ $lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
$uid = "p20110133";
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
@@ -120,6 +121,9 @@ switch($method)
|
||||
$lvid = filter_input(INPUT_POST, "lehrveranstaltung_id");
|
||||
$data = getLvKompatibel($lvid);
|
||||
break;
|
||||
case 'getPrestudenten':
|
||||
$data = getPrestudenten($uid, $aktStudiensemester);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -376,6 +380,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$stdsem = $studiensemester->getLastOrAktSemester(0);
|
||||
$lv_besucht = false;
|
||||
$studienverpflichtung_id = filter_input(INPUT_POST, "studienverpflichtung_id");
|
||||
$studiengang_kz = filter_input(INPUT_POST, "studiengang_kz");
|
||||
|
||||
//Defaulteinstellung für Anzahlprüfungsversuche (wird durch Addon "ktu" überschrieben)
|
||||
$maxAnzahlVersuche = 0;
|
||||
@@ -583,6 +588,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
|
||||
$anrechnung = new anrechnung();
|
||||
$lv_komp = new lehrveranstaltung($studienverpflichtung_id);
|
||||
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
|
||||
$person = new person();
|
||||
$person->getPersonFromBenutzer($uid);
|
||||
$prestudent = new prestudent();
|
||||
@@ -592,39 +598,92 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
if ($aktStudiensemester)
|
||||
$stdsem = $aktStudiensemester;
|
||||
|
||||
if(count($prestudent->result) > 0)
|
||||
$prestudenten = array();
|
||||
|
||||
foreach ($prestudent->result as $ps)
|
||||
{
|
||||
$prestudent_id = "";
|
||||
foreach($prestudent->result as $ps)
|
||||
{
|
||||
if($ps->getLaststatus($ps->prestudent_id, $stdsem))
|
||||
{
|
||||
if(($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if(($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if(($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
array_push($prestudenten, $ps);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count($prestudenten) > 0)
|
||||
{
|
||||
$prestudent_id = "";
|
||||
if (count($prestudenten) != 1)
|
||||
{
|
||||
foreach ($prestudenten as $ps)
|
||||
{
|
||||
if($ps->studiengang_kz === $studiengang_kz)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ($prestudenten as $ps)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($prestudent_id != "")
|
||||
{
|
||||
$anrechungSaveResult = false;
|
||||
@@ -1165,18 +1224,54 @@ function saveRaum($terminId, $ort_kurzbz, $uid)
|
||||
function getLvKompatibel($lvid)
|
||||
{
|
||||
$lv = new lehrveranstaltung();
|
||||
if($lv->getLVkompatibel($lvid))
|
||||
if($lv->getLVkompatibelTo($lvid))
|
||||
{
|
||||
$data['result']=$lv->lehrveranstaltungen;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
$data['result']=$lv->lehrveranstaltungen;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['result']="";
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$lv->errormsg;
|
||||
$data['result']="";
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$lv->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function getPrestudenten($uid, $aktStudiensemester)
|
||||
{
|
||||
$person = new person();
|
||||
$person->getPersonFromBenutzer($uid);
|
||||
$prestudent = new prestudent();
|
||||
$prestudent->getPrestudenten($person->person_id);
|
||||
$result = array();
|
||||
|
||||
if (count($prestudent->result) > 0)
|
||||
{
|
||||
foreach ($prestudent->result as $key=>$ps)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id))
|
||||
{
|
||||
if(($ps->status_kurzbz === 'Student') || ($ps->status_kurzbz == 'Unterbrecher'))
|
||||
{
|
||||
$studiengang = new studiengang($ps->studiengang_kz);
|
||||
array_push($result, $studiengang);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$data['result']=$result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['result']="";
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$lv->errormsg;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -40,6 +40,17 @@ $p = new phrasen($sprache);
|
||||
//TODO
|
||||
$uid = get_uid();
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um den Studienplan
|
||||
// von anderen Personen anzuzeigen
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
$uid=$_GET['uid'];
|
||||
}
|
||||
|
||||
$db = new basis_db();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
@@ -302,6 +313,9 @@ $studiensemester->getAll();
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr id="studiengang">
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/anmerkung'); ?>: </td>
|
||||
<td>
|
||||
|
||||
@@ -1592,6 +1592,75 @@ class lehrveranstaltung extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Lehrveranstaltungen zu denen die übergebene LV ID kompatibel ist
|
||||
* @param $lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
*/
|
||||
public function getLVkompatibelTo($lehrveranstaltung_id)
|
||||
{
|
||||
if (!is_numeric($lehrveranstaltung_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id IN (
|
||||
SELECT lehrveranstaltung_id
|
||||
FROM lehre.tbl_lehrveranstaltung_kompatibel
|
||||
WHERE lehrveranstaltung_id_kompatibel=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).");";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
|
||||
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$lv_obj->studiengang_kz = $row->studiengang_kz;
|
||||
$lv_obj->bezeichnung = $row->bezeichnung;
|
||||
$lv_obj->kurzbz = $row->kurzbz;
|
||||
$lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz;
|
||||
$lv_obj->semester = $row->semester;
|
||||
$lv_obj->ects = $row->ects;
|
||||
$lv_obj->semesterstunden = $row->semesterstunden;
|
||||
$lv_obj->anmerkung = $row->anmerkung;
|
||||
$lv_obj->lehre = $this->db_parse_bool($row->lehre);
|
||||
$lv_obj->lehreverzeichnis = $row->lehreverzeichnis;
|
||||
$lv_obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$lv_obj->ext_id = $row->ext_id;
|
||||
$lv_obj->insertamum = $row->insertamum;
|
||||
$lv_obj->insertvon = $row->insertvon;
|
||||
$lv_obj->planfaktor = $row->planfaktor;
|
||||
$lv_obj->planlektoren = $row->planlektoren;
|
||||
$lv_obj->planpersonalkosten = $row->planpersonalkosten;
|
||||
$lv_obj->plankostenprolektor = $row->plankostenprolektor;
|
||||
$lv_obj->updateamum = $row->updateamum;
|
||||
$lv_obj->updatevon = $row->updatevon;
|
||||
$lv_obj->sprache = $row->sprache;
|
||||
$lv_obj->sort = $row->sort;
|
||||
$lv_obj->incoming = $row->incoming;
|
||||
$lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis);
|
||||
$lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit);
|
||||
$lv_obj->koordinator = $row->koordinator;
|
||||
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
|
||||
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
$lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
if ($lv_obj->bezeichnung_arr['English'] == '')
|
||||
$lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German'];
|
||||
|
||||
$this->lehrveranstaltungen[] = $lv_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert eine Kombination aus LV und ihrer kompatiblen Lehrveranstaltung
|
||||
* @param $lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
|
||||
@@ -149,5 +149,7 @@ Die Prüfung zur LV %1$s wurde verschoben.
|
||||
Der neue Termin für die Prüfung ist am %2$s um %3$s Uhr.';
|
||||
$this->phrasen['pruefung/emailVerschiebungSubject'] = 'Verschiebung einer Prüfung';
|
||||
|
||||
$this->phrasen['pruefung/AnrechnungInStudiengang'] = 'Studiengang für Anrechnung';
|
||||
|
||||
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user