diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index bae271ea0..6725f04f6 100644 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -38,23 +38,7 @@ require_once('../../../include/datum.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/note.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); - -echo ' - - - - Studienplan - - - - - -'; +require_once('../../../include/benutzergruppe.class.php'); $uid = get_uid(); @@ -68,6 +52,125 @@ if(isset($_GET['uid'])) die('Keine Berechtigung für UID übergabe'); } $p = new phrasen(getSprache()); +$datum_obj = new datum(); +$db = new basis_db(); + +if(isset($_GET['getAnmeldung'])) +{ + $lehrveranstaltung_id=$_GET['lehrveranstaltung_id']; + $stsem = $_GET['stsem']; + + echo $p->t('studienplan/LehrveranstalungWaehlen').' +
+ + '; + $lehrveranstaltung = new lehrveranstaltung(); + if($kompatibel = $lehrveranstaltung->loadLVkompatibel($lehrveranstaltung_id)) + { + $anzahl=0; + foreach($kompatibel as $lvid) + { + $lvangebot = new lvangebot(); + $lvangebot->getAllFromLvId($lvid, $stsem); + if(isset($lvangebot->result[0])) + { + $lv = new lehrveranstaltung(); + $lv->load($lvid); + + $angebot = $lvangebot->result[0]; + if($angebot->AnmeldungMoeglich()) + { + $anzahl++; + // LV wird angeboten und Anmeldefenster ist offen + + $bngruppe = new benutzergruppe(); + if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem)) + echo '
'.$lv->bezeichnung; + else + { + // Bereits angemeldet + echo '
'.$lv->bezeichnung.' - Bereits angemeldet'; + } + } + else + { + // LV wird angeboten, Anmeldefenster ist aber nicht offen + echo '
'.$lv->bezeichnung.' - '.$angebot->errormsg.''; + } + } + } + } + if($anzahl>0) + echo '

'; + else + echo '

'.$p->t('studienplan/AnmeldungDerzeitNichtMoeglich'); + exit(); +} +echo ' + + + + Studienplan + + + + + + + + + +
Anmeldung
+'; + +if(isset($_POST['action']) && $_POST['action']=='anmeldung') +{ + $lehrveranstaltung_id = $_POST['lv']; + $stsem = $_POST['stsem']; + + $lvangebot = new lvangebot(); + $lvangebot->getAllFromLvId($lehrveranstaltung_id, $stsem); + + if(isset($lvangebot->result[0])) + { + if($lvangebot->result[0]->AnmeldungMoeglich()) + { + // Benutzer einschreiben + //echo "Anmeldung zur LV: ".$_POST['lv'].$_POST['stsem']; + $bngruppe = new benutzergruppe(); + + if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem)) + { + $bngruppe->uid = $uid; + $bngruppe->gruppe_kurzbz = $lvangebot->result[0]->gruppe_kurzbz; + $bngruppe->studiensemester_kurzbz = $stsem; + $bngruppe->new=true; + if($bngruppe->save()) + { + echo 'Sie wurden erfolgreich in die Lehrveranstaltung eingeschrieben'; + } + } + else + { + echo 'Sie sind bereits zu dieser Lehrveranstaltung angemeldet'.$uid.'/'.$lvangebot->result[0]->gruppe_kurzbz.'/'.$stsem.' '.$bngruppe->errormsg.''; + } + } + else + echo $lvangebot->result[0]->errormsg; + } + else + echo 'Keine Anmeldung moeglich'; +} $db = new basis_db(); $datum_obj = new datum(); @@ -83,8 +186,10 @@ $studiensemester_start = $prestudent->studiensemester_kurzbz; $ausbildungssemester_start = $prestudent->ausbildungssemester; $orgform_kurzbz = $prestudent->orgform_kurzbz; +$prestudent->getLastStatus($student->prestudent_id, 'Student'); +$studienplan_id = $prestudent->studienplan_id; + $studienplan = new studienplan(); -$studienplan_id = $studienplan->getStudienplan($student->studiengang_kz, $studiensemester_start, $ausbildungssemester_start, $orgform_kurzbz); $studienplan->loadStudienplan($studienplan_id); // Studienplan laden @@ -124,7 +229,7 @@ foreach($note->result as $row_note) // LV Angebot holen $lvangebot_arr = array(); $lvangebot = new lvangebot(); -$lvangebot->getLVAngebotFromStudienplan($studienplan_id, $stsem_arr); +$lvangebot->getLVAngebotFromStudienplan($studienplan_id, $stsem_arr,true); foreach($lvangebot->result as $row_lvangebot) $lvangebot_arr[$row_lvangebot->lehrveranstaltung_id][$row_lvangebot->studiensemester_kurzbz]=$row_lvangebot; @@ -135,7 +240,7 @@ $lv->loadLehrveranstaltungStudienplan($studienplan_id); foreach($lv->lehrveranstaltungen as $row_lva) $lv_arr[$row_lva->lehrveranstaltung_id]=$row_lva; -echo '

'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $student->vorname $student->nachname

"; +echo '

'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $student->vorname $student->nachname ( $student->uid )

"; echo ' @@ -163,15 +268,31 @@ function drawTree($tree, $depth) foreach($tree as $row_tree) { - echo ''; + echo "\n"; echo ''; // ECTS Punkte @@ -190,6 +311,7 @@ function drawTree($tree, $depth) if($note_pruef_arr[$note]->positiv) $positiv=true; } + if($positiv) echo ''.$p->t('studienplan/abgeschlossen').''; else @@ -197,7 +319,10 @@ function drawTree($tree, $depth) } else { - echo ''.$p->t('studienplan/offen').''; + if(!$row_tree->stpllv_pflicht) + echo ''.$p->t('studienplan/optional').''; + else + echo ''.$p->t('studienplan/offen').''; } echo ''; @@ -228,56 +353,83 @@ function drawTree($tree, $depth) } else { - // Angebot der LV pruefen - if(isset($lvangebot_arr[$row_tree->lehrveranstaltung_id]) - && isset($lvangebot_arr[$row_tree->lehrveranstaltung_id][$stsem])) - { - // LV findet statt - $angebot = $lvangebot_arr[$row_tree->lehrveranstaltung_id][$stsem]; + // Angebot der LV und der Kompatiblen pruefen + $anmeldungmoeglich=false; + $angemeldet=false; + $semesterlock=false; + $regelerfuellt=true; + $anmeldeinformation=''; + $angebot_vorhanden=false; - // Pruefen ob eine Anmeldung möglich ist - $anmeldungmoeglich=true; + // Regeln Pruefen + $lvregel = new lvregel(); - // Anmelde Zeitfenster pruefen - if(!$datum_obj->between($angebot->anmeldefenster_start, $angebot->anmeldefenster_ende, date('Y-m-d H:i:s'))) - { - $anmeldeinformation=$p->t('studienplan/anmeldungvonbis',array($datum_obj->formatDatum($angebot->anmeldefenster_start,'d.m.Y H:i'),$datum_obj->formatDatum($angebot->anmeldefenster_ende,'d.m.Y H:i'))); - $anmeldungmoeglich=false; - } - - if($anmeldungmoeglich) - { - // Regeln Pruefen - $lvregel = new lvregel(); - - // Pruefen ob Semestersperre vorhanden ist - if(!$lvregel->checkSemester($row_tree->studienplan_lehrveranstaltung_id, $semester)) - { - echo ''; - } - else - { - if($lvregel->isZugangsberechtigt($uid, $row_tree->studienplan_lehrveranstaltung_id, $stsem)) - { - echo ''.$p->t('studienplan/anmelden').''; - } - else - { - // LV wird angeboten, Regeln für Anmeldung nicht erfüllt - echo 'X'; - } - } - } - else - { - // LV wird angeboten - Anmeldung aber noch nicht moeglich - echo 'X'; - } + // Pruefen ob Semestersperre vorhanden ist + if(!$lvregel->checkSemester($row_tree->studienplan_lehrveranstaltung_id, $semester)) + { + $semesterlock=true; } else { - // LV wird in diesem Studiensemester nicht angeboten - echo '-'; + if(!$lvregel->isZugangsberechtigt($uid, $row_tree->studienplan_lehrveranstaltung_id, $stsem)) + { + $regelerfuellt=false; + } + } + + foreach($lvkompatibel_arr as $row_lvid) + { + // Angebot der LV pruefen + if(isset($lvangebot_arr[$row_lvid]) + && isset($lvangebot_arr[$row_lvid][$stsem])) + { + $angebot_vorhanden=true; + // LV findet statt + $angebot = $lvangebot_arr[$row_lvid][$stsem]; + + if($angebot->gruppe_kurzbz!='') + { + // Pruefen ob bereits angemeldet + $bngruppe = new benutzergruppe(); + if($bngruppe->load($uid, $angebot->gruppe_kurzbz, $stsem)) + { + // Bereits angemeldet + $angemeldet=true; + } + } + + // Pruefen ob eine Anmeldung möglich ist + if($angebot->AnmeldungMoeglich()) + { + if(!$angemeldet) + $anmeldungmoeglich=true; + } + else + $anmeldeinformation.=$angebot->errormsg; + } + } + + if($semesterlock) + { + echo ''; + } + else + { + if($angebot_vorhanden) + { + if($anmeldungmoeglich) + echo ''.$p->t('studienplan/anmelden').''; + else + echo 'X'; + + if(!$regelerfuellt) + echo 'X'; + } + else + { + // LV wird nicht angeboten + echo '-'; + } } } echo ''; diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index b76df9ebc..7aa13e177 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -597,6 +597,7 @@ if(!$error) $prestd_neu->datum = date('Y-m-d'); $prestd_neu->ausbildungssemester = $sem; $prestd_neu->orgform_kurzbz = $prestd->orgform_kurzbz; + $prestd_neu->studienplan_id = $prestd->studienplan_id; $prestd_neu->insertamum = date('Y-m-d H:i:s'); $prestd_neu->insertvon = $user; $prestd_neu->new = true; @@ -875,6 +876,7 @@ if(!$error) $rolle->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; $rolle->datum = $_POST['datum']; $rolle->orgform_kurzbz = $_POST['orgform_kurzbz']; + $rolle->studienplan_id = $_POST['studienplan_id']; if($rolle->save_rolle()) $return = true; @@ -1040,6 +1042,7 @@ if(!$error) $rolle->studiensemester_kurzbz = $hlp->result[0]->studiensemester_kurzbz; $rolle->ausbildungssemester = $hlp->result[0]->ausbildungssemester; $rolle->orgform_kurzbz = $hlp->result[0]->orgform_kurzbz; + $rolle->studienplan_id = $hlp->result[0]->studienplan_id; $rolle->datum = date('Y-m-d'); $rolle->insertamum = date('Y-m-d H:i:s'); $rolle->insertvon = $user; diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php index 1f065ed28..1037f2800 100644 --- a/content/student/studentdetailoverlay.xul.php +++ b/content/student/studentdetailoverlay.xul.php @@ -538,6 +538,14 @@ echo ''; class="sortDirectionIndicator" sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#prestudent_id" /> +
'; // Einrückung für Subtree for($i=0;$i<$depth;$i++) echo '    '; + $lvkompatibel = new lehrveranstaltung(); + $lvkompatibel_arr = $lvkompatibel->loadLVkompatibel($row_tree->lehrveranstaltung_id); + $lvkompatibel_arr[]=$row_tree->lehrveranstaltung_id; + + $lvregel = new lvregel(); + if($lvregel->exists($row_tree->studienplan_lehrveranstaltung_id)) + { + if($lvregel->isAbgeschlossen($uid, $row_tree->studienplan_lehrveranstaltung_id)) + echo ''; + else + echo ''; + } + else + echo ''; + // Bezeichnung der Lehrveranstaltung echo $row_tree->bezeichnung; + echo ''; echo '