diff --git a/cis/private/lehre/abgabe_student.php b/cis/private/lehre/abgabe_student.php index f6c198edf..ca00560f7 100644 --- a/cis/private/lehre/abgabe_student.php +++ b/cis/private/lehre/abgabe_student.php @@ -42,6 +42,7 @@ $getuid=get_uid(); $uid=$getuid; $vorname=''; $nachname=''; +$htmlstr = ''; if(isset($_GET['uid'])) { @@ -54,7 +55,6 @@ if(isset($_GET['uid'])) $prestudent->getPrestudentsFromUid($uid); - $htmlstr = ''; $htmlstr .= "
\n"; $htmlstr .= "\n"; @@ -170,8 +170,8 @@ if(isset($_GET['uid'])) } } } + $htmlstr .= "
\n"; } -$htmlstr .= "\n"; echo ' diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index 445393e6f..2af505f60 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -29,6 +29,7 @@ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/studiengang.class.php'); +require_once('../../../include/prestudent.class.php'); require_once('../../../include/student.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/mail.class.php'); @@ -111,26 +112,27 @@ $person = new person(); $person->load($bid); $betreuer = $person->titelpre.' '.$person->vorname.' '.$person->nachname.' '.$person->titelpost; +//Rechte Pruefen +$allowed=false; if($uid!=$user) { - $student = new student(); // TODO EINE - if(!$student->load($uid)) - die($p->t('global/userNichtGefunden')); - - $stg_obj = new studiengang(); - if(!$stg_obj->load($student->studiengang_kz)) + $prestudent = new prestudent(); + if(!$prestudent->getPrestudentsFromUid($uid)) die($p->t('global/fehlerBeimLesenAusDatenbank')); - + //Studentenansicht - //Rechte Pruefen - $allowed=false; - //Berechtigung ueber das Berechtigungssystem $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); - if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz, 's')) - $allowed=true; + foreach($prestudent->result as $ps) + { + $stg_obj = new studiengang(); + if(!$stg_obj->load($ps->studiengang_kz)) + die($p->t('global/fehlerBeimLesenAusDatenbank')); + if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz, 's')) + $allowed=true; + } //oder Lektor mit Betreuung dieses Studenten $qry = "SELECT 1 @@ -138,8 +140,9 @@ if($uid!=$user) lehre.tbl_projektarbeit JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id) + JOIN tbl_prestudent USING(prestudent_id) WHERE - tbl_projektarbeit.prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND + tbl_prestudent.uid=".$db->db_add_param($uid)." AND vw_benutzer.uid=".$db->db_add_param($user).";"; if($result = $db->db_query($qry)) @@ -150,17 +153,23 @@ if($uid!=$user) } } - if(!$allowed) - { - die($p->t('abgabetool/keineBerechtigungStudentenansicht')); - } -} +} else { - $student = new student($uid); // TODO EINE + $ps = new prestudent(); + $ps->getPrestudentsFromUid($uid); + foreach($ps->result as $p) + { + if($student->prestudent_id === $projektarbeit_obj->prestudent_id) + $allowed = true; + } +} - if($student->prestudent_id!=$projektarbeit_obj->prestudent_id) - die('Sie haben keine Berechtigung fuer diese Seite'); + + +if(!$allowed) +{ + die($p->t('abgabetool/keineBerechtigungStudentenansicht')); } echo ' diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php index 02998bc79..f84e44ad0 100644 --- a/cis/private/lehre/notenliste.php +++ b/cis/private/lehre/notenliste.php @@ -32,7 +32,7 @@ require_once('../../../include/studiensemester.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/note.class.php'); require_once('../../../include/phrasen.class.php'); -require_once('../../../include/student.class.php'); +require_once('../../../include/prestudent.class.php'); require_once('../../../include/studiengang.class.php'); require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/pruefung.class.php'); @@ -86,6 +86,14 @@ else $user = get_uid(); + +$prestudent_id = null; +if(isset($_GET['prestudent_id'])) +{ + $prestudent_id = $_GET['prestudent_id']; +} + + if(isset($_GET['uid'])) { // Administratoren duerfen die UID als Parameter uebergeben um die Notenliste @@ -146,168 +154,208 @@ else $stsem_obj->getAll(); - - echo "
"; - echo "".$p->t('global/name').": $vorname $nachname
"; - echo "".$p->t('global/studiengang').": $stg_name
"; - echo "".$p->t('global/studiensemester')." "; + echo ""; + + foreach ($prestudent->result as $pres) { - if($stsem == $semrow->studiensemester_kurzbz) - echo ""; - else - echo ""; + $studiengang = new studiengang($pres->studiengang_kz); + echo ""; } - echo "
"; + echo ""; - //echo "Datum: ".date('d.m.Y')."
"; - echo "
"; - - //Lehrveranstaltungen und Noten holen - if($stsem != "alle") - { - $sqlFilter = " AND tbl_zeugnisnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." - AND (tbl_lvgesamtnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." OR tbl_lvgesamtnote.studiensemester_kurzbz is null) "; - } - else - $sqlFilter = ""; - - $student = new student($user); // TODO EINE - - $qry = "SELECT - tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte, - tbl_lvgesamtnote.note as lvnote, tbl_lvgesamtnote.punkte as lvpunkte, - tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum, - tbl_lvgesamtnote.benotungsdatum as lvbenotungsdatum - FROM - lehre.tbl_lehrveranstaltung, lehre.tbl_zeugnisnote - LEFT OUTER JOIN - campus.tbl_lvgesamtnote - USING (lehrveranstaltung_id, student_uid, studiensemester_kurzbz) - WHERE - tbl_zeugnisnote.prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER) - .$sqlFilter." - AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_zeugnisnote.lehrveranstaltung_id - ORDER BY bezeichnung"; - - if($result=$db->db_query($qry)) + if(isset($prestudent_id)) { - //Tabelle anzeigen - $tbl= " - - - - "; - if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) - $tbl.=""; - - $tbl.=" "; - if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) - $tbl.=""; - - $tbl.=" - - - - - "; - $i=0; - $legende = false; - while($row=$db->db_fetch_object($result)) + $semester = array(); + $prestudent->result = array(); + $prestudent->getPrestudentRolle($prestudent_id); + foreach($prestudent->result as $rolle) { - $lv_obj = new lehrveranstaltung(); - $lv_obj->load($row->lehrveranstaltung_id); - - $i++; - $tbl.= ""; - $tbl.= ""; - - // LV Gesamtnote Punkte - if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) - { - $lvpunkte = ($row->lvpunkte!=''?(float)$row->lvpunkte:''); - $tbl.=""; - } - - if ($row->note != $row->lvnote && $row->lvnote != NULL) - { - $markier = " style='background-color: #FFD999;'"; - $legende=true; - } - else - $markier = ""; - $tbl .= ""; - - if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) - { - $punkte = ($row->punkte!=''?((float)$row->punkte):''); - $tbl.=""; - } - - $tbl .= ''; - - $student = new student($user); // TODO EINE - $pruefung = new pruefung(); - $pruefung->getPruefungen($student->prestudent_id, null,$row->lehrveranstaltung_id,$stsem); - - if(count($pruefung->result)>0) - { - $tbl.=''; - } - else - $tbl.=''; - - $tbl .= ""; } + echo "".$p->t('global/studiensemester').""; + echo ""; + + //echo "Datum: ".date('d.m.Y')."
"; + echo "
"; + + //Lehrveranstaltungen und Noten holen + if($stsem != "alle") + { + $sqlFilter = " AND tbl_zeugnisnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." + AND (tbl_lvgesamtnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." OR tbl_lvgesamtnote.studiensemester_kurzbz is null) "; + } + else + $sqlFilter = ""; + + + $qry = "SELECT + tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte, + tbl_lvgesamtnote.note as lvnote, tbl_lvgesamtnote.punkte as lvpunkte, + tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum, + tbl_lvgesamtnote.benotungsdatum as lvbenotungsdatum + FROM + lehre.tbl_lehrveranstaltung, lehre.tbl_zeugnisnote + LEFT OUTER JOIN + campus.tbl_lvgesamtnote + USING (lehrveranstaltung_id, prestudent_id, studiensemester_kurzbz) + JOIN tbl_prestudent USING(prestudent_id) + WHERE + tbl_prestudent.prestudent_id = ".$db->db_add_param($prestudent_id, FHC_INTEGER) + .$sqlFilter." + AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_zeugnisnote.lehrveranstaltung_id + ORDER BY bezeichnung"; + + if($result=$db->db_query($qry)) + { + //Tabelle anzeigen + $tbl= "
".$p->t('global/lehrveranstaltung')."".$p->t('benotungstool/lvNote')."".$p->t('benotungstool/punkte')."".$p->t('benotungstool/zeugnisnote')."".$p->t('benotungstool/punkte')."".$p->t('tools/benotungsdatumDerZeugnisnote')."".$p->t('benotungstool/pruefung')."
".$lv_obj->bezeichnung_arr[$sprache].($lv_obj->lehrform_kurzbz!="" && $lv_obj->lehrform_kurzbz!=" - "?" (".$lv_obj->lehrform_kurzbz.")":"").""; - - //Nur freigegebene Noten anzeigen - if($row->freigabedatum>=$row->lvbenotungsdatum) + if($rolle->status_kurzbz == "Student" || $rolle->status_kurzbz == "Absolvent" || $rolle->status_kurzbz == "Diplomand") { - if(isset($notenarr[$row->lvnote])) - $tbl.=$notenarr[$row->lvnote]; - else - $tbl.=$row->lvnote; + $semester[$rolle->studiensemester_kurzbz] = 1; } - - $tbl.= "".$lvpunkte.""; - - if(isset($notenarr[$row->note])) - $tbl.=$notenarr[$row->note]; - else - $tbl.=$row->note; - - $tbl .= "".$punkte."'.$datum_obj->formatDatum($row->benotungsdatum,'d.m.Y').''; - foreach($pruefung->result as $row) - { - if(isset($notenarr[$row->note])) - $note=$notenarr[$row->note]; - else - $note=$row->note; - - if($row->punkte!='') - $punkte = ' ('.(float)$row->punkte.')'; - else - $punkte=''; - - $tbl.= $row->pruefungstyp_beschreibung.' '.$datum_obj->formatDatum($row->datum,'d.m.Y').' '.$note.$punkte.'
'; - - } - $tbl.='
+ + + + "; + if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + $tbl.=""; + + $tbl.=" "; + if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + $tbl.=""; + + $tbl.=" + + + + + "; + $i=0; + $legende = false; + while($row=$db->db_fetch_object($result)) + { + $lv_obj = new lehrveranstaltung(); + $lv_obj->load($row->lehrveranstaltung_id); + + $i++; + $tbl.= ""; + $tbl.= ""; + + // LV Gesamtnote Punkte + if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + { + $lvpunkte = ($row->lvpunkte!=''?(float)$row->lvpunkte:''); + $tbl.=""; + } + + if ($row->note != $row->lvnote && $row->lvnote != NULL) + { + $markier = " style='background-color: #FFD999;'"; + $legende=true; + } + else + $markier = ""; + $tbl .= ""; + + if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + { + $punkte = ($row->punkte!=''?((float)$row->punkte):''); + $tbl.=""; + } + + $tbl .= ''; + + $pruefung = new pruefung(); + + $prestudent = new prestudent(); + $prestudent->getPrestudentsFromUid($user); + $pruefungen_arr = array(); + foreach($prestudent->result as $ps) + { + $pruefung->getPruefungen($ps->prestudent_id, null,$row->lehrveranstaltung_id,$stsem); + array_merge($pruefungen_arr, $pruefung->result); + } + + if(count($pruefungen_arr)>0) + { + $tbl.=''; + } + else + $tbl.=''; + + $tbl .= ""; + } - $tbl.= "
".$p->t('global/lehrveranstaltung')."".$p->t('benotungstool/lvNote')."".$p->t('benotungstool/punkte')."".$p->t('benotungstool/zeugnisnote')."".$p->t('benotungstool/punkte')."".$p->t('tools/benotungsdatumDerZeugnisnote')."".$p->t('benotungstool/pruefung')."
".$lv_obj->bezeichnung_arr[$sprache].($lv_obj->lehrform_kurzbz!="" && $lv_obj->lehrform_kurzbz!=" - "?" (".$lv_obj->lehrform_kurzbz.")":"").""; + + //Nur freigegebene Noten anzeigen + if($row->freigabedatum>=$row->lvbenotungsdatum) + { + if(isset($notenarr[$row->lvnote])) + $tbl.=$notenarr[$row->lvnote]; + else + $tbl.=$row->lvnote; + } + + $tbl.= "".$lvpunkte.""; + + if(isset($notenarr[$row->note])) + $tbl.=$notenarr[$row->note]; + else + $tbl.=$row->note; + + $tbl .= "".$punkte."'.$datum_obj->formatDatum($row->benotungsdatum,'d.m.Y').''; + foreach($pruefungen_arr as $row) + { + if(isset($notenarr[$row->note])) + $note=$notenarr[$row->note]; + else + $note=$row->note; + + if($row->punkte!='') + $punkte = ' ('.(float)$row->punkte.')'; + else + $punkte=''; + + $tbl.= $row->pruefungstyp_beschreibung.' '.$datum_obj->formatDatum($row->datum,'d.m.Y').' '.$note.$punkte.'
'; + + } + $tbl.='
"; + $tbl.= ""; - if($legende) - $tbl.= "
".$p->t('tools/hinweistextMarkierung')."
"; - if($i==0) - echo $p->t('tools/nochKeineBeurteilungEingetragen'); + if($legende) + $tbl.= "
".$p->t('tools/hinweistextMarkierung')."
"; + if($i==0) + echo $p->t('tools/nochKeineBeurteilungEingetragen'); + else + echo $tbl; + } else - echo $tbl; + { + $error .= $p->t('tools/fehlerBeimAuslesenDerNoten'); + } + } + echo ""; } else { - $error .= $p->t('tools/fehlerBeimAuslesenDerNoten'); + echo "
"; + echo $p->t("upload/keineStudiengaengeDefiniert"); + echo "
"; } } echo $error; diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index cd895e5d9..fbe066877 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -285,7 +285,7 @@ function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null) } $anmeldung = new pruefungsanmeldung(); - $anmeldungen = $anmeldung->getAnmeldungenByStudent($prestudent->uid, $aktStudiensemester); + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); foreach($anmeldungen as $anm) { @@ -526,7 +526,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; $anmeldung->wuensche = $_REQUEST["bemerkung"]; - $anmeldung->uid = $prestudent->uid; + $anmeldung->uid = $uid; $anmeldung->reihung = $reihung+1; $anmeldung->status_kurzbz = "angemeldet"; $anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz; @@ -545,7 +545,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } //Kollisionsprüfung - $anmeldungen = $anmeldung->getAnmeldungenByStudent($prestudent->uid, $aktStudiensemester); + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); foreach($anmeldungen as $temp) { $datum = new datum(); @@ -578,7 +578,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $anrechnung = new anrechnung(); $lv_komp = new lehrveranstaltung($studienverpflichtung_id); $person = new person(); - $person->getPersonFromBenutzer($prestudent->uid); + $person->getPersonFromBenutzer($uid); $prestudent = new prestudent(); $prestudent->getPrestudenten($person->person_id); @@ -598,7 +598,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) if($prestudent_id != "") { $anrechungSaveResult = false; - if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) + if((!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) && defined('CIS_PRUEFUNGSANMELDUNG_USER')) { $anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id; $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; diff --git a/cis/private/profile/dokumente.php b/cis/private/profile/dokumente.php index 53d479787..6c1ae5574 100755 --- a/cis/private/profile/dokumente.php +++ b/cis/private/profile/dokumente.php @@ -151,12 +151,12 @@ $stsem_obj = new studiensemester(); $stsem_obj->getAll(); -/*** dropdown fuer studiengang ***/ $prestudent = new prestudent(); $prestudent->getPrestudentsFromUid($uid); if(count($prestudent->result) > 0) { + /*** dropdown fuer studiengang ***/ echo "
"; echo "
"; echo "".$p->t('global/studiengang').""; diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 43edda8df..d9ca515f5 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -34,6 +34,7 @@ require_once('../../../include/lvregel.class.php'); require_once('../../../include/studiensemester.class.php'); require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/prestudent.class.php'); +require_once('../../../include/student.class.php'); require_once('../../../include/zeugnisnote.class.php'); require_once('../../../include/lvangebot.class.php'); require_once('../../../include/datum.class.php'); @@ -44,42 +45,49 @@ require_once('../../../include/benutzergruppe.class.php'); require_once('../../../include/konto.class.php'); require_once('../../../include/lvinfo.class.php'); require_once('../../../include/addon.class.php'); - +require_once('../../../include/anrechnung.class.php'); $uid = get_uid(); -// TODO EINE get_uid auf get_prestudent_id!?! -// TODO EINE strg + f "uid" im ganzen skript! -if(isset($_GET['$prestudent'])) +$getParam = array(); + +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']; + $getParam[] = "uid=". $uid; + } } + +$prestudent_id = null; +if(isset($_GET['prestudent_id'])) +{ + $prestudent_id = $_GET['prestudent_id']; +} +if(isset($_GET["stsem"])) + $getParam[] = "stsem=". $_GET["stsem"]; + + $p = new phrasen(getSprache()); $datum_obj = new datum(); $db = new basis_db(); - if(isset($_GET['getAnmeldung'])) { // Liefert das Formular zur Anmeldung zu Lehrveranstaltungen zurueck - $lehrveranstaltung_id=$_GET['lehrveranstaltung_id']; $stsem = $_GET['stsem']; - echo $p->t('studienplan/LehrveranstalungWaehlen').'
'; $lehrveranstaltung = new lehrveranstaltung(); $anzahl=0; - // Die Anmeldung ist zur Lehrveranstaltung selbst und zu den dazu kompatiblen Lehrveranstaltungen moeglich $kompatibel = $lehrveranstaltung->loadLVkompatibel($lehrveranstaltung_id); - $datum = new datum(); $kompatibel[]=$lehrveranstaltung_id; $kompatibel = array_unique($kompatibel); @@ -91,21 +99,18 @@ if(isset($_GET['getAnmeldung'])) { $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)) { // User ist noch nicht angemeldet //Pruefen ob genug Credit Points zur Verfuegung stehen zur Anmeldung - $konto = new konto(); - $cp = $konto->getCreditPoints($prestudent_id, $stsem); + $cp = $konto->getCreditPoints($uid, $stsem); if($cp===false || $cp>=$lv->ects) echo '
'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')'; else @@ -124,7 +129,6 @@ if(isset($_GET['getAnmeldung'])) }*/ } } - if($anzahl>0) echo '

'; else @@ -141,7 +145,6 @@ echo ' '; - // ADDONS laden $addon_obj = new addon(); $addon_obj->loadAddons(); @@ -150,7 +153,6 @@ echo ' if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php')) echo ''; } - // Wenn Seite fertig geladen ist Addons aufrufen echo ' '; +$getString = ""; +$firstParam = true; + +foreach($getParam as $pa) +{ + if($firstParam) + { + $firstParam = false; + } + else + $getString .= "&"; + $getString .= $pa; +} + echo '
'.$p->t('studienplan/Anmeldung').'
'; -if(isset($_POST['action']) && $_POST['action']=='anmeldung') + +$prestudent = new prestudent(); +$prestudent->getPrestudentsFromUid($uid); + +if(count($prestudent->result) > 0) { - $lehrveranstaltung_id = $_POST['lv']; - $stsem = $_POST['stsem']; + /*** dropdown fuer studiengang ***/ + echo "
"; + echo "".$p->t('global/studiengang').""; + echo ""; + + if(isset($prestudent_id)) + { + $semester = array(); + $prestudent->result = array(); + $prestudent->getPrestudentRolle($prestudent_id); + foreach($prestudent->result as $rolle) { - // Benutzer einschreiben - $bngruppe = new benutzergruppe(); - - if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem)) + if($rolle->status_kurzbz == "Student" || $rolle->status_kurzbz == "Absolvent" || $rolle->status_kurzbz == "Diplomand") { + $semester[$rolle->studiensemester_kurzbz] = 1; + } + } + } + echo "
"; +} - // Pruefen ob genug CP zur Verfuegung stehen falls diese reduziert sind - $konto = new konto(); - $cp = $konto->getCreditPoints($prestudent_id, $stsem); - if($cp===false || $cp>=$lv->ects) +if(isset($prestudent_id)) +{ + 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 + $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()) + // Pruefen ob genug CP zur Verfuegung stehen falls diese reduziert sind + $konto = new konto(); + $cp = $konto->getCreditPoints($uid, $stsem); + if($cp===false || $cp>=$lv->ects) { - echo ''.$p->t('studienplan/einschreibungErfolgreich').''; - // Menue neu Laden damit die LV unter Meine LV gleich angezeigt wird - echo ''; + $bngruppe->uid = $uid; + $bngruppe->gruppe_kurzbz = $lvangebot->result[0]->gruppe_kurzbz; + $bngruppe->studiensemester_kurzbz = $stsem; + $bngruppe->new=true; + if($bngruppe->save()) + { + echo ''.$p->t('studienplan/einschreibungErfolgreich').''; + // Menue neu Laden damit die LV unter Meine LV gleich angezeigt wird + echo ''; + } } + else + echo ''.$p->t('studienplan/zuWenigCP').''; } else - echo ''.$p->t('studienplan/zuWenigCP').''; + { + echo ''.$p->t('studienplan/bereitsAngemeldet').''; + } } else - { - echo ''.$p->t('studienplan/bereitsAngemeldet').''; - } + echo $lvangebot->result[0]->errormsg; } else - echo $lvangebot->result[0]->errormsg; + echo $p->t('studienplan/AnmeldungNichtMoeglich'); } - else - echo $p->t('studienplan/AnmeldungNichtMoeglich'); -} - -$db = new basis_db(); -$datum_obj = new datum(); -// Student Laden -$prestudent = new prestudent($prestudent_id); -// ersten Status holen -$prestudent->getFirstStatus($prestudent_id, 'Student'); - -$studiensemester_start = $prestudent->studiensemester_kurzbz; -$ausbildungssemester_start = $prestudent->ausbildungssemester; -$orgform_kurzbz = $prestudent->orgform_kurzbz; - -$prestudent->getLastStatus($prestudent_id, 'Student'); -$studienplan_id = $prestudent->studienplan_id; - -$studienplan = new studienplan(); -$studienplan->loadStudienplan($studienplan_id); - -// Studienplan laden -$lehrveranstaltung = new lehrveranstaltung(); -$lehrveranstaltung->loadLehrveranstaltungStudienplan($studienplan_id); -$tree = $lehrveranstaltung->getLehrveranstaltungTree(); - - -/* - Vom Semesterstart des Studierenden ausgehend werden die Studiensemester geladen. - Es werden mindestens so viele Studiensemester geladen wie die Regelstudiendauer des - Studienplanes angibt. -*/ -// Angezeigte Studiensemester holen -$stsem = new studiensemester(); -$stsem_arr[0]=$studiensemester_start; -$studiensemester_prev=$studiensemester_start; -for($i=1;$i<$studienplan->regelstudiendauer;$i++) -{ - $stsem_arr[$i]=$stsem->getNextFrom($studiensemester_prev); - $studiensemester_prev=$stsem_arr[$i]; -} - -/* - Wenn Studierende ueber der Regelstudiendauer hinaus studierenen, wird das aktuelle Studiensemester - nicht angezeigt. Deshalb wird in solchen faellen immer bis zum aktuellen+2 Studiensemester geladen. -*/ -$stsem_obj = new studiensemester(); -$aktornext = $stsem_obj->getaktorNext(); -$stsemToShow = $stsem_obj->jump($aktornext,2); - -if(!in_array($stsemToShow,$stsem_arr)) -{ - for($i=count($stsem_arr);$i<50;$i++) + $db = new basis_db(); + $datum_obj = new datum(); + // Student Laden + $student = new student(); + $student->load($uid); + // ersten Status holen + $prestudent = new prestudent(); + $prestudent->getFirstStatus($prestudent_id, 'Student'); + $studiensemester_start = $prestudent->studiensemester_kurzbz; + $ausbildungssemester_start = $prestudent->ausbildungssemester; + $orgform_kurzbz = $prestudent->orgform_kurzbz; + $prestudent->getLastStatus($prestudent_id, 'Student'); + $studienplan_id = $prestudent->studienplan_id; + $studienplan = new studienplan(); + $studienplan->loadStudienplan($studienplan_id); + // Studienplan laden + $lehrveranstaltung = new lehrveranstaltung(); + $lehrveranstaltung->loadLehrveranstaltungStudienplan($studienplan_id); + $tree = $lehrveranstaltung->getLehrveranstaltungTree(); + /* + Vom Semesterstart des Studierenden ausgehend werden die Studiensemester geladen. + Es werden mindestens so viele Studiensemester geladen wie die Regelstudiendauer des + Studienplanes angibt. + */ + // Angezeigte Studiensemester holen + $stsem = new studiensemester(); + $stsem_arr[0]=$studiensemester_start; + $studiensemester_prev=$studiensemester_start; + for($i=1;$i<$studienplan->regelstudiendauer;$i++) { - if(!$stsem_arr[$i]=$stsem->getNextFrom($studiensemester_prev)) - { - unset($stsem_arr[$i]); - break; - } + $stsem_arr[$i]=$stsem->getNextFrom($studiensemester_prev); $studiensemester_prev=$stsem_arr[$i]; - if($stsemToShow==$studiensemester_prev) + } + /* + Wenn Studierende ueber der Regelstudiendauer hinaus studierenen, wird das aktuelle Studiensemester + nicht angezeigt. Deshalb wird in solchen faellen immer bis zum aktuellen+2 Studiensemester geladen. + */ + $stsem_obj = new studiensemester(); + $aktornext = $stsem_obj->getaktorNext(); + $stsemToShow = $stsem_obj->jump($aktornext,2); + if(!in_array($stsemToShow,$stsem_arr)) + { + for($i=count($stsem_arr);$i<50;$i++) { - break; + if(!$stsem_arr[$i]=$stsem->getNextFrom($studiensemester_prev)) + { + unset($stsem_arr[$i]); + break; + } + $studiensemester_prev=$stsem_arr[$i]; + if($stsemToShow==$studiensemester_prev) + { + break; + } } } -} - -// Noten des Studierenden holen -$noten_arr=array(); -$zeugnisnote = new zeugnisnote(); -if($zeugnisnote->getZeugnisnoten('',$prestudent_id,'')) -{ - foreach($zeugnisnote->result as $row_note) + // Noten des Studierenden holen + $noten_arr=array(); + $zeugnisnote = new zeugnisnote(); + if($zeugnisnote->getZeugnisnoten('',$prestudent_id,'')) { - if($row_note->note!='') - $noten_arr[$row_note->lehrveranstaltung_id][$row_note->studiensemester_kurzbz]=$row_note->note; + foreach($zeugnisnote->result as $row_note) + { + if($row_note->note!='') + { + $noten_arr[$row_note->lehrveranstaltung_id][$row_note->studiensemester_kurzbz]=$row_note->note; + } + } } -} + $note_pruef_arr = array(); + $note = new note(); + $note->getAll(); + foreach($note->result as $row_note) + $note_pruef_arr[$row_note->note]=$row_note; + // LV Angebot holen + $lvangebot_arr = array(); + $lvangebot = new lvangebot(); + $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; + // LVs des Studienplans laden + $lv_arr = array(); + $lv = new lehrveranstaltung(); + $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 ( $student->uid )

"; + echo ' + + + '; + if(CIS_STUDIENPLAN_SEMESTER_ANZEIGEN) + echo ''; + echo ' + '; + foreach($stsem_arr as $stsem) + { + echo ''; + } + echo ' + + + '; + // Lehrveranstaltungen anzeigen + drawTree($tree,0); -$note_pruef_arr = array(); -$note = new note(); -$note->getAll(); -foreach($note->result as $row_note) - $note_pruef_arr[$row_note->note]=$row_note; - -// LV Angebot holen -$lvangebot_arr = array(); -$lvangebot = new lvangebot(); -$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; - -// LVs des Studienplans laden -$lv_arr = array(); -$lv = new lehrveranstaltung(); -$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) - $prestudent->vorname $prestudent->nachname ( $prestudent->uid )

"; - -echo '
'.$p->t('global/lehrveranstaltung').''.$p->t('global/semester').''.$p->t('studienplan/ects').''.$p->t('studienplan/status').''; + echo $stsem; + $konto = new konto(); + $cp = $konto->getCreditPoints($prestudent_id, $stsem); + if($cp!==false) + echo '
Information
'; + echo '
- - - '; - -if(CIS_STUDIENPLAN_SEMESTER_ANZEIGEN) - echo ''; - -echo ' - '; - -foreach($stsem_arr as $stsem) -{ - echo ''; -} -echo ' + echo '
'.$p->t('global/lehrveranstaltung').''.$p->t('global/semester').''.$p->t('studienplan/ects').''.$p->t('studienplan/status').''; - - echo $stsem; - $konto = new konto(); - $cp = $konto->getCreditPoints($prestudent_id, $stsem); - if($cp!==false) - echo '
Information
'; - echo '
'; + echo '

'.$p->t('studienplan/legende').':
+ + + + + - - '; - -// Lehrveranstaltungen anzeigen -drawTree($tree,0); - -function drawTree($tree, $depth) -{ - global $uid, $stsem_arr, $noten_arr, $lvangebot_arr; - global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr; - - foreach($tree as $row_tree) - { - $style=''; - if(!empty($row_tree->childs)) - { - $bstart='';$bende=''; - $style=' style="background-color:#EEEEEE"'; - } - else - { - $bstart='';$bende=''; - } - - switch($row_tree->lehrtyp_kurzbz) - { - case 'modul': - $icon=' '; - $style=' style="background-color:#CCCCCC"'; - $termine=''; - break; - case 'lv': - $icon=' '; - $termine="Termine"; - break; - default: - $icon=''; - } - - - echo ' - '; - - // Semester - if(CIS_STUDIENPLAN_SEMESTER_ANZEIGEN) - echo ''; - - // ECTS Punkte - echo ''; - - // Status der LV (absolviert, offen) - echo ''; - - // Spalten für die einzelnen Studiensemester - foreach($stsem_arr as $key=>$stsem) - { - $semester=$key+1; - - $tdclass=array(); - //Empfehlung holen -// if(isset($lv_arr[$row_tree->lehrveranstaltung_id])) -// { -// $empfohlenesSemester = $lv_arr[$row_tree->lehrveranstaltung_id]->semester; -// if($semester==$empfohlenesSemester) -// $tdclass[]='empfehlung'; -// } - - $tdinhalt=''; - - // Ist bereits eine Note für diese LV in diesem Stsem vorhanden? - if(isset($noten_arr[$row_tree->lehrveranstaltung_id][$stsem])) - { - if($note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->positiv) - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.''; - else - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.''; - } - elseif(count($kompatibleLVs) > 0) - { - foreach($kompatibleLVs as $komp) - { - if(isset($noten_arr[$komp][$stsem])) - { - if($note_pruef_arr[$noten_arr[$komp][$stsem]]->positiv) - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$komp][$stsem]]->anmerkung.''; - else - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$komp][$stsem]]->anmerkung.''; - } - } - } - else - { - // Angebot der LV und der Kompatiblen pruefen - $anmeldungmoeglich=false; - $angemeldet=false; - $semesterlock=false; - $regelerfuellt=true; - $anmeldeinformation=''; - $angebot_vorhanden=false; - - // Regeln Pruefen - $lvregel = new lvregel(); - - // Pruefen ob Semestersperre vorhanden ist - if(!$lvregel->checkSemester($row_tree->studienplan_lehrveranstaltung_id, $semester)) - { - $semesterlock=true; - } - else - { - if(!$lvregel->isZugangsberechtigt($prestudent_id, $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($prestudent->uid, $angebot->gruppe_kurzbz, $stsem)) // TODO EINE gibts hier überhaupt einen prestudenten? - { - // Bereits angemeldet - $angemeldet=true; - } - } - - // Pruefen ob eine Anmeldung möglich ist - if($angebot->AnmeldungMoeglich()) - { - if(!$angemeldet) - $anmeldungmoeglich=true; - } - else - $anmeldeinformation.=$angebot->errormsg; - } - } - - if($semesterlock) - { - $tdinhalt.= ''; - } - else - { - if($angebot_vorhanden) - { - $tdclass[]='angebot'; - if($angemeldet) - { - $tdinhalt.= ''; - } - else - { - if($anmeldungmoeglich) - $tdinhalt.= ''; - else - $tdinhalt.= '-'; - - if(!$regelerfuellt) - $tdinhalt.= 'X'; - } - } - else - { - // LV wird nicht angeboten - $tdinhalt.= '-'; - } - } - } - $class=implode(' ',$tdclass); - echo ''; - } - echo ''; - - // Wenn Subtree vorhanden, dann anzeigen - if(!empty($row_tree->childs)) - drawTree($row_tree->childs, $depth+1); - } + + + + + + + + + + + + + + + + +
'.$bstart; - - // 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; - - $abgeschlossen=false; - $lvregel = new lvregel(); - if($lvregel->exists($row_tree->studienplan_lehrveranstaltung_id)) - { - if($lvregel->isAbgeschlossen($prestudent_id, $row_tree->studienplan_lehrveranstaltung_id)) - $abgeschlossen=true; - else - $abgeschlossen=false; - } - $lvinfo = new lvinfo(); - switch(getSprache()) - { - case 'German': - $sprache = 'de'; - break; - case 'English': - $sprache = 'en'; - break; - default: - $sprache = 'de'; - } - if($lvinfo->exists($row_tree->lehrveranstaltung_id, getSprache())) - echo $icon." ".$termine." lehrveranstaltung_id&language=$sprache','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.""; - else - // Bezeichnung der Lehrveranstaltung - echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.'('.$row_tree->lehrveranstaltung_id.')'; - echo $bende.''.$row_tree->semester.''.$row_tree->ects.''; - - // Note zu dieser LV vorhanden? - - $lv_kompatibel = new lehrveranstaltung(); - $kompatibleLVs = $lv_kompatibel->loadLVkompatibel($row_tree->lehrveranstaltung_id); - - if(isset($noten_arr[$row_tree->lehrveranstaltung_id])) - { - // Positive Note fuer diese LV vorhanden? - $positiv=false; - foreach($noten_arr[$row_tree->lehrveranstaltung_id] as $note) - { - if($note_pruef_arr[$note]->positiv) - $positiv=true; - } - - if($positiv) - echo ''.$p->t('studienplan/abgeschlossen').''; - else - echo ''.$p->t('studienplan/negativ').''; - } - //check if compatible course has grade - elseif(count($kompatibleLVs) > 0) - { - $positiv = false; - $found = false; - $i = 0; - while(!$found && $i < count($kompatibleLVs)) - { - for($i; $i < (count($kompatibleLVs)); $i++) - { - if(isset($noten_arr[$kompatibleLVs[$i]])) - { - $positiv=false; - foreach($noten_arr[$kompatibleLVs[$i]] as $note) - { - if($note_pruef_arr[$note]->positiv) - $positiv=true; - } - - $found = true; - } - } - $i++; - } - if($found) - { - if($positiv) - echo ''.$p->t('studienplan/abgeschlossen').''; - else - echo ''.$p->t('studienplan/negativ').''; - } - elseif(!$found) - { - if($abgeschlossen) - echo ''.$p->t('studienplan/regelabgeschlossen'),''; - elseif(!$row_tree->stpllv_pflicht) - echo ''.$p->t('studienplan/optional').''; - else - echo ''.$p->t('studienplan/offen').''; - } - } - else - { - if($abgeschlossen) - echo ''.$p->t('studienplan/regelabgeschlossen'),''; - elseif(!$row_tree->stpllv_pflicht) - echo ''.$p->t('studienplan/optional').''; - else - echo ''.$p->t('studienplan/offen').''; - } - echo ''; - echo $tdinhalt; - echo '
      '.$p->t('studienplan/legendeLVwirdAngeboten').'
'.$p->t('studienplan/Anmeldung').'
'.$p->t('studienplan/legendeAngemeldet').'
'.$p->t('studienplan/legendeLock').'
+ '; } -echo ''; -echo '

'.$p->t('studienplan/legende').':
- - - - - - - - - - - - - - - - - - - - - - -
      '.$p->t('studienplan/legendeLVwirdAngeboten').'
'.$p->t('studienplan/Anmeldung').'
'.$p->t('studienplan/legendeAngemeldet').'
'.$p->t('studienplan/legendeLock').'
-'; - echo ' '; + + + + + + + + + + + + + + function drawTree($tree, $depth) + { + global $uid, $stsem_arr, $noten_arr, $lvangebot_arr; + global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr, $student; + + foreach($tree as $row_tree) + { + $style=''; + if(!empty($row_tree->childs)) + { + $bstart='';$bende=''; + $style=' style="background-color:#EEEEEE"'; + } + else + { + $bstart='';$bende=''; + } + switch($row_tree->lehrtyp_kurzbz) + { + case 'modul': + $icon=' '; + $style=' style="background-color:#CCCCCC"'; + $termine=''; + break; + case 'lv': + $icon=' '; + $termine="Termine"; + break; + default: + $icon=''; + } + echo ' + '.$bstart; + // 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; + $abgeschlossen=false; + $lvregel = new lvregel(); + if($lvregel->exists($row_tree->studienplan_lehrveranstaltung_id)) + { + if($lvregel->isAbgeschlossen($uid, $row_tree->studienplan_lehrveranstaltung_id)) + $abgeschlossen=true; + else + $abgeschlossen=false; + } + $lvinfo = new lvinfo(); + switch(getSprache()) + { + case 'German': + $sprache = 'de'; + break; + case 'English': + $sprache = 'en'; + break; + default: + $sprache = 'de'; + } + if($lvinfo->exists($row_tree->lehrveranstaltung_id, getSprache())) + echo $icon." ".$termine." lehrveranstaltung_id&language=$sprache','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.""; + else + // Bezeichnung der Lehrveranstaltung + echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.'('.$row_tree->lehrveranstaltung_id.')'; + echo $bende.''; + // Semester + if(CIS_STUDIENPLAN_SEMESTER_ANZEIGEN) + echo ''.$row_tree->semester.''; + // ECTS Punkte + echo ''.$row_tree->ects.''; + // Status der LV (absolviert, offen) + echo ''; + // Note zu dieser LV vorhanden? + + $lv_kompatibel = new lehrveranstaltung(); + $kompatibleLVs = $lv_kompatibel->loadLVkompatibel($row_tree->lehrveranstaltung_id); + + if(isset($noten_arr[$row_tree->lehrveranstaltung_id])) + { + // Positive Note fuer diese LV vorhanden? + $positiv=false; + foreach($noten_arr[$row_tree->lehrveranstaltung_id] as $note) + { + if($note_pruef_arr[$note]->positiv) + $positiv=true; + } + if($positiv) + echo ''.$p->t('studienplan/abgeschlossen').''; + else + echo ''.$p->t('studienplan/negativ').''; + } + //check if compatible course has grade + elseif(count($kompatibleLVs) > 0) + { + $positiv = false; + $found = false; + $i = 0; + while(!$found && $i < count($kompatibleLVs)) + { + foreach($kompatibleLVs as $komp) + { + + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($prestudent_id, $row_tree->lehrveranstaltung_id, $komp); + + if(count($anrechnung->result) == 1) + { + $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; + if(isset($noten_arr[$lv])) + { + $positiv=false; + foreach($noten_arr[$lv] as $note) + { + if($note_pruef_arr[$note]->positiv) + $positiv=true; + } + $found = true; + } + else + { + /* wenn zu mehreren kompatiblen lvs eine Anrechnung existiert + * darf found nicht auf false gesetzt werden wenn es zuvor bereits auf true gesetzt wurde + */ + if(!$found) + $found = false; + } + } + $i++; + } + } + + if($found) + { + if($positiv) + echo ''.$p->t('studienplan/abgeschlossen').''; + else + echo ''.$p->t('studienplan/negativ').''; + } + elseif(!$found) + { + if($abgeschlossen) + echo ''.$p->t('studienplan/regelabgeschlossen'),''; + elseif(!$row_tree->stpllv_pflicht) + echo ''.$p->t('studienplan/optional').''; + else + echo ''.$p->t('studienplan/offen').''; + } + } + else + { + if($abgeschlossen) + echo ''.$p->t('studienplan/regelabgeschlossen'),''; + elseif(!$row_tree->stpllv_pflicht) + echo ''.$p->t('studienplan/optional').''; + else + echo ''.$p->t('studienplan/offen').''; + } + echo ''; + // Spalten für die einzelnen Studiensemester + foreach($stsem_arr as $key=>$stsem) + { + $semester=$key+1; + $tdclass=array(); + //Empfehlung holen + // if(isset($lv_arr[$row_tree->lehrveranstaltung_id])) + // { + // $empfohlenesSemester = $lv_arr[$row_tree->lehrveranstaltung_id]->semester; + // if($semester==$empfohlenesSemester) + // $tdclass[]='empfehlung'; + // } + $tdinhalt=''; + // Ist bereits eine Note für diese LV in diesem Stsem vorhanden? + if(isset($noten_arr[$row_tree->lehrveranstaltung_id][$stsem])) + { + if($note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->positiv) + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.''; + else + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.''; + } + elseif(count($kompatibleLVs) > 0) + { + $found = false; + $i = 0; + while(!$found && $i < count($kompatibleLVs)) + { + foreach($kompatibleLVs as $komp) + { + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($prestudent_id, $row_tree->lehrveranstaltung_id, $komp); + + if(count($anrechnung->result) == 1) + { + $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; + if(isset($noten_arr[$lv][$stsem])) + { + $found = true; + if($note_pruef_arr[$noten_arr[$lv][$stsem]]->positiv) + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; + else + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; + } + } + $i++; + } + if(!$found) + { + $tdinhalt.= '-'; + } + } + } + else + { + // Angebot der LV und der Kompatiblen pruefen + $anmeldungmoeglich=false; + $angemeldet=false; + $semesterlock=false; + $regelerfuellt=true; + $anmeldeinformation=''; + $angebot_vorhanden=false; + // Regeln Pruefen + $lvregel = new lvregel(); + // Pruefen ob Semestersperre vorhanden ist + if(!$lvregel->checkSemester($row_tree->studienplan_lehrveranstaltung_id, $semester)) + { + $semesterlock=true; + } + else + { + 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) + { + $tdinhalt.= ''; + } + else + { + if($angebot_vorhanden) + { + $tdclass[]='angebot'; + if($angemeldet) + { + $tdinhalt.= ''; + } + else + { + if($anmeldungmoeglich) + $tdinhalt.= ''; + else + $tdinhalt.= '-'; + if(!$regelerfuellt) + $tdinhalt.= 'X'; + } + } + else + { + // LV wird nicht angeboten + $tdinhalt.= '-'; + } + } + } + $class=implode(' ',$tdclass); + echo ''; + echo $tdinhalt; + echo ''; + } + echo ''; + // Wenn Subtree vorhanden, dann anzeigen + if(!empty($row_tree->childs)) + drawTree($row_tree->childs, $depth+1); + } + } ?> diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index ea7a454b5..71a985d53 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -1565,7 +1565,7 @@ function StudentAuswahl() } // ***** Anwesenheit ***** - if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-anwesenheit')) // TODO EINE: PPPFAAAHH, is des schiach(id gibts nicht, wenn man keine berechtigungen hat!) (in content/student/studentenoverlay.xul.php) + if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-anwesenheit')) { document.getElementById('student-anwesenheit').setAttribute('src','anwesenheit.xul.php?prestudent_id='+prestudent_id); } @@ -5546,14 +5546,14 @@ function StudentCisStudienplan(event) function StudentCisNotenliste(event) { var tree = document.getElementById('student-tree'); - if (tree.currentIndex == -1) - { - alert("Bitte wählen Sie einen Studenten aus."); - return false; - } + if (tree.currentIndex == -1) + { + alert("Bitte wählen Sie einen Studenten aus."); + return false; + } - var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid"; - var uid = tree.view.getCellText(tree.currentIndex,col); + var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id"; + var prestudent_id = tree.view.getCellText(tree.currentIndex,col); - window.open('cis/private/lehre/notenliste.php?stsem=alle&uid='+uid); + window.open('cis/private/lehre/notenliste.php?stsem=alle&prestudent_id='+prestudent_id); } diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php index 4f1ca51ac..e1941528e 100644 --- a/include/lehrstunde.class.php +++ b/include/lehrstunde.class.php @@ -233,9 +233,6 @@ class lehrstunde extends basis_db * @param ver * @param grp * @param gruppe_kurzbz - * TODO EINE: - * Dickes Problem: uid kann hier ein MA, oder ein Student sein. Für den späteren join auf tbl_studentlehrverband - * wird jedoch eine prestudent_id benötigt, welche nicht eindeutig ist, wenn sie per uid geholt wird. */ public function load_lehrstunden($type, $datum_von, $datum_bis, $uid, $ort_kurzbz=NULL, $studiengang_kz=NULL, $sem=NULL, $ver=NULL, $grp=NULL, $gruppe_kurzbz=NULL, $stpl_view='stundenplan', $idList=null, $fachbereich_kurzbz=null, $lva=NULL, $alle_unr_mitladen=false) @@ -319,14 +316,11 @@ class lehrstunde extends basis_db if(!isset($this->ssnext)) $this->ssnext = $this->ss; - if(!$student = new student($uid)) // TODO EINE - $this->errormsg = $student->errormsg; - - // Lehrverbandszuordnungen der betreffenden Studiensemester laden - $sql_query="SELECT studiengang_kz, semester, verband, gruppe + $sql_query="SELECT tbl_studentlehrverband.studiengang_kz, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe FROM public.tbl_studentlehrverband - WHERE prestudent_id=".$this->db_add_param($student->prestudent_id)." + JOIN tbl_prestudent USING(prestudent_id) + WHERE uid=".$this->db_add_param($uid)." AND studiensemester_kurzbz in(".$this->db_add_param($this->ss).",".$this->db_add_param($this->ssnext).")"; $verbaende=array(); diff --git a/include/tw/abgabe_lektor_benotung.php b/include/tw/abgabe_lektor_benotung.php index cd2603fdc..c2bf24b70 100644 --- a/include/tw/abgabe_lektor_benotung.php +++ b/include/tw/abgabe_lektor_benotung.php @@ -46,10 +46,7 @@ require_once('../../include/pdf/fpdf.php'); require_once('../../include/pdf.inc.php'); $getuid=get_uid(); -/*TODO EINE - auf etwa zeile 720: public.tbl_prestudent.uid - sollte wohl eher auf die prestudent_id eingeschränkt werden! -*/ + $datum_obj = new datum(); $htmlstr = ""; $qualitaet=''; @@ -73,7 +70,7 @@ $projekttyp_kurzbz=''; $projektarbeit_id=''; $uid=''; -$matrikelnr=''; +$perskz=''; $titel=''; $beurteiler=''; $ende=''; @@ -109,7 +106,7 @@ else { $projektarbeit_id=(isset($_POST['projektarbeit_id'])?$_POST['projektarbeit_id']:'-1'); $uid=(isset($_POST['uid'])?$_POST['uid']:'-1'); - $matrikelnr=(isset($_POST['matrikelnr'])?$_POST['matrikelnr']:'-1'); + $perskz=(isset($_POST['matrikelnr'])?$_POST['matrikelnr']:'-1'); $studiengang=(isset($_POST['studiengang'])?$_POST['studiengang']:''); $stgtyp=(isset($_POST['stgtyp'])?$_POST['stgtyp']:''); $projekttyp_kurzbz=(isset($_POST['projekttyp_kurzbz'])?$_POST['projekttyp_kurzbz']:''); @@ -719,9 +716,9 @@ $sql_query = "SELECT *,(SELECT abgabedatum FROM campus.tbl_paabgabe WHERE projek LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id) LEFT JOIN public.tbl_studiengang on(tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz) WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - AND tbl_projektbetreuer.person_id IN (SELECT person_id FROM public.tbl_prestudent - WHERE public.tbl_prestudent.person_id=lehre.tbl_projektbetreuer.person_id - AND public.tbl_prestudent.uid=".$db->db_add_param($getuid).") + AND tbl_projektbetreuer.person_id IN (SELECT person_id FROM public.tbl_benutzer + WHERE public.tbl_benutzer.person_id=lehre.tbl_projektbetreuer.person_id + AND public.tbl_benutzer.uid=".$db->db_add_param($getuid).") AND lehre.tbl_projektarbeit.note IS NULL AND lehre.tbl_projektarbeit.projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." ORDER BY tbl_projektarbeit.projektarbeit_id, betreuerart_kurzbz desc) as xy @@ -919,13 +916,13 @@ else $htmlstr = "
"; $htmlstr .= "\n"; $htmlstr .= ''; - $htmlstr .= ""; + $htmlstr .= ""; $htmlstr .= "
Student: ".$row->matrikelnr.", ".trim($row->titelpre." ".$row->vorname." ".$row->nachname." ".$row->titelpost)."
Student: ".$row->perskz.", ".trim($row->titelpre." ".$row->vorname." ".$row->nachname." ".$row->titelpost)."
Titel: ".$db->convert_html_chars($titel).""; $htmlstr .= ''; $htmlstr .= ''; - $htmlstr .= ''; + $htmlstr .= ''; $htmlstr .= ''; - $htmlstr .= ''; + $htmlstr .= ''; $htmlstr .= ''; $htmlstr .= ''; $htmlstr .= ''; @@ -1081,7 +1078,7 @@ else //--> '; } - else + else { die('Betreuung nicht gefunden!'); } diff --git a/include/zeugnisnote.class.php b/include/zeugnisnote.class.php index 163dd003e..1305e7fe5 100644 --- a/include/zeugnisnote.class.php +++ b/include/zeugnisnote.class.php @@ -289,7 +289,7 @@ class zeugnisnote extends basis_db JOIN lehre.tbl_note USING(note) LEFT JOIN public.tbl_prestudent ON( public.tbl_prestudent.prestudent_id=lehre.tbl_zeugnisnote.prestudent_id ) WHERE true $where2 - ORDER BY sort"; + ORDER BY sort LIMIT 1"; if($this->db_query($qry)) { while($row = $this->db_fetch_object())