diff --git a/CHANGELOG.md b/CHANGELOG.md index 336515567..ad9601ddb 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ - **[CIS]** LVPlan Export für Excel - **[FAS]** Termine Karteireiter im FAS zeigt die Anmerkung aus dem LVPlan an - **[CIS]** Onlinebewerbungstool greift auf mehrsprachige Statusbezeichnungen zu. +- **[CIS]** Config-Einträge für die Tabellenspalten beim Eintragen der Gesamtnote hinzugefügt. +- **[CIS]** Prüfungsverwaltung: Config-Eintrag hinzugefügt um die Accordion-Elemente ein- und auszublenden. ### Changed - **[FAS]** Dokumente Menü im FAS neu sortiert um den Lebenszyklus des Studierenden abzubilden @@ -18,6 +20,9 @@ - **[CIS]** LVPlan Begrenzung der 4er Blockung aufgehoben. - **[CIS]** Im Menü 'Zeitsperren' Link zu Resturlaubsübersicht entfernt. Falls benötigt Verlinkung über CMS möglich. - **[CORE]** Removed NOT NULL constraint on 'verfasser\_uid' from public.tbl\_notiz +- **[CIS]** Studienplanansicht: Wenn eine LV nicht benotet ist, aber eine kompatible LV mit vorhandener Anrechnung benotet ist wird diese Note angezeigt. +- **[FAS]** Die RDF-Schnittstelle für das Zeugnis prüft bei Anrechnungen ob, die ECTS-Punkte übereinstimmen und wählt bei ungleichen Werten jene der angerechneten LV. +- **[FAS]** Der Ausbildungsvertrag kann nun jederzeit erstellt werden, auch wenn eine Person noch kein Student ist. Wenn in der Vorlage des Ausbildungsvertrags ein Attribut des Studenten-Datensatzen (zB Personenkennzeichen) abgefragt wird und eine Person noch nicht Student ist, kann dieses nicht angedruckt werden und sollte aus der Vorlage entfernt werden. ### Updateinfo - **[FAS]** Für Lehraufträge muss eine Unoconv-Vorlage erstellt werden, da der für xsl-fo notwendige Seitenumbruch-Tag aus dem RDF entfernt wurde. diff --git a/cis/menu.php b/cis/menu.php index 5627f7b3b..089271e44 100644 --- a/cis/menu.php +++ b/cis/menu.php @@ -23,6 +23,7 @@ */ require_once('../config/cis.config.inc.php'); +require_once('../config/global.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../cms/menu.inc.php'); require_once('../include/phrasen.class.php'); diff --git a/cis/private/lehre/abgabe_lektor.php b/cis/private/lehre/abgabe_lektor.php index 0e84bb5e9..2e6dd28b0 100644 --- a/cis/private/lehre/abgabe_lektor.php +++ b/cis/private/lehre/abgabe_lektor.php @@ -33,11 +33,20 @@ require_once('../../../include/person.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/phrasen.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); if (!$db = new basis_db()) die('Fehler beim Herstellen der Datenbankverbindung'); $getuid=get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($getuid); + +if (isset($_GET['user'])) +{ + if ($rechte->isBerechtigt('admin',null,'suid')) + $getuid = $_GET['user']; +} $sprache = getSprache(); diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index e46d40dd2..abf17fc8c 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -76,6 +76,13 @@ $stg_arr = array(); $error = false; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); + +if (isset($_GET['user'])) +{ + if ($rechte->isBerechtigt('admin',null,'suid')) + $user = $_GET['user']; +} + $htmlstr=''; if(!check_lektor($user)) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php old mode 100644 new mode 100755 index 063bc9edd..5a352cd18 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -129,7 +129,7 @@ $qry = "SELECT tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, - tbl_zeugnisnote.note, tbl_mitarbeiter.mitarbeiter_uid + tbl_zeugnisnote.note, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr FROM campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) @@ -186,6 +186,7 @@ if($result = $db->db_query($qry)) 'vorname'=>$row->vorname, 'nachname'=>$row->nachname, 'personenkennzeichen'=>trim($row->matrikelnr), + 'matr_nr'=>$row->matr_nr, 'semester'=>$row->semester, 'verband'=>trim($row->verband), 'gruppe'=>trim($row->gruppe), diff --git a/cis/private/lehre/anwesenheitsliste_bilder.pdf.php b/cis/private/lehre/anwesenheitsliste_bilder.pdf.php old mode 100644 new mode 100755 index bec92f46f..6a44d8daf --- a/cis/private/lehre/anwesenheitsliste_bilder.pdf.php +++ b/cis/private/lehre/anwesenheitsliste_bilder.pdf.php @@ -99,5 +99,9 @@ function getmax($val1,$val2) return ($val1>$val2)?$val1:$val2; } -require_once('../../../include/'.EXT_FKT_PATH.'/anwesenheitsliste_bilder.inc.php'); +if (file_exists('../../../addons/sfu-milano/include/'.EXT_FKT_PATH.'/anwesenheitsliste_bilder.inc.php')) + require_once('../../../addons/sfu-milano/include/'.EXT_FKT_PATH.'/anwesenheitsliste_bilder.inc.php'); +else + require_once('../../../include/'.EXT_FKT_PATH.'/anwesenheitsliste_bilder.inc.php'); + ?> diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index c5827b826..b91eb180d 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -840,9 +840,15 @@ echo " ".$p->t('global/uid')." ".$p->t('global/nachname')." - ".$p->t('global/vorname')." - ".($grade_from_moodle?''.$p->t('benotungstool/moodleNote').'':''.$p->t('benotungstool/leNoten').' (LE-ID)')." - ".$p->t('benotungstool/punkte').' / '.$p->t('benotungstool/note')." + ".$p->t('global/vorname').""; + + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) + { + echo "".($grade_from_moodle?''.$p->t('benotungstool/moodleNote').'':''.$p->t('benotungstool/leNoten').' (LE-ID)').""; + } + + + echo "".$p->t('benotungstool/punkte').' / '.$p->t('benotungstool/note')." ".$p->t('benotungstool/lvNote')."
@@ -853,26 +859,38 @@ echo "
- ".$p->t('benotungstool/zeugnisnote')." - ".$p->t('benotungstool/nachpruefung').""; + ".$p->t('benotungstool/zeugnisnote').""; + + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2) + { + echo "".$p->t('benotungstool/nachpruefung').""; + } if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3) { echo "".$p->t('benotungstool/nachpruefung2').""; } + if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF) + { + echo "".$p->t('benotungstool/kommissionellePruefung').""; + } echo " - ".$p->t('benotungstool/kommissionellePruefung')." + -   - - - - - - - -
".$p->t('global/datum')."".$p->t('benotungstool/note')."
- "; +  "; + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2) + { + echo " + + + + + + +
".$p->t('global/datum')."".$p->t('benotungstool/note')."
+ "; + } + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3) { echo " @@ -885,66 +903,73 @@ echo " "; } - echo " - - - - - - - -
".$p->t('global/datum')."".$p->t('benotungstool/note')."
- + + if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF) + { + echo " + + + + + + + +
".$p->t('global/datum')."".$p->t('benotungstool/note')."
+ "; + } + echo " "; + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) + { + if($grade_from_moodle) + { + flush(); + ob_flush(); - if($grade_from_moodle) - { - flush(); - ob_flush(); + $moodle24 = new moodle24_course(); + $moodle24->loadNoten($lvid, $stsem); - $moodle24 = new moodle24_course(); - $moodle24->loadNoten($lvid, $stsem); + $moodle24_course_bezeichnung=array(); - $moodle24_course_bezeichnung=array(); + if(count($moodle24->result)>0) + { + // Bezeichnungen der Moodlekurse laden + foreach($moodle24->result as $obj) + { + if(!isset($moodle24_course_bezeichnung[$obj->mdl_course_id])) + { + $moodle24course = new moodle24_course(); + $moodle24course->load($obj->mdl_course_id); - if(count($moodle24->result)>0) - { - // Bezeichnungen der Moodlekurse laden - foreach($moodle24->result as $obj) - { - if(!isset($moodle24_course_bezeichnung[$obj->mdl_course_id])) - { - $moodle24course = new moodle24_course(); - $moodle24course->load($obj->mdl_course_id); + $moodle24_course_bezeichnung[$obj->mdl_course_id]=$moodle24course->mdl_shortname; + } - $moodle24_course_bezeichnung[$obj->mdl_course_id]=$moodle24course->mdl_shortname; - } + if(!isset($moodle24_course_gewicht[$obj->mdl_course_id])) + { + $mdl_obj = new moodle24_course(); + $mdl_lehreinheiten=$mdl_obj->getLeFromCourse($obj->mdl_course_id); - if(!isset($moodle24_course_gewicht[$obj->mdl_course_id])) - { - $mdl_obj = new moodle24_course(); - $mdl_lehreinheiten=$mdl_obj->getLeFromCourse($obj->mdl_course_id); + foreach($mdl_lehreinheiten as $row_mdl_lehreinheit) + { + if($row_mdl_lehreinheit!='') + { + $lehreinheit_gewicht_obj = new lehreinheit(); + $lehreinheit_gewicht_obj->load($row_mdl_lehreinheit); - foreach($mdl_lehreinheiten as $row_mdl_lehreinheit) - { - if($row_mdl_lehreinheit!='') - { - $lehreinheit_gewicht_obj = new lehreinheit(); - $lehreinheit_gewicht_obj->load($row_mdl_lehreinheit); - - if($lehreinheit_gewicht_obj->gewicht!='') - { - $moodle24_course_gewicht[$obj->mdl_course_id]=$lehreinheit_gewicht_obj->gewicht; - break; - } - } - } - } - } - } - } + if($lehreinheit_gewicht_obj->gewicht!='') + { + $moodle24_course_gewicht[$obj->mdl_course_id]=$lehreinheit_gewicht_obj->gewicht; + break; + } + } + } + } + } + } + } + } // studentenquery $qry_stud = "SELECT @@ -978,165 +1003,168 @@ echo " $note_le_gewichtet=0; $gewichtsumme=0; $note=0; - if($grade_from_moodle) - { - //Moodle 1.9 + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) + { + if($grade_from_moodle) + { + //Moodle 1.9 - // Alle Moodlekursdaten zu Lehreinheit und Semester lesen wenn noch nicht belegt. - if (is_null($mdldaten) && defined('CONN_STRING_MOODLE')) - { - //Noten aus Moodle - if (!isset($moodle_course)) - $moodle_course = new moodle19_course(); + // Alle Moodlekursdaten zu Lehreinheit und Semester lesen wenn noch nicht belegt. + if (is_null($mdldaten) && defined('CONN_STRING_MOODLE')) + { + //Noten aus Moodle + if (!isset($moodle_course)) + $moodle_course = new moodle19_course(); - if (!$mdldaten = $moodle_course->loadNoten($lvid, $stsem, '', true,$debg)) - $mdldaten=''; - } - // Verarbeitet die Kursdaten - if (!is_null($mdldaten) && is_array($mdldaten)) - { - reset($mdldaten); - $title=""; - $mdl_shortname=''; - for ($imdldaten=0;$imdldatenloadNoten($lvid, $stsem, '', true,$debg)) + $mdldaten=''; + } + // Verarbeitet die Kursdaten + if (!is_null($mdldaten) && is_array($mdldaten)) + { + reset($mdldaten); + $title=""; + $mdl_shortname=''; + for ($imdldaten=0;$imdldatenresult; - $kursArr=(isset($mdldata[2])?$mdldata[2]:array()); - $kursasObj=(isset($mdldata[3])?$mdldata[3]:array()); - $kursname=(isset($mdldata[7])?$mdldata[7]:''); - $shortname=(isset($mdldata[8])?$mdldata[8]:''); + $mdldata=$mdldaten[$imdldaten]->result; + $kursArr=(isset($mdldata[2])?$mdldata[2]:array()); + $kursasObj=(isset($mdldata[3])?$mdldata[3]:array()); + $kursname=(isset($mdldata[7])?$mdldata[7]:''); + $shortname=(isset($mdldata[8])?$mdldata[8]:''); - $note=0; - $userGef=false; + $note=0; + $userGef=false; - reset($kursArr); - for ($iKurs=0;$iKursuid))==strtolower(trim($kursArr[$iKurs][2])) ) - { - $note=trim($kursArr[$iKurs][6]); - $userGef=true; + reset($kursArr); + for ($iKurs=0;$iKursuid))==strtolower(trim($kursArr[$iKurs][2])) ) + { + $note=trim($kursArr[$iKurs][6]); + $userGef=true; - if (is_numeric($note) || $debg) - { - if (is_numeric($note)) - { - $note_le += $note; - $note_le_gewichtet +=$note*$gewichtung; - $gewichtsumme+=$gewichtung; - $le_anz += 1; - } - if ($note == 5) - $leneg = " style='color:red; font-weight:bold'"; - else - $leneg = " style='font-weight:bold'"; + if (is_numeric($note) || $debg) + { + if (is_numeric($note)) + { + $note_le += $note; + $note_le_gewichtet +=$note*$gewichtung; + $gewichtsumme+=$gewichtung; + $le_anz += 1; + } + if ($note == 5) + $leneg = " style='color:red; font-weight:bold'"; + else + $leneg = " style='font-weight:bold'"; - $mdl_shortname=$mdldaten[$imdldaten]->mdl_shortname; - $title="\r\nMoodle 1.9 KursID: ".$mdldaten[$imdldaten]->mdl_course_id ."\r\n\r\n".$kursname.', '.$mdl_shortname."\r\n"; - foreach ($kursasObj[$iKurs] as $key => $value) - { - $title.=$key."=>".$value."\r\n"; - } + $mdl_shortname=$mdldaten[$imdldaten]->mdl_shortname; + $title="\r\nMoodle 1.9 KursID: ".$mdldaten[$imdldaten]->mdl_course_id ."\r\n\r\n".$kursname.', '.$mdl_shortname."\r\n"; + foreach ($kursasObj[$iKurs] as $key => $value) + { + $title.=$key."=>".$value."\r\n"; + } - $note_les_str .= "".$note." (".$mdl_shortname.") "; - } - } // ende If Richtiger User + $note_les_str .= "".$note." (".$mdl_shortname.") "; + } + } // ende If Richtiger User - if ($userGef) - { - $iKurs=count($kursArr)+1; // diesen USER for beenden - user wurde gefunden - } + if ($userGef) + { + $iKurs=count($kursArr)+1; // diesen USER for beenden - user wurde gefunden + } - } // ende Kursschleife - } // MoodleKurse abarbeiten + } // ende Kursschleife + } // MoodleKurse abarbeiten - #echo "

$title Anzahl Noten gef. $le_anz $note_le

"; - } - else - { - if(defined('CONN_STRING_MOODLE')) - { - //den Error nur einmal anzeigen und nicht fuer jeden Studenten - $moodle_course->errormsg=trim($moodle_course->errormsg); - if(!$errorshown && !empty($moodle_course->errormsg) ) - { - //echo '
'.$moodle_course->errormsg.'
'; - $errorshown=true; - } - } - } + #echo "

$title Anzahl Noten gef. $le_anz $note_le

"; + } + else + { + if(defined('CONN_STRING_MOODLE')) + { + //den Error nur einmal anzeigen und nicht fuer jeden Studenten + $moodle_course->errormsg=trim($moodle_course->errormsg); + if(!$errorshown && !empty($moodle_course->errormsg) ) + { + //echo '
'.$moodle_course->errormsg.'
'; + $errorshown=true; + } + } + } - // Moodle 2.4 - if(isset($moodle24) && count($moodle24->result)>0) - { - foreach($moodle24->result as $moodle24_noten) - { - if($moodle24_noten->uid==$row_stud->uid) - { - $gewichtung=1; - $note_le+=$moodle24_noten->note; - if(isset($moodle24_course_gewicht[$moodle24_noten->mdl_course_id])) - $gewichtung=$moodle24_course_gewicht[$moodle24_noten->mdl_course_id]; + // Moodle 2.4 + if(isset($moodle24) && count($moodle24->result)>0) + { + foreach($moodle24->result as $moodle24_noten) + { + if($moodle24_noten->uid==$row_stud->uid) + { + $gewichtung=1; + $note_le+=$moodle24_noten->note; + if(isset($moodle24_course_gewicht[$moodle24_noten->mdl_course_id])) + $gewichtung=$moodle24_course_gewicht[$moodle24_noten->mdl_course_id]; - if($gewichtung=='') - $gewichtung=1; - $note_le_gewichtet+=$moodle24_noten->note*$gewichtung; - $gewichtsumme+=$gewichtung; - $le_anz+=1; - //if ($moodle24_noten->note == 5) - // $leneg = " style='color:red; font-weight:bold'"; - //else - $leneg = ' style="font-weight: bold;"'; - $title="Moodle KursID: ".$moodle24_noten->mdl_course_id. - "\nKursbezeichnung: ".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id]. - "\nUser: ".$moodle24_noten->uid. - "\nNote: ".$moodle24_noten->note; - if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG) - $title.="\nGewichtung: ".$gewichtung; - $note_les_str .= "
".$moodle24_noten->note." (".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].") "; + if($gewichtung=='') + $gewichtung=1; + $note_le_gewichtet+=$moodle24_noten->note*$gewichtung; + $gewichtsumme+=$gewichtung; + $le_anz+=1; + //if ($moodle24_noten->note == 5) + // $leneg = " style='color:red; font-weight:bold'"; + //else + $leneg = ' style="font-weight: bold;"'; + $title="Moodle KursID: ".$moodle24_noten->mdl_course_id. + "\nKursbezeichnung: ".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id]. + "\nUser: ".$moodle24_noten->uid. + "\nNote: ".$moodle24_noten->note; + if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG) + $title.="\nGewichtung: ".$gewichtung; + $note_les_str .= "
".$moodle24_noten->note." (".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].") "; - } - } - } - } - else - { - //Noten aus Uebungstool - $le = new lehreinheit(); - $le->load_lehreinheiten($lvid, $stsem); - foreach($le->lehreinheiten as $l) - { - $legesamtnote = new legesamtnote($l->lehreinheit_id); + } + } + } + } + else + { + //Noten aus Uebungstool + $le = new lehreinheit(); + $le->load_lehreinheiten($lvid, $stsem); + foreach($le->lehreinheiten as $l) + { + $legesamtnote = new legesamtnote($l->lehreinheit_id); - if (!$legesamtnote->load($row_stud->uid,$l->lehreinheit_id)) - { - //$note_les_str .= "- (".$l->lehreinheit_id.")"; - } - else - { - $note_le += $legesamtnote->note; + if (!$legesamtnote->load($row_stud->uid,$l->lehreinheit_id)) + { + //$note_les_str .= "- (".$l->lehreinheit_id.")"; + } + else + { + $note_le += $legesamtnote->note; - $gewicht = $l->gewicht; - if($l->gewicht=='') - $gewicht = 1; - $note_le_gewichtet+=$legesamtnote->note*$gewicht; - $gewichtsumme+=$gewicht; + $gewicht = $l->gewicht; + if($l->gewicht=='') + $gewicht = 1; + $note_le_gewichtet+=$legesamtnote->note*$gewicht; + $gewichtsumme+=$gewicht; - $le_anz += 1; - if ($legesamtnote->note == 5) - $leneg = " style='color:red; font-weight:bold'"; - else - $leneg = ""; - if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG) - $title='Gewichtung: '.$l->gewicht; - else - $title=''; - $note_les_str .= ''.$legesamtnote->note.' ('.$l->lehreinheit_id.') '; - } - } - } + $le_anz += 1; + if ($legesamtnote->note == 5) + $leneg = " style='color:red; font-weight:bold'"; + else + $leneg = ""; + if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG) + $title='Gewichtung: '.$l->gewicht; + else + $title=''; + $note_les_str .= ''.$legesamtnote->note.' ('.$l->lehreinheit_id.') '; + } + } + } + } if ($lvgesamtnote = new lvgesamtnote($lvid,$row_stud->uid,$stsem)) { @@ -1190,8 +1218,10 @@ echo " else $znote = null; - - echo "".$note_les_str." "; + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) + { + echo "".$note_les_str." "; + } if (key_exists($row_stud->uid,$studpruef_arr)) $hide = "style='display:none;visibility:hidden;'"; @@ -1275,43 +1305,46 @@ echo " if(isset($noten_array[$znote]) && $noten_array[$znote]['positiv']==false) $summe_ng++; - // Pruefung 2. Termin - if (key_exists($row_stud->uid, $studpruef_arr)) + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2) { - echo ""; - echo ""; - echo ""; - $le_id_arr = array(); - $le_id_arr = array_keys($studpruef_arr[$row_stud->uid]); - foreach ($le_id_arr as $le_id_stud) - { - $pr_note = $studpruef_arr[$row_stud->uid][$le_id_stud]["note"]; - $pr_punkte = $studpruef_arr[$row_stud->uid][$le_id_stud]["punkte"]; - $pr_datum = $studpruef_arr[$row_stud->uid][$le_id_stud]["datum"]; - $pr_le_id = $le_id_stud; + // Pruefung 2. Termin + if (key_exists($row_stud->uid, $studpruef_arr)) + { + echo ""; - } - else - { - if (!is_null($note_lv) || !is_null($znote)) - echo ""; - else - echo ""; - } + echo ' + + + '; + } + echo "
"; + echo ""; + echo ""; + $le_id_arr = array(); + $le_id_arr = array_keys($studpruef_arr[$row_stud->uid]); + foreach ($le_id_arr as $le_id_stud) + { + $pr_note = $studpruef_arr[$row_stud->uid][$le_id_stud]["note"]; + $pr_punkte = $studpruef_arr[$row_stud->uid][$le_id_stud]["punkte"]; + $pr_datum = $studpruef_arr[$row_stud->uid][$le_id_stud]["datum"]; + $pr_le_id = $le_id_stud; - if($pr_punkte!='') - $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')'; - else - $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung']; + if($pr_punkte!='') + $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')'; + else + $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung']; - echo ' - - - '; - } - echo "
'.$pr_datum.''.$pr_notenbezeichnung.' -
"; - echo "
"; - echo "
'.$pr_datum.''.$pr_notenbezeichnung.' +
"; + echo "
"; + echo ""; + } + else + { + if (!is_null($note_lv) || !is_null($znote)) + echo ""; + else + echo ""; + } + } if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3) { @@ -1354,39 +1387,42 @@ echo " } } - // komm Pruefung - if (key_exists($row_stud->uid,$studpruef_komm)) + if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF) { - echo ""; - echo ""; - echo ""; - $le_id_arr = array(); - $le_id_arr = array_keys($studpruef_komm[$row_stud->uid]); - foreach ($le_id_arr as $le_id_stud) - { - $pr_note = $studpruef_komm[$row_stud->uid][$le_id_stud]["note"]; - $pr_punkte = $studpruef_komm[$row_stud->uid][$le_id_stud]["punkte"]; - $pr_datum = $studpruef_komm[$row_stud->uid][$le_id_stud]["datum"]; - $pr_le_id = $le_id_stud; + // komm Pruefung + if (key_exists($row_stud->uid,$studpruef_komm)) + { + echo ""; - } - else - { - echo ""; - } + echo ' + + + '; + } + echo "
"; + echo ""; + echo ""; + $le_id_arr = array(); + $le_id_arr = array_keys($studpruef_komm[$row_stud->uid]); + foreach ($le_id_arr as $le_id_stud) + { + $pr_note = $studpruef_komm[$row_stud->uid][$le_id_stud]["note"]; + $pr_punkte = $studpruef_komm[$row_stud->uid][$le_id_stud]["punkte"]; + $pr_datum = $studpruef_komm[$row_stud->uid][$le_id_stud]["datum"]; + $pr_le_id = $le_id_stud; - if($pr_punkte!='') - $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')'; - else - $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung']; + if($pr_punkte!='') + $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')'; + else + $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung']; - echo ' - - - '; - } - echo "
'.$pr_datum.''.$pr_notenbezeichnung.'
"; - echo "
"; - echo "
'.$pr_datum.''.$pr_notenbezeichnung.'
"; + echo "
"; + echo ""; + } + else + { + echo ""; + } + } echo ""; $i++; @@ -1397,12 +1433,27 @@ echo " echo " Σ - $summe_stud - - $summe_ng - $summe_t2 - $summe_t3 - $summe_komm + $summe_stud"; + if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && (!CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE)) + { + echo ""; + } + else + { + echo ""; + } + echo "$summe_ng"; + + if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2): ?> + "'>$summe_t2; + + "'>$summe_t3"; + + "'>$summe_komm + diff --git a/cis/private/lehre/benotungstool/verwaltung_listen.php b/cis/private/lehre/benotungstool/verwaltung_listen.php index 4c0f30e30..57a149caa 100644 --- a/cis/private/lehre/benotungstool/verwaltung_listen.php +++ b/cis/private/lehre/benotungstool/verwaltung_listen.php @@ -497,8 +497,17 @@ if(isset($_POST['uebung_neu']) || isset($_POST['abgabe_neu'])) if ($angabedatei_up) { $name_up = pathinfo($_FILES["angabedatei"]["name"]); + //Handle double file extensions (e.g.: .tar.gz) + //Array of possible double extensions + $ext_array = array('.tar.gz','.tar.bz2','.tar.xz','.tar.lzma','.tar.Z'); + //Find occurence of extensions ending with ".tar." + if (in_array(substr($_FILES["angabedatei"]["name"], strripos($_FILES["angabedatei"]["name"], '.tar.')), $ext_array)) + $extension = substr($_FILES["angabedatei"]["name"], strripos($_FILES["angabedatei"]["name"]+1, '.tar.')); + else + $extension = $name_up["extension"]; + $name_neu = makeUploadName($db, $which='angabe', $lehreinheit_id=$lehreinheit_id, $uebung_id=$uebung_id, $ss=$stsem); - $angabedatei = $name_neu.".".$name_up["extension"]; + $angabedatei = $name_neu.".".$extension; $angabepfad = BENOTUNGSTOOL_PATH."angabe/".$angabedatei; //$angabepfad = BENOTUNGSTOOL_PATH.$angabedatei; @@ -661,8 +670,16 @@ if(isset($_POST['uebung_edit'])) if ($angabedatei_up) { $name_up = pathinfo($_FILES["angabedatei"]["name"]); + //Handle double file extensions (e.g.: .tar.gz) + //Array of possible double extensions + $ext_array = array('.tar.gz','.tar.bz2','.tar.xz','.tar.lzma','.tar.Z'); + //Find occurence of extensions ending with ".tar." + if (in_array(substr($_FILES["angabedatei"]["name"], strripos($_FILES["angabedatei"]["name"], '.tar.')), $ext_array)) + $extension = substr($_FILES["angabedatei"]["name"], strripos($_FILES["angabedatei"]["name"]+1, '.tar.')); + else + $extension = $name_up["extension"]; $name_neu = makeUploadName($db, $which='angabe', $lehreinheit_id=$lehreinheit_id, $uebung_id=$uebung_id, $ss=$stsem); - $angabedatei_neu = $name_neu.".".$name_up["extension"]; + $angabedatei_neu = $name_neu.".".$extension; $angabepfad = BENOTUNGSTOOL_PATH."angabe/".$angabedatei_neu; //$angabepfad = BENOTUNGSTOOL_PATH.$angabedatei; diff --git a/cis/private/lehre/lesson.php b/cis/private/lehre/lesson.php old mode 100644 new mode 100755 index 7bbf7123a..b499fef1a --- a/cis/private/lehre/lesson.php +++ b/cis/private/lehre/lesson.php @@ -190,7 +190,7 @@ $( document ).ready(function() diff --git a/cis/private/lehre/pruefung/pruefung.js b/cis/private/lehre/pruefung/pruefung.js index a68c07d08..620f20db0 100644 --- a/cis/private/lehre/pruefung/pruefung.js +++ b/cis/private/lehre/pruefung/pruefung.js @@ -589,6 +589,8 @@ function resetForm() */ function setTablesorter(tableId) { + if($("#"+tableId).length != 0) + { if($("#"+tableId)[0].hasInitialized !== true) { $("#"+tableId).tablesorter({ @@ -602,6 +604,7 @@ function setTablesorter(tableId) var sorting = [[1,0],[0,0]]; $("#"+tableId).trigger("sorton",[sorting]); } + } } /** @@ -688,7 +691,6 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id) function writeAnmeldungen(data) { - console.log(data); if(data.error === 'false') { var terminId = data.result.anmeldungen[0].pruefungstermin_id; diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php index 08d718d9c..97a309fc9 100755 --- a/cis/private/lehre/pruefung/pruefung.js.php +++ b/cis/private/lehre/pruefung/pruefung.js.php @@ -30,6 +30,16 @@ $sprache = getSprache(); $lang = new sprache(); $lang->load($sprache); $p = new phrasen($sprache); + +if (defined('CIS_PRUEFUNGSANMELDUNG_FRIST')) +{ + $anmeldefrist = CIS_PRUEFUNGSANMELDUNG_FRIST; +} +else +{ + $anmeldefrist = 3; +} + ?> /* Copyright (C) 2013 fhcomplete.org @@ -318,7 +328,7 @@ function writePruefungsTable(e, data, anmeldung) var row = ""; var teilnehmer = ""; var button = ""; - row += "
"+e.organisationseinheit+""+e.lehrveranstaltung[0].bezeichnung+""; + row += "
"+e.organisationseinheit+""+e.lehrveranstaltung[0].bezeichnung+"
("+e.lehrveranstaltung[0].lehrform_kurzbz+", "+e.lehrveranstaltung[0].ects+" ECTS, "+e.pruefung.mitarbeiter_uid+")
"; e.pruefung.termine.forEach(function(d){ var storno = false; var anmeldung_id = null; @@ -336,7 +346,7 @@ function writePruefungsTable(e, data, anmeldung) var frist = termin; termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear(); frist = frist.getTime(); - frist = frist - (3*24*60*60*1000); + frist = frist - (*24*60*60*1000); var fristDate = new Date(frist); frist = fristDate.getDate()+"."+(fristDate.getMonth()+1)+"."+fristDate.getFullYear(); @@ -345,7 +355,7 @@ function writePruefungsTable(e, data, anmeldung) if(!storno) button = "

t('pruefung/anmeldefristAbgelaufen'); ?>
"; else - button = "

Storno nicht mehr möglich.
"; + button = "

t('pruefung/stornoNichtMehrMoeglich'); ?>
"; } else if(anmeldung || e.lehrveranstaltung[0].angemeldet) { @@ -370,7 +380,7 @@ function writePruefungsTable(e, data, anmeldung) if(d.max === null) { - teilnehmer += "unbegrenzt
"; + teilnehmer += "t('pruefung/unbegrenzt'); ?>
"; } else { @@ -623,19 +633,22 @@ function resetForm() */ function setTablesorter(tableId) { - if($("#"+tableId)[0].hasInitialized !== true) - { - $("#"+tableId).tablesorter({ - widgets: ["zebra"], - sortList: [[1,0]] - }); - } - else - { - $("#"+tableId).trigger("updateAll"); - var sorting = [[1,0],[0,0]]; - $("#"+tableId).trigger("sorton",[sorting]); - } + if($("#"+tableId).length != 0) + { + if($("#"+tableId)[0].hasInitialized !== true) + { + $("#"+tableId).tablesorter({ + widgets: ["zebra"], + sortList: [[1,0]] + }); + } + else + { + $("#"+tableId).trigger("updateAll"); + var sorting = [[1,0],[0,0]]; + $("#"+tableId).trigger("sorton",[sorting]); + } + } } /** @@ -722,13 +735,15 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id) function writeAnmeldungen(data) { - console.log(data); if(data.error === 'false') { var terminId = data.result.anmeldungen[0].pruefungstermin_id; var pruefung_id = data.result.anmeldungen[0].pruefung_id; var lehrveranstaltung_id = data.result.anmeldungen[0].lehrveranstaltung_id; var ort_kurzbz = data.result.ort_kurzbz; + var lv_bezeichnung = data.result.lv_bezeichnung; + var lv_lehrtyp = data.result.lv_lehrtyp; + var prf_termin = data.result.datum; var liste = "

    "; var count = 0; var studiensemester = $("#filter_studiensemester option:selected").val(); @@ -764,6 +779,7 @@ function writeAnmeldungen(data) liste += "
"; $("#anmeldung_hinzufuegen").html("' onclick='saveAnmeldung(\""+lehrveranstaltung_id+"\",\""+terminId+"\");'/>"); $("#reihungSpeichernButton").html("' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"); + $("#lvdaten").html(lv_bezeichnung+" ("+prf_termin+")"); $("#anmeldeDaten").html(liste); $("#listeDrucken").html("t('pruefung/listeDrucken'); ?>"); if(ort_kurzbz !== null) @@ -958,10 +974,17 @@ function loadPruefungStudiengang(studiengang_kz, studiensemester) var liste = ""; data.result.forEach(function(e){ liste += ""; + try + { + e.pruefung[0].termine.forEach(function(d){ + liste += "
  • "+convertDateTime(d.von)+" "+convertDateTime(d.von, "time")+" - "+convertDateTime(d.bis, "time")+"
  • "; + }); + } + catch(err) + { + var errmsg = err.message; + } + liste += ""; }); $("#pruefungenListe").append(liste); } @@ -1309,6 +1332,7 @@ function unmarkMissingFormEntry() function loadLehrveranstaltungen() { var studiensemester_kurzbz = $("#studiensemester").val(); + //alert(studiensemester_kurzbz); var mitarbeiter_uid = $("#mitarbeiter_uid").val(); $.ajax({ dataType: 'json', diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index bd093c2a5..7a1dbbf6d 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -31,6 +31,14 @@ require_once('../../../../include/mail.class.php'); require_once('../../../../include/anrechnung.class.php'); require_once('../../../../include/prestudent.class.php'); require_once('../../../../include/person.class.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); $uid = get_uid(); @@ -361,6 +369,7 @@ function loadTermine() */ function saveAnmeldung($aktStudiensemester = null, $uid = null) { + global $p; $termin = new pruefungstermin($_REQUEST["termin_id"]); $pruefung = new pruefung(); $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); @@ -426,6 +435,10 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $pruefung->getPruefungen($uid, NULL, $lehrveranstaltung->lehrveranstaltung_id); $anmeldung_moeglich = true; $anzahlPruefungen = count($pruefung->result); + + // Defaulteinstellung für Prüfungstypen - schauen, ob bereits aus KTU-Addon geladen + if(!isset($pruefungstyp_kurzbzArray)) + $pruefungstyp_kurzbzArray = array("Termin1","Termin2","kommPruef"); if(isset($pruefungstyp_kurzbzArray)) { if($anzahlPruefungen < count($pruefungstyp_kurzbzArray)) @@ -445,8 +458,8 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) { $pruefungsanmeldung = new pruefungsanmeldung($prf->pruefungsanmeldung_id); $pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id); - $p = new pruefungCis($pruefungstermin->pruefung_id); - $pruefungsfenster = new pruefungsfenster($p->pruefungsfenster_id); + $pf = new pruefungCis($pruefungstermin->pruefung_id); + $pruefungsfenster = new pruefungsfenster($pf->pruefungsfenster_id); $studiensemester = new studiensemester(); $stdsem = $studiensemester->getaktorNext(); $i=0; @@ -473,8 +486,8 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) { if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) { - $pruefung = new pruefungCis(); - $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); + $pruefung = new pruefungCis(); + $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); $anmeldung = new pruefungsanmeldung(); $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; @@ -487,12 +500,13 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $konto = new konto(); $creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester); + if($creditpoints !== false) { if($creditpoints < $lehrveranstaltung->ects) { $data['error'] = 'true'; - $data['errormsg'] = 'Credit-Points-Guthaben ist zu gering.'; + $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); return $data; } } @@ -506,7 +520,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) { $data['result'][$temp->pruefungstermin_id] = "true"; $data['error'] = 'true'; - $data['errormsg'] = 'Kollision mit anderer Anmeldung.'; + $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung'); } } if(isset($data['error']) && $data['error'] = 'true') @@ -517,14 +531,14 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) else { $data['error']='true'; - $data['errormsg']='Keine freien Plätze vorhanden.'; + $data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden'); return $data; } } else { $data['error']='true'; - $data['errormsg']='Anmeldung auf Grund von Sperre nicht möglich.'; + $data['errormsg']=$p->t('pruefung/anmeldungAufgrundVonSperreNichtMoeglich'); return $data; } @@ -534,6 +548,10 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $person->getPersonFromBenutzer($uid); $prestudent = new prestudent(); $prestudent->getPrestudenten($person->person_id); + $studiensemester = new studiensemester(); + $stdsem = $studiensemester->getaktorNext(); + if ($aktStudiensemester) + $stdsem = $aktStudiensemester; if(count($prestudent->result) > 0) { @@ -550,58 +568,65 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } if($prestudent_id != "") { - $anrechungSaveResult = false; - if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) - { - $anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id; - $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; - $anrechnung->prestudent_id = $prestudent_id; - $anrechnung->begruendung_id = "2"; - $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; - $anrechnung->new = true; - $anrechungSaveResult = $anrechnung->save(); - } - else - { - $anrechungSaveResult = true; - } + $anrechungSaveResult = false; + if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) + { + if($lv_komp->lehrveranstaltung_id != null && ($lv_komp->lehrveranstaltung_id != $lehrveranstaltung->lehrveranstaltung_id)) + { + $anrechnung->lehrveranstaltung_id = $lv_komp->lehrveranstaltung_id; + $anrechnung->lehrveranstaltung_id_kompatibel = $lehrveranstaltung->lehrveranstaltung_id; + $anrechnung->prestudent_id = $prestudent_id; + $anrechnung->begruendung_id = "2"; + $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; + $anrechnung->new = true; + $anrechungSaveResult = $anrechnung->save(); + } + else + { + $anrechungSaveResult = true; + } + } + else + { + $anrechungSaveResult = true; + } if($anrechungSaveResult) { - if($anrechnung->anrechnung_id == "") - $anmeldung->anrechnung_id = null; - else - $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; - - 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; + if($anrechnung->anrechnung_id == "") + $anmeldung->anrechnung_id = null; 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."); + $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; - $student = new student($uid); - $datum = new datum(); + 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 = $p->t('pruefung/emailLektorSubjectAnmeldung'); + $mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht')); - $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); + $student = new student($uid); + $datum = new datum(); - $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(); + $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); - $data['result'] = "Anmeldung erfolgreich!"; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$anmeldung->errormsg; - } + $html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"H:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"H:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet'); + $mail->setHTMLContent($html); + $mail->send(); + + $data['result'] = $p->t('pruefung/anmeldungErfolgreich'); + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$anmeldung->errormsg; + } } else { @@ -612,13 +637,13 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) else { $data['error']='true'; - $data['errormsg']="Prestudent nicht gefunden."; + $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); } } else { $data['error']='true'; - $data['errormsg']="Prestudent nicht gefunden."; + $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); } return $data; } @@ -694,6 +719,7 @@ function getAllPruefungen($aktStudiensemester = null, $uid = null) */ function stornoAnmeldung($uid = null) { + global $p; $pruefungsanmeldung_id=$_REQUEST['pruefungsanmeldung_id']; $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); $anrechnung = new anrechnung($pruefungsanmeldung->anrechnung_id); @@ -701,7 +727,7 @@ function stornoAnmeldung($uid = null) { if($anrechnung->delete($anrechnung->anrechnung_id)) { - $data['result'] = 'Anmeldung erfolgreich gelöscht.'; + $data['result'] = $p->t('pruefung/anmeldungErfolgreichGeloescht'); $data['error'] = 'false'; $data['errormsg'] = ''; } @@ -722,11 +748,17 @@ function stornoAnmeldung($uid = null) */ function getAnmeldungenTermin() { + global $p; $lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; $pruefungstermin_id = $_REQUEST["pruefungstermin_id"]; $pruefungstermin = new pruefungstermin($pruefungstermin_id); $pruefungsanmeldung = new pruefungsanmeldung(); $pruefungstermin->anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id); + $lv = new lehrveranstaltung($lehrveranstaltung_id); + $pruefungstermin->lv_bezeichnung = $lv->bezeichnung; + $pruefungstermin->lv_lehrtyp = $lv->lehrtyp_kurzbz; + $datum = new DateTime($pruefungstermin->von); + $pruefungstermin->datum = $datum->format('d.m.Y'); foreach($pruefungstermin->anmeldungen as $a) { $student = new student($a->uid); @@ -751,7 +783,7 @@ function getAnmeldungenTermin() } else { - $data['errormsg']= 'Keine Anmeldungen vorhanden'; + $data['errormsg']= $p->t('pruefung/keineAnmeldungenVorhanden'); } } return $data; @@ -785,6 +817,7 @@ function saveReihung() */ function anmeldungBestaetigen($uid) { + global $p; $pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"]; $status = "bestaetigt"; $anmeldung = new pruefungsanmeldung(); @@ -800,27 +833,27 @@ function anmeldungBestaetigen($uid) $to = $anmeldung->uid."@".DOMAIN; $from = "noreply@".DOMAIN; - $subject = "Anmeldungsbestätigung zur Prüfung"; - $html = "Ihre Anmeldung zur Prüfung wurde von ".$ma->vorname." ".$ma->nachname." bestätigt.
    "; + $subject = $p->t('pruefung/emailSubjectAnmeldungBestaetigung'); + $html = $p->t('pruefung/emailBody1')." ".$ma->vorname." ".$ma->nachname." ".$p->t('pruefung/emailBody2')."
    "; $html .= "
    "; - $html .= "Prüfung: ".$lv->bezeichnung."
    "; + $html .= $p->t('pruefung/emailBodyPruefung')." ".$lv->bezeichnung."
    "; if($pruefung->einzeln) { - $date = $datum->formatDatum($termin->von, "Y-m-d h:i:s"); + $date = $datum->formatDatum($termin->von, "Y-m-d H:i:s"); $date = strtotime($date); $date = $date+(60*$pruefung->pruefungsintervall*($anmeldung->reihung-1)); - $von = date("h:i",$date); - $html .= "Termin: ".$datum->formatDatum($termin->von, "d.m.Y")." um ".$von."
    "; - $html .= "Dauer: ".$pruefung->pruefungsintervall." Minuten
    "; + $von = date("H:i",$date); + $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$von."
    "; + $html .= $p->t('pruefung/emailBodyDauer')." ".$pruefung->pruefungsintervall." ".$p->t('pruefung/emailBodyMinuten')."
    "; } else - $html .= "Termin: ".$datum->formatDatum($termin->von, "d.m.Y")." um ".$datum->formatDatum($termin->von, "h:i")."
    "; - $html .= "Ort: ".$ort->bezeichnung."
    "; + $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$datum->formatDatum($termin->von, "H:i")."
    "; + $html .= $p->t('pruefung/anmeldungErfolgreich')." ".$ort->bezeichnung."
    "; $html .= "
    "; - $html .= "Link zur Anmeldung
    "; + $html .= "".$p->t('pruefung/emailBodyLinkZurAnmeldung')."
    "; $html .= "
    "; - $mail = new mail($to, $from, $subject,"Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen."); + $mail = new mail($to, $from, $subject,$p->t('pruefung/emailBodyBitteHtmlSicht')); $mail->setHTMLContent($html); $mail->send(); diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php index 900e25a0a..5551adb70 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php @@ -230,6 +230,7 @@ $studiensemester->getAll();
    +

    t('pruefung/lvVonStudiengang'); ?>

    @@ -246,6 +247,7 @@ $studiensemester->getAll();
    +

    t('pruefung/lvAlle'); ?>

    diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php index bd95242d3..ea07690bb 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php @@ -66,7 +66,7 @@ $rechte->getBerechtigungen($uid); min-height: 297mm; padding: 20mm; margin: 10mm auto; - border: 1px #D3D3D3 solid; + border: 1px #ffffff solid; border-radius: 5px; background: white; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); @@ -75,7 +75,7 @@ $rechte->getBerechtigungen($uid); #subpage { padding: 10mm; - border: 1px black solid; + border: 1px white solid; height: 256mm; outline: 20mm } @@ -229,6 +229,8 @@ $rechte->getBerechtigungen($uid); + + @@ -245,19 +247,22 @@ $rechte->getBerechtigungen($uid); $date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s"); $date = strtotime($date); $date = $date+(60*$pruefungsintervall*($count)); - $date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("h:i",$date); + $date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date); $count++; } else { $date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i"); + $count++; } echo ''; - echo ''; + echo ''; echo ''; echo ''; - echo ''; + echo ''; echo ''; + echo ''; + echo ''; echo ''; } ?> @@ -274,6 +279,19 @@ $rechte->getBerechtigungen($uid); } ?>
    t('global/nachname'); ?> t('global/matrikelnummer'); ?> t('global/datum'); ?>t('benotungstool/note'); ?>t('global/anmerkung'); ?>
    '.$anmeldung->reihung.''.$count.''.$student->vorname.''.$student->nachname.''.$student->matrikelnr.''.$student->matr_nr.''.$date.'
    +
    + + + + + + + + + + + diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php index b1cd1eb82..a4c0ca182 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php @@ -275,7 +275,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
    -

    t('pruefung/pruefungsbewertungAnmeldungen'); ?>

    +

    t('pruefung/pruefungsbewertungAnmeldungen'); ?>

    diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.js.php b/cis/private/lehre/pruefung/pruefungsbewertung.js.php new file mode 100755 index 000000000..f5871cd9c --- /dev/null +++ b/cis/private/lehre/pruefung/pruefungsbewertung.js.php @@ -0,0 +1,300 @@ + + */ + + +require_once('../../../../config/cis.config.inc.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); + +?> + + +/** + * Error-Behandlung bei Ajax Requests + */ + + +function loadError(xhr, textStatus, errorThrown) +{ + if(xhr.status==200) + alert('Fehler:'+xhr.responseText); + else + alert('Fehler beim Laden der Daten. ErrorNr:'+xhr.status); +} + +/** + * Lädt alle Prüfungen eines Mitarbeiters + * @returns {undefined} + */ +function loadPruefungenMitarbeiter() +{ + var uid = $("#mitarbeiter_uid").val(); + $.ajax({ + dataType: 'json', + url: "./pruefungsbewertung.json.php", + type: "POST", + data: { + method: "getPruefungMitarbeiter", + mitarbeiter_uid: uid + }, + error: loadError + }).success(function(data){ + $("#pruefungen").find("h2").first().text("t('pruefung/pruefungPruefungenTitle'); ?> ("+uid+")"); + if(data.error === 'false') + { + var liste = ""; + data.result.forEach(function(e){ + liste += "
  • "+e.bezeichnung+"
      "; + e.pruefung.lehrveranstaltungen.forEach(function(d) + { + d.pruefung.termine.forEach(function(f){ + liste += "
    • "+convertDateTime(f.von)+"
    • "; + }); + }) + liste += "
    "; + }); + $("#pruefungenListe").html(liste); + } + else + { + $("#pruefungenListe").html(data.errormsg); + } + }); +} + +/** + * Lädt die Anmeldungen zu einer Prüfung + * @param {type} pruefungstermin_id ID des Prüfungstermins + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {undefined} + */ +function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstaltung, datum) +{ + $("#modalOverlay").addClass("modalOverlay"); + $("#anmeldeDaten").empty(); + $("#anmeldungen").children("h2").text("t('pruefung/bewertungenZu'); ?> "+lehrveranstaltung+" ("+datum+")"); + var noten = ""; + } + else + { + messageBox("message",data.errormsg, "red", "highlight", 1000); + } + }).complete(function(event, xhr, settings){ + var notenSelect = noten; + $.ajax({ + dataType: 'json', + url: "./pruefungsbewertung.json.php", + type: "POST", + data: { + method: "getAnmeldungenTermin", + pruefungstermin_id: pruefungstermin_id, + lehrveranstaltung_id: lehrveranstaltung_id + }, + error: loadError + }).success(function(data){ + var entry = ""; + if(data.error === "false") + { + data.result.forEach(function(d) + { + if(d.status_kurzbz === "bestaetigt") + { + var datum = d.von.split(" "); + if(d.pruefung.note===null) + { + entry = "
    "+d.student.vorname+" "+d.student.nachname+"
    "+notenSelect+"'/>
    ' />
    "; + } + else + { + entry = "
    "+d.student.vorname+" "+d.student.nachname+"
    "+notenSelect+"'/>
    ' value='"+d.pruefung.anmerkung+"' />
    "; + } + $("#anmeldeDaten").append(entry); + if(d.pruefung.note!==null) + { + markAsSaved(document.getElementById(d.student.uid).firstChild); + $("#"+d.student.uid).find("select").val(d.pruefung.note); + } + else + { + markAsUnsaved(document.getElementById(d.student.uid).firstChild); + } + var t = $("#note_anmerkung_"+d.student.uid).parent().find('select').first().width(); + $("#note_anmerkung_"+d.student.uid).width(t); + } + }); + if(entry === "") + { + entry = "
    Keine Anmeldungen vorhanden.
    "; + $("#anmeldeDaten").html(entry); + } + } + else + { + entry = "
    "+data.errormsg+"
    "; + $("#anmeldeDaten").html(entry); + } + }).complete(function(event, xhr, settings){ + $("#modalOverlay").removeClass("modalOverlay"); + }); + }); +} + +/** + * Speichert eine Beurteilung + * @param {type} ele Element das die Funtkion aufruft + * @param {type} datum + * @param {type} pruefungsanmeldung_id ID der Anmeldung + * @param {type} pruefung_id ID der Prüfung + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {void} + */ +function saveBeurteilung(ele, datum, pruefungsanmeldung_id, pruefung_id, lehrveranstaltung_id) +{ + var student_uid = $(ele).parent().attr("id"); + var mitarbeiter_uid = $("#mitarbeiter_uid").val(); + var note = $(ele).parent().find("select").val(); + if((note === "null") || (note===null)) + { + messageBox("message", "Keine Note ausgewählt.", "red", "highlight", 1000); + return false; + } + var anmerkung = $("#note_anmerkung_"+student_uid).val(); + + $.ajax({ + dataType: 'json', + url: "./pruefungsbewertung.json.php", + type: "POST", + data: { + method: "saveBeurteilung", + pruefung_id: pruefung_id, + lehrveranstaltung_id: lehrveranstaltung_id, + student_uid: student_uid, + mitarbeiter_uid: mitarbeiter_uid, + note: note, + //TODO Datum der Prüfung oder der Beurteilung????? + datum: datum, + anmerkung: anmerkung, + pruefungsanmeldung_id: pruefungsanmeldung_id + }, + error: loadError + }).success(function(data){ + if(data.error != 'true') + { + markAsSaved(ele); + $(ele).attr("onclick", "updateBeurteilung(this,\""+data.result+"\")"); + } + else + { + messageBox("message",data.errormsg, "red", "highlight", 1000); + $(ele).parent().find("select").val(null); + } + }).complete(function(event, xhr, settings){ + + }); +} + +/** + * Aktualisiert eine Beurteilung + * @param {type} ele Element das die Funtkion aufruft + * @param {type} pruefung_id ID der Prüfung + * @returns {undefined} + */ +function updateBeurteilung(ele, pruefung_id) +{ + var student_uid = $(ele).parent().attr("id"); + var mitarbeiter_uid = $("#mitarbeiter_uid").val(); + var note = $(ele).parent().find("select").val(); + var anmerkung = $("#note_anmerkung_"+student_uid).val(); + if((note === "null") || (note===null)) + { + messageBox("message", "Keine Note ausgewählt.", "red", "highlight", 1000); + return false; + } + $.ajax({ + dataType: 'json', + url: "./pruefungsbewertung.json.php", + type: "POST", + data: { + method: "updateBeurteilung", + pruefung_id: pruefung_id, + note: note, + anmerkung: anmerkung + }, + error: loadError + }).success(function(data){ + if(data.error != 'true') + { + markAsSaved(ele); + } + else + { + messageBox("message",data.errormsg, "red", "highlight", 1000); + } + + + }).complete(function(event, xhr, settings){ + + }); +} + +/** + * Markiert einen Datensatz als gespeichert + * @param {type} ele Element das die Funtkion aufruft + * @returns {undefined} + */ +function markAsSaved(ele) +{ + $(ele).parent().removeClass("unsaved"); + $(ele).parent().addClass("saved"); +} + +/** + * Markiert einen Datensatz als ungespeichert + * @param {type} ele Element das die Funtkion aufruft + * @returns {undefined} + */ +function markAsUnsaved(ele) +{ + $(ele).parent().removeClass("saved"); + $(ele).parent().addClass("unsaved"); +} diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.json.php b/cis/private/lehre/pruefung/pruefungsbewertung.json.php index 0ff901e0c..6e5aad377 100755 --- a/cis/private/lehre/pruefung/pruefungsbewertung.json.php +++ b/cis/private/lehre/pruefung/pruefungsbewertung.json.php @@ -5,13 +5,19 @@ header( 'Cache-Control: no-store, no-cache, must-revalidate' ); header( 'Pragma: no-cache' ); header('Content-Type: text/html;charset=UTF-8'); -require_once('../../../../config/cis.config.inc.php'); +require_once('../../../../config/global.config.inc.php'); +if (defined('CIS_PRUEFUNG_SET_ZEUGNISNOTE') && CIS_PRUEFUNG_SET_ZEUGNISNOTE) + require_once('../../../../config/vilesci.config.inc.php'); +else + require_once('../../../../config/cis.config.inc.php'); + require_once('../../../../include/functions.inc.php'); require_once('../../../../include/pruefungCis.class.php'); require_once('../../../../include/lehrveranstaltung.class.php'); require_once('../../../../include/benutzerberechtigung.class.php'); require_once('../../../../include/studiensemester.class.php'); require_once('../../../../include/note.class.php'); +require_once('../../../../include/zeugnisnote.class.php'); require_once('../../../../include/pruefung.class.php'); require_once('../../../../include/pruefungsanmeldung.class.php'); require_once('../../../../include/student.class.php'); @@ -271,6 +277,28 @@ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $data['error']='true'; $data['errormsg']=$pruefung->errormsg; } + if (defined('CIS_PRUEFUNG_SET_ZEUGNISNOTE') && CIS_PRUEFUNG_SET_ZEUGNISNOTE) + { + $zeugnisnote = new zeugnisnote(); + $zeugnisnote->new = true; + $zeugnisnote->lehrveranstaltung_id = $lehrveranstaltung_id; + $zeugnisnote->student_uid = $student_uid; + $zeugnisnote->studiensemester_kurzbz = $pruefungCis->studiensemester_kurzbz; + $zeugnisnote->note = $note; + $zeugnisnote->benotungsdatum = $pruefung->datum; + $zeugnisnote->insertamum = date('Y-m-d H:i:s'); + $zeugnisnote->insertvon = $uid; + $zeugnisnote_check = new zeugnisnote(); + if (!$zeugnisnote_check->load($zeugnisnote->lehrveranstaltung_id, $zeugnisnote->student_uid, $zeugnisnote->studiensemester_kurzbz)) + { + $zeugnisnote->save(true); + } + else + { + $data['error'] = 'true'; + $data['errormsg'] = 'Existing Grade'; + } + } } else { diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.php b/cis/private/lehre/pruefung/pruefungsbewertung.php index 28894e13c..7137e0a35 100755 --- a/cis/private/lehre/pruefung/pruefungsbewertung.php +++ b/cis/private/lehre/pruefung/pruefungsbewertung.php @@ -62,7 +62,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA - + diff --git a/cis/private/lehre/pruefung/pruefungstermin_festlegen.php b/cis/private/lehre/pruefung/pruefungstermin_festlegen.php index 909ea18bd..31428cdaf 100755 --- a/cis/private/lehre/pruefung/pruefungstermin_festlegen.php +++ b/cis/private/lehre/pruefung/pruefungstermin_festlegen.php @@ -195,7 +195,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
  • diff --git a/cis/private/lvplan/stpl_kalender.php b/cis/private/lvplan/stpl_kalender.php index 47258eab2..bae1b5795 100644 --- a/cis/private/lvplan/stpl_kalender.php +++ b/cis/private/lvplan/stpl_kalender.php @@ -231,7 +231,8 @@ if(!isset($begin) || !isset($ende)) } } -if($ende-$begin>31536000) + +if($ende-$begin>34560000) // = 400 Tage { die($p->t('lvplan/datumsbereichZuGross')."!"); } diff --git a/cis/private/profile/lva_liste.php b/cis/private/profile/lva_liste.php index 04889e6a5..ee30987a4 100644 --- a/cis/private/profile/lva_liste.php +++ b/cis/private/profile/lva_liste.php @@ -35,6 +35,7 @@ require_once('../../../include/studiensemester.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/lvangebot.class.php'); +require_once('../../../include/addon.class.php'); if (!$db = new basis_db()) @@ -57,6 +58,12 @@ require_once('../../../include/lvangebot.class.php'); $datum = new datum(); + $addon = new addon(); + if(in_array('lvinfo',$addon->aktive_addons)) + $lvinfo=true; + else + $lvinfo=false; + //Studiensemester abfragen. Letzten 5, aktuelles und naechstes. $sql_query='SELECT * FROM public.tbl_studiensemester WHERE (start<=(now()::date+240) AND ende>=(now()::date-900)) ORDER BY start'; $result_stdsem=$db->db_query($sql_query); @@ -161,6 +168,11 @@ require_once('../../../include/lvangebot.class.php'); '; if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN) echo ''; + + + if($lvinfo) + echo ''; + echo ' @@ -192,6 +204,10 @@ require_once('../../../include/lvangebot.class.php'); echo ''; if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN) echo ''; + + if($lvinfo) + echo ''; + echo ''; echo ''; if ($row->lehrfach_bez!=$row->lv_bezeichnung) @@ -228,6 +244,11 @@ require_once('../../../include/lvangebot.class.php'); echo ''; echo ''; } + else + { + echo ' + '; + } //echo ''; Lektoren sollen die Anmerkung dzt. nicht sehen, da nur für intern gedacht echo ''; @@ -238,8 +259,12 @@ require_once('../../../include/lvangebot.class.php'); echo ''; if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN) echo ''; + if($lvinfo) + echo ''; + echo ''; echo ''; + echo ''; echo ''; echo ''; diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 64d85dfdb..409d0a87b 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -1,669 +1,728 @@ - - * - * Zeigt den Studienplan eines Studierenden an - * und bietet die Möglichkeit zur Anmeldung zu Lehrveranstaltungen. - * Dabei werden Regeln und Anmeldezeiträume der Lehrveranstaltungen berücksichtigt. - */ -require_once('../../../config/cis.config.inc.php'); -require_once('../../../config/global.config.inc.php'); -require_once('../../../include/functions.inc.php'); -require_once('../../../include/studienordnung.class.php'); -require_once('../../../include/studienplan.class.php'); -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/zeugnisnote.class.php'); -require_once('../../../include/lvangebot.class.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/phrasen.class.php'); -require_once('../../../include/note.class.php'); -require_once('../../../include/benutzerberechtigung.class.php'); -require_once('../../../include/benutzergruppe.class.php'); -require_once('../../../include/konto.class.php'); -require_once('../../../include/lvinfo.class.php'); -require_once('../../../include/addon.class.php'); - -$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']; -} - -$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); - 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)) - { - // User ist noch nicht angemeldet - //Pruefen ob genug Credit Points zur Verfuegung stehen zur Anmeldung - - $konto = new konto(); - $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 - echo '
    '.$lv->bezeichnung.''; - } - else - { - // Bereits angemeldet - echo '
    '.$lv->bezeichnung.''; - } - } -/* else - { - // LV wird angeboten, Anmeldefenster ist aber nicht offen oder keine Gruppe zugeteilt - echo '
    '.$lv->bezeichnung.''; - }*/ - } - } - - if($anzahl>0) - echo '

    '; - else - echo '

    '.$p->t('studienplan/AnmeldungDerzeitNichtMoeglich'); - exit(); -} -echo ' - - - - '.$p->t('studienplan/studienplan').' - - - - - '; - - // ADDONS laden - $addon_obj = new addon(); - $addon_obj->loadAddons(); - foreach($addon_obj->result as $addon) - { - if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php')) - echo ''; - } - - // Wenn Seite fertig geladen ist Addons aufrufen - echo ' - - '; - -echo ' - - - -
    '.$p->t('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 - $bngruppe = new benutzergruppe(); - - if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem)) - { - - // 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) - { - $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/bereitsAngemeldet').''; - } - } - else - echo $lvangebot->result[0]->errormsg; - } - else - echo $p->t('studienplan/AnmeldungNichtMoeglich'); -} - -$db = new basis_db(); -$datum_obj = new datum(); -// Student Laden -$student = new student(); -$student->load($uid); - -// ersten Status holen -$prestudent = new prestudent(); -$prestudent->getFirstStatus($student->prestudent_id, 'Student'); - -$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->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++) - { - 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('',$uid,'')) -{ - 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 '
    t('pruefung/derLektor'); ?>getFullName(FALSE); ?>
    t('pruefung/dieKommission'); ?>
    t('global/studiensemester'); ?>: -
    '.$p->t('lvaliste/gesamtnote').''.$p->t('lvaliste/lvinfo').''.$p->t('lvaliste/lehrfach').' '.$p->t('lvaliste/lehrform').'
    '.$p->t('lvaliste/gesamtnote').''.$p->t('lvaliste/lvinfo').''.$row->lehrfach.''.$row->le_lehrform_kurzbz.''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_start, "d.m.Y").''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_ende, "d.m.Y").'  '.$row->le_anmerkung.'
           
    - - - '; - -if(CIS_STUDIENPLAN_SEMESTER_ANZEIGEN) - echo ''; - -echo ' - '; - -foreach($stsem_arr as $stsem) -{ - echo ''; -} -echo ' - - - '; - -// 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($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 ''; - - // Wenn Subtree vorhanden, dann anzeigen - if(!empty($row_tree->childs)) - drawTree($row_tree->childs, $depth+1); - } -} -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($uid, $stsem); - if($cp!==false) - echo '
    Information
    '; - 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.''.$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) - { - foreach($kompatibleLVs as $komp) - { - if(isset($noten_arr[$komp])) - { - $positiv=false; - foreach($noten_arr[$komp] as $note) - { - if($note_pruef_arr[$note]->positiv) - $positiv=true; - } - - if($positiv) - echo ''.$p->t('studienplan/abgeschlossen').''; - else - echo ''.$p->t('studienplan/negativ').''; - } - } - } - 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 '
    '; -echo '

    '.$p->t('studienplan/legende').':
    - - - - - - - - - - - - - - - - - - - - - - -
          '.$p->t('studienplan/legendeLVwirdAngeboten').'
    '.$p->t('studienplan/Anmeldung').'
    '.$p->t('studienplan/legendeAngemeldet').'
    '.$p->t('studienplan/legendeLock').'
    -'; - -echo ' -'; -?> + + * + * Zeigt den Studienplan eines Studierenden an + * und bietet die Möglichkeit zur Anmeldung zu Lehrveranstaltungen. + * Dabei werden Regeln und Anmeldezeiträume der Lehrveranstaltungen berücksichtigt. + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../config/global.config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/studienordnung.class.php'); +require_once('../../../include/studienplan.class.php'); +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/zeugnisnote.class.php'); +require_once('../../../include/lvangebot.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/phrasen.class.php'); +require_once('../../../include/note.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +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(); + +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']; +} + +$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); + 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)) + { + // User ist noch nicht angemeldet + //Pruefen ob genug Credit Points zur Verfuegung stehen zur Anmeldung + + $konto = new konto(); + $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 + echo '
    '.$lv->bezeichnung.''; + } + else + { + // Bereits angemeldet + echo '
    '.$lv->bezeichnung.''; + } + } +/* else + { + // LV wird angeboten, Anmeldefenster ist aber nicht offen oder keine Gruppe zugeteilt + echo '
    '.$lv->bezeichnung.''; + }*/ + } + } + + if($anzahl>0) + echo '

    '; + else + echo '

    '.$p->t('studienplan/AnmeldungDerzeitNichtMoeglich'); + exit(); +} +echo ' + + + + '.$p->t('studienplan/studienplan').' + + + + + '; + + // ADDONS laden + $addon_obj = new addon(); + $addon_obj->loadAddons(); + foreach($addon_obj->result as $addon) + { + if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php')) + echo ''; + } + + // Wenn Seite fertig geladen ist Addons aufrufen + echo ' + + '; + +echo ' + + + +
    '.$p->t('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 + $bngruppe = new benutzergruppe(); + + if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem)) + { + + // 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) + { + $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/bereitsAngemeldet').''; + } + } + else + echo $lvangebot->result[0]->errormsg; + } + else + echo $p->t('studienplan/AnmeldungNichtMoeglich'); +} + +$db = new basis_db(); +$datum_obj = new datum(); +// Student Laden +$student = new student(); +$student->load($uid); + +// ersten Status holen +$prestudent = new prestudent(); +$prestudent->getFirstStatus($student->prestudent_id, 'Student'); + +$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->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++) + { + 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('',$uid,'')) +{ + 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); + +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 ' + '; + + // 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) + { + $found = false; + $i = 0; + while(!$found && $i < count($kompatibleLVs)) + { + foreach($kompatibleLVs as $komp) + { + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($student->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 ''; + + // Wenn Subtree vorhanden, dann anzeigen + if(!empty($row_tree->childs)) + drawTree($row_tree->childs, $depth+1); + } +} +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($uid, $stsem); + if($cp!==false) + echo '
    Information
    '; + 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.''.$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)) + { + foreach($kompatibleLVs as $komp) + { + + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($student->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 ''; + echo $tdinhalt; + echo '
    '; +echo '

    '.$p->t('studienplan/legende').':
    + + + + + + + + + + + + + + + + + + + + + + +
          '.$p->t('studienplan/legendeLVwirdAngeboten').'
    '.$p->t('studienplan/Anmeldung').'
    '.$p->t('studienplan/legendeAngemeldet').'
    '.$p->t('studienplan/legendeLock').'
    +'; + +echo ' +'; +?> diff --git a/cis/public/accountactivation.php b/cis/public/accountactivation.php old mode 100644 new mode 100755 index 1726ffaaa..823c50823 --- a/cis/public/accountactivation.php +++ b/cis/public/accountactivation.php @@ -36,10 +36,10 @@ if(isset($_GET['sprache'])) } $erfolgreichaktiviert=false; -$sprache = getSprache(); +$sprache = getSprache(); $p = new phrasen($sprache); -$securimage = new Securimage(); +$securimage = new Securimage(); $errormsg=''; $db = new basis_db(); @@ -55,9 +55,9 @@ else if(isset($_POST['submit'])) -{ - // Captcha Pruefen - if ($securimage->check($_POST['captcha_code']) == true) +{ + // Captcha Pruefen + if ($securimage->check($_POST['captcha_code']) == true) { // Benutzer laden $benutzer = new benutzer(); @@ -68,7 +68,7 @@ if(isset($_POST['submit'])) { $passwort = $_POST['passwort']; $passwort2 = $_POST['passwort2']; - + // Vergleichen ob beide Passwoerter gleich sind if($passwort==$passwort2) { @@ -89,22 +89,22 @@ if(isset($_POST['submit'])) } else { - $errormsg='Passwoerter stimmen nicht ueberein'; + $errormsg = $p->t('passwort/NichtUebereinstimmend'); } } else { - $errormsg='Code oder Username falsch'; + $errormsg = $p->t('passwort/CodeOderUsernameFalsch'); } } else { - $errormsg='Code oder Username falsch'; + $errormsg = $p->t('passwort/CodeOderUsernameFalsch'); } } else { - $errormsg= 'Captcha Code falsch'; + $errormsg= $p->t('passwort/CaptchaCodeFalsch'); } } @@ -118,7 +118,7 @@ echo ' @@ -132,8 +132,8 @@ echo ' if($erfolgreichaktiviert) { - echo '

    Ihr Account wurde erfolgreich aktiviert



    - >> Weiter zum Login'; + echo '

    '.$p->t('passwort/AccountErfolgreichAktiviert').'



    + >> '.$p->t('passwort/WeiterZumLogin').''; } else { @@ -159,7 +159,7 @@ else

    '; if(!isset($_SERVER['HTTPS']) || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='off')) { - + $httpspath = str_replace('http://','https://',APP_ROOT).'cis/public/accountactivation.php'; echo '
    '.$p->t('passwort/NoHttps').'
    '.$p->t('passwort/ZuHttpsWechseln').'

    '; diff --git a/cis/public/bildupload.php b/cis/public/bildupload.php index bd3520534..80009f94e 100644 --- a/cis/public/bildupload.php +++ b/cis/public/bildupload.php @@ -90,7 +90,7 @@ $person = new person(); if(isset($_SESSION['prestudent/user'])) $person_id=$person->checkZugangscode($_SESSION['prestudent/user']); if(isset($_SESSION['incoming/user'])) - $person_id=$person->checkZugangscode($_SESSION['prestudent/user']); + $person_id=$person->checkZugangscode($_SESSION['incoming/user']); if($person_id!=$_GET['person_id']) die('Sie haben keine Berechtigung für diese Seite'); diff --git a/cis/public/incoming/akteupload.php b/cis/public/incoming/akteupload.php index 6d0eb0b54..b8f784946 100644 --- a/cis/public/incoming/akteupload.php +++ b/cis/public/incoming/akteupload.php @@ -165,12 +165,12 @@ if(isset($_GET['person_id'])) diff --git a/cis/public/incoming/incoming.php b/cis/public/incoming/incoming.php index 61ac6a8cc..7017860cb 100644 --- a/cis/public/incoming/incoming.php +++ b/cis/public/incoming/incoming.php @@ -203,7 +203,14 @@ if($method =="austauschprogram") $selected=""; if($mob->mobilitaetsprogramm_code == $preincoming->mobilitaetsprogramm_code) $selected = "selected"; - echo '\n"; + $anzeigetext=""; + if ($mob->kurzbz=='Austausch' && $sprache=='English') + $anzeigetext = 'Exchange'; + elseif ($mob->kurzbz=='selbst') + $anzeigetext = 'Freemover'; + else + $anzeigetext = $mob->kurzbz; + echo '\n"; } echo ' @@ -508,7 +515,11 @@ else if($method=="lehrveranstaltungen")

    ';*/ - echo ' + echo ' + + +
    Course application is currently disabled. Please contact the office to apply for courses.
    '; + /*echo '
    @@ -556,7 +567,7 @@ else if($method=="lehrveranstaltungen") echo'
    '; echo $p->t('global/studiengang').':'; @@ -606,7 +618,18 @@ else if($method=="lehrveranstaltungen") //Uebersicht LVs - $qry = "SELECT + /* Erklaerung der Datumszeitraeume ab Zeile 650: + * |=============== Studiensemester ===============| + * |--------------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend innerhalb SS + * |--------------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend innerhalb SS + * |------------------------------| Incoming ist innerhalb oder GENAU SS da + * |------------------------------------------------------| Incoming ist VOR SS-Anfang und NACH SS-Ende da, jedoch ueberwiegend ueberlappend mit SS + * --------------------------------------------------------- Von und Bis ist NULL + * -------------------| Von ist NULL und bis innerhalb SS + * |----------------------- Bis ist NULL und von innerhalb SS + */ + + /*$qry = "SELECT tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.ects, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.incoming, tbl_lehrveranstaltung.orgform_kurzbz, @@ -638,18 +661,32 @@ else if($method=="lehrveranstaltungen") JOIN public.tbl_preincoming using(preincoming_id) WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND - (von is null OR von <= '$stsem->start') - AND - (bis is null OR bis >= (DATE '$stsem->ende')) + ( + (bis - '$stsem->start' > '$stsem->start' - von) OR + ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR + (von >= '$stsem->start' AND bis <= '$stsem->ende') OR + (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (von IS NULL AND bis IS NULL) OR + (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR + (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + ) AND aktiv = true - )a ) as anzahl + )a ) as anzahl FROM - lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz) + lehre.tbl_lehrveranstaltung + JOIN + public.tbl_studiengang USING(studiengang_kz) WHERE - tbl_lehrveranstaltung.incoming>0 AND - tbl_lehrveranstaltung.aktiv AND - tbl_lehrveranstaltung.lehre - AND ((tbl_lehrveranstaltung.studiengang_kz>0 AND tbl_lehrveranstaltung.studiengang_kz<10000) OR tbl_lehrveranstaltung.studiengang_kz=10006)"; + tbl_lehrveranstaltung.incoming>0 AND + tbl_lehrveranstaltung.aktiv AND + tbl_lehrveranstaltung.lehre AND + tbl_lehrveranstaltung.lehrveranstaltung_id IN ( + SELECT lehrveranstaltung_id FROM lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN lehre.tbl_studienordnung USING (studienordnung_id) + WHERE tbl_studienordnung.status_kurzbz='approved' + AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id) AND + ((tbl_lehrveranstaltung.studiengang_kz>0 AND tbl_lehrveranstaltung.studiengang_kz<10000) OR tbl_lehrveranstaltung.studiengang_kz=10006)"; if (isset($_GET['studiengang']) && $_GET['studiengang'] !='') $qry .= "AND tbl_lehrveranstaltung.studiengang_kz=".$_GET['studiengang']; @@ -679,8 +716,8 @@ else if($method=="lehrveranstaltungen") while($row = $db->db_fetch_object($result)) { $freieplaetze = $row->incoming - $row->anzahl; - if($freieplaetze>0) - { + //if($freieplaetze>0) + //{ $studiengang = new studiengang(); $studiengang->load($row->studiengang_kz); $studiengang_language = ($sprache == 'German') ? $studiengang->bezeichnung : $studiengang->english; @@ -689,10 +726,14 @@ else if($method=="lehrveranstaltungen") $typ = 'BA'; else if ($studiengang->typ == 'm') $typ = 'MA'; + else + $typ = '-'; echo ''; echo ''; - if(!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id)) + if(!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze>0) echo ''; + elseif (!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze==0) + echo ''; else echo ''; echo ''; @@ -709,10 +750,10 @@ else if($method=="lehrveranstaltungen") '; echo ''; echo ''; - } + //} } } - echo '
    '.$row->lehrveranstaltung_id.''.$p->t('global/anmelden').''.$p->t('incoming/noVacancies').''.$p->t('global/angemeldet').'',$studiengang_language,'',($freieplaetze<$row->incoming?''.$freieplaetze.'/'.$row->incoming.'':$freieplaetze.'/'.$row->incoming),'
    '; + echo '';*/ } } else if ($method == "university") @@ -1796,7 +1837,7 @@ else 4. '.$p->t('incoming/lehrveranstaltungenauswählen').' - 5. '.$p->t('incoming/learningagreementerstellen').' + 5. '.$p->t('incoming/downloadLearningAgreement').' 6. '.$p->t("incoming/uploadLearningAgreement").' diff --git a/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php b/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php new file mode 100644 index 000000000..0455b87c6 --- /dev/null +++ b/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php @@ -0,0 +1,356 @@ + + */ +/** + * Menue Addon zur Auswahl von LVs + * + * Dieses Addon erstellt ein Formular zur Auswahl von + * Studiensemester, Studiengang, Ausbildungssemester, Studienplan und zeigt die + * zugehoerigen LVs an + * + * Parameter fuer das Params Array: + * - studiengang_kz + * - semester + * - studiensemester_kurzbz + * - studienplan_id + * - studiengang_kurzbz_lo 3-stelliges Studiengangskuerzel kleingeschrieben + * - studiengang_kurzbz_hi 3-stelliges Studiengangskuerzel grossgeschrieben + */ +require_once(dirname(__FILE__).'/menu_addon.class.php'); +require_once(dirname(__FILE__).'/../../include/studiengang.class.php'); +require_once(dirname(__FILE__).'/../../include/studienordnung.class.php'); +require_once(dirname(__FILE__).'/../../include/studienplan.class.php'); +require_once(dirname(__FILE__).'/../../include/lehrveranstaltung.class.php'); +require_once(dirname(__FILE__).'/../../include/organisationsform.class.php'); +require_once(dirname(__FILE__).'/../../include/functions.inc.php'); +require_once(dirname(__FILE__).'/../../include/phrasen.class.php'); +require_once(dirname(__FILE__).'/../../include/student.class.php'); + +class menu_addon_lehrveranstaltungen_studienplan extends menu_addon +{ + public function __construct() + { + global $params; + + parent::__construct(); + + $this->link=false; + + $sprache = getSprache(); + $user = get_uid(); + $student = new student(); + $studiengang_kz=''; + $semester=''; + $studienplan_id=''; + $studienordnung_id=''; + $db = new basis_db(); + + if($student->load($user)) + { + $studiengang_kz=$student->studiengang_kz; + $semester=$student->semester; + } + + $p = new phrasen($sprache); + + $sprachen_obj = new sprache(); + $sprachen_obj->getAll(); + $sprachen_arr=array(); + + foreach($sprachen_obj->result as $row) + { + if(isset($row->bezeichnung_arr[$sprache])) + $sprachen_arr[$row->sprache]=$row->bezeichnung_arr[$sprache]; + else + $sprachen_arr[$row->sprache]=$row->sprache; + } + + $orgform_obj = new organisationsform(); + $orgform_obj->getAll(); + $orgform_arr=array(); + foreach($orgform_obj->result as $row) + $orgform_arr[$row->orgform_kurzbz]=$row->bezeichnung; + + + $stsem = new studiensemester(); + $studiensemester_kurzbz=$stsem->getaktornext(); + + if(isset($params['studiensemester_kurzbz'])) + $studiensemester_kurzbz=$params['studiensemester_kurzbz']; + + if(isset($params['studiengang_kz']) && is_numeric($params['studiengang_kz'])) + $studiengang_kz=$params['studiengang_kz']; + + if(isset($params['semester']) && is_numeric($params['semester'])) + $semester=$params['semester']; + else + { + if(!isset($semester)) + $semester=1; + } + if(isset($params['studienplan_id'])) + $studienplan_id=$params['studienplan_id']; + + $this->block.=' + '; + + $this->block.=' + '; + + // Studiensemester + + $this->block.=' + + + '; + + // Studiengang + $this->block.=' + + + + + + + + '; + + $this->block.='
    + Studiensemester
    + '; + } + else + + $errormsg .= $studiensemester->errormsg; + $this->block.=' +
    + Studiengang
    + +
    + Semester
    + +
    + Studienplan
    +


    '; + + $this->block.= ''; + + if (!$lv_obj = new lehrveranstaltung()) + die('Fehler beim Oeffnen der Lehrveranstaltung'); + + $lv_obj->lehrveranstaltungen=array(); + if($lv_obj->loadLehrveranstaltungStudienplan($studienplan_id, $semester,'bezeichnung')) + { + $tree = $lv_obj->getLehrveranstaltungTree(); + $this->printTree($tree, $sprache, $studiensemester_kurzbz); + } + + $this->output(); + } + + /** + * Stellt die Lehrveranstaltungen in einer Baumstruktur dar. + */ + private function printTree($tree, $sprache, $studiensemester_kurzbz) + { + $this->block.='"; + } + + private function CutString($strVal, $limit) + { + if(mb_strlen($strVal) > $limit+3) + { + return mb_substr($strVal, 0, $limit) . "..."; + } + else + { + return $strVal; + } + } +} +new menu_addon_lehrveranstaltungen_studienplan(); +?> diff --git a/cms/menu/menu_addon_meinelv.inc.php b/cms/menu/menu_addon_meinelv.inc.php index 590919149..a81bdb733 100755 --- a/cms/menu/menu_addon_meinelv.inc.php +++ b/cms/menu/menu_addon_meinelv.inc.php @@ -19,7 +19,7 @@ */ /** * Menue Addon zur Anzeige der zugeordneten LVs - * + * * Zeigt eine Liste mit den LVs zu denen der Lektor oder Student zugeordnet ist. */ require_once(dirname(__FILE__).'/menu_addon.class.php'); @@ -34,15 +34,15 @@ class menu_addon_meinelv extends menu_addon public function __construct() { parent::__construct(); - + $sprache = getSprache(); $user = get_uid(); - + $is_lector=check_lektor($user); - + $p = new phrasen($sprache); $cutlength=21; - + //Meine LVs Student if(!$is_lector) { @@ -51,10 +51,19 @@ class menu_addon_meinelv extends menu_addon if ($stsemobj = new studiensemester()) { - $stsem = $stsemobj->getNearest(); - $qry = "SELECT distinct lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, lehre, - lehreverzeichnis from campus.vw_student_lehrveranstaltung - WHERE uid='".addslashes($user)."' AND studiensemester_kurzbz='".addslashes($stsem)."' + $stsem_arr=array(); + if(!$stsemobj->getakt()) + { + $stsem_arr[]=$stsemobj->getNearest(); + $stsem_arr[]=$stsemobj->getNearestFrom($stsem_arr[0]); + } + else + { + $stsem_arr[] = $stsemobj->getNearest(); + } + $qry = "SELECT distinct lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, lehre, + lehreverzeichnis from campus.vw_student_lehrveranstaltung + WHERE uid=".$this->db_add_param($user)." AND studiensemester_kurzbz in(".$this->db_implode4SQL($stsem_arr).") AND lehre=true AND lehreverzeichnis<>'' ORDER BY studiengang_kz, semester, bezeichnung"; if($result = $this->db_query($qry)) { @@ -87,21 +96,30 @@ class menu_addon_meinelv extends menu_addon else { echo "Fehler Semester beim Auslesen der LV"; - } + } } - + //Eigenen LV des eingeloggten Lektors anzeigen if($is_lector) { if ($stsemobj = new studiensemester()) { - $stsem = $stsemobj->getNearest(); + $stsem_arr=array(); + if(!$stsemobj->getakt()) + { + $stsem_arr[]=$stsemobj->getNearest(); + $stsem_arr[]=$stsemobj->getNearestFrom($stsem_arr[0]); + } + else + { + $stsem_arr[] = $stsemobj->getNearest(); + } $qry = "SELECT distinct bezeichnung, studiengang_kz, semester, lehreverzeichnis, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.orgform_kurzbz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - mitarbeiter_uid='".addslashes($user)."' AND tbl_lehreinheit.studiensemester_kurzbz='".addslashes($stsem)."' + mitarbeiter_uid=".$this->db_add_param($user)." AND tbl_lehreinheit.studiensemester_kurzbz in(".$this->db_implode4SQL($stsem_arr).") ORDER BY studiengang_kz, semester, bezeichnung"; - + if($result = $this->db_query($qry)) { $this->items[] = array('title'=>$p->t("lvaliste/titel"), @@ -121,19 +139,19 @@ class menu_addon_meinelv extends menu_addon 'link'=>'private/freifaecher/lesson.php?lvid='.$row->lehrveranstaltung_id, 'name'=>'FF '.$this->CutString($row->lehreverzeichnis, $cutlength) ); - } + } else { $stg_obj = new studiengang(); $stg_obj->load($row->studiengang_kz); $kurzbz = $stg_obj->kuerzel.'-'.$row->semester.' '.$row->orgform_kurzbz; - + $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], 'target'=>'content', 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id, 'name'=>$kurzbz.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) ); - } + } } } else @@ -146,7 +164,7 @@ class menu_addon_meinelv extends menu_addon } $this->output(); } - + private function CutString($strVal, $limit) { if(mb_strlen($strVal) > $limit+3) diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index c3c26f3eb..3b89bfa47 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -215,6 +215,9 @@ define('CIS_PRUEFUNGSANMELDUNG_USER','p.pruefungsanmeldung'); // Soll für die Prüfungsanmeldungen eine Anrechnung erstellt werden define('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG', true); +//Gibt an, ob der Bereich zur Anmeldung zu Pruefungen des gesamten Studiengangs angezeigt werden soll +define('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG', true); + //Gibt an, wie viele Semester aus der Vergangenheit unter Meine LV angezeigt werden define('CIS_MEINELV_ANZAHL_SEMESTER_PAST', 3); diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 24a2a0596..a176e297e 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -25,6 +25,9 @@ define('CIS_LEHRVERANSTALTUNG_SEMESTERINFO_ANZEIGEN',true); define('CIS_LEHRVERANSTALTUNG_LEHRFACH_ANZEIGEN',false); define('CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN', true); +// Im CIS Menue Links bei Modulen anzeigen wenn Lehrauftrag +define('CIS_LEHRVERANSTALTUNG_MODULE_LINK',true); + // Legt fest, ob bei den LV-Infos der Block mit den Terminen zu den einzelnen LVs (laut Stundenplan) angezeigt werden soll define ('CIS_LVINFO_TERMINE_ANZEIGEN', false); @@ -59,9 +62,20 @@ define('CIS_GESAMTNOTE_UEBERSCHREIBEN',true); // Gewichtung der Lehreinheiten bei Noteneintragung true|false define('CIS_GESAMTNOTE_GEWICHTUNG', true); +// Bei Gesamtnote eine zusaetzliche Spalte fuer den 2. Termin anzeigen +define('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2',true); + // Bei Gesamtnote eine zusaetzliche Spalte fuer den 3. Termin anzeigen define('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3',true); +// Bei Gesamtnote eine zusaetzliche Spalte fuer die kommissionelle Pruefung anlegen +define('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF', true); + +// Bei Gesamtnote eine zusaetzliche Spalte fuer die kommissionelle Pruefung anlegen +define('CIS_GESAMTNOTE_PRUEFUNG_MOODLE_NOTE', true); + +// Bei Gesamtnote die Spalte fuer die Quelle der Noten anzeigen (Moodle oder LE) +define('CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE', true); // Gibt an ob im FAS bei den Lehrveranstaltungsnoten ein zusaetzliches Formular angezeigt wird um // Vertraege fuer Pruefungshonorare anzulegen diff --git a/config/wawi.config-default.inc.php b/config/wawi.config-default.inc.php index 95c7215d0..05d257c2f 100644 --- a/config/wawi.config-default.inc.php +++ b/config/wawi.config-default.inc.php @@ -97,4 +97,7 @@ define('MAIL_ZENTRALEINKAUF','info@technikum-wien.at'); //Gibt an welche Funktion zur generierung des PDF Files herangezogen wird //moegliche Werte: FOP | XSLFO2PDF define ('PDF_CREATE_FUNCTION','XSLFO2PDF'); + +// Ordner für DMS Dokumente +define('DMS_PATH','/var/www/fhcomplete/dms/'); ?> diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index f2ff916a7..e927a1a17 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -1605,12 +1605,11 @@ function LehrveranstaltungGesamtNotenTreeSelectDifferent() break; } - //Wenn die Noten unterschiedlich sind, aber das benotungsdatum im Zeugnis + //Wenn das benotungsdatum im Zeugnis //nach dem benotungsdatum des lektors liegt, dann wird die zeile auch nicht markiert. //damit wird verhindert, dass pruefungsnoten die nur von der assistenz eingetragen wurden, //durch den alten eintrag des lektors wieder ueberschrieben werden if(zeugnisuid==lvgesamtuid - && zeugnisnote!=lvgesamtnote && zeugnisbenotungsdatum>lvgesamtbenotungsdatum) { found=true; diff --git a/content/pdfExport.php b/content/pdfExport.php index b754ddf3f..5cf058ac5 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -74,7 +74,7 @@ else $xsl_stg_kz=$_GET['stg_kz']; else { - // Werden UIDs uebergeben, wird die Vorlage des Studiengangs genommen + // Werden UIDs oder Prestudent_IDs uebergeben, wird die Vorlage des Studiengangs genommen // in dem der 1. Studierende in der Liste ist if(isset($_GET['uid']) && $_GET['uid']!='') { @@ -89,6 +89,19 @@ else $xsl_stg_kz=$student_obj->studiengang_kz; } } + elseif(isset($_GET['prestudent_id']) && $_GET['prestudent_id']!='') + { + if(strstr($_GET['prestudent_id'],';')) + $prestudent_ids = explode(';',$_GET['prestudent_id']); + else + $prestudent_ids[1] = $_GET['prestudent_id']; + + $prestudent_obj = new prestudent(); + if($prestudent_obj->load($prestudent_ids[1])) + { + $xsl_stg_kz=$prestudent_obj->studiengang_kz; + } + } } } if(isset($_GET['xsl_oe_kurzbz'])) @@ -189,7 +202,7 @@ if (isset($_GET['output']) && $_GET['output']!='pdf') else $output = $_GET['output']; } -else +else $output = 'pdf'; @@ -281,7 +294,7 @@ elseif(in_array($xsl,array('Ressource'))) exit; } } -elseif(in_array($xsl,array('Inskription','Studienerfolg','OutgoingLearning','OutgoingChangeL','LearningAgree','Zahlung'))) +elseif(in_array($xsl,array('Inskription','Studienerfolg','OutgoingLearning','OutgoingChangeL','LearningAgree','Zahlung','DichiaSost'))) { if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz')) { @@ -666,7 +679,7 @@ else // Wenn ein Style XSL uebergeben wurde wird ein zweites XML File erstellt mit den // Styleanweisungen und ebenfalls zum Zip hinzugefuegt - if(isset($_GET['style_xsl'])) + if(isset($_GET['style_xsl']) || $vorlage->style!='') { //Wenn die Spalte style in der DB befuellt ist, wird dieses verwendet if($vorlage->style!='') diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 1c06ab061..16fd12d86 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -933,10 +933,10 @@ if(!$error) { if($row = $db->db_fetch_object($result)) { - if($row->anzahl<=1) + if($row->anzahl<=1 && !$rechte->isBerechtigt('admin', null, 'suid')) { $return = false; - $errormsg = 'Die letzte Rolle darf nicht geloescht werden'; + $errormsg = 'Die letzte Rolle kann nur durch den Administrator geloescht werden'; $error = true; } } diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index fb5c8a142..fb27ebcdf 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -284,6 +284,14 @@ else class="sortDirectionIndicator" sort="rdf:http://www.technikum-wien.at/student/rdf#punkte3" onclick="StudentTreeSort()"/> +

    '; +echo '
    '; +echo '
    +
    '; +////////// +// FILTER LEFT SIDE +////////// + +// Degree Program DropDown +$studiengang = new studiengang(); +$studiengang->getAll('typ, kurzbz'); + +//echo 'Degree Program '; +echo ''; +$typ = ''; +$maxsemester = array(); + +foreach ($studiengang->result as $stg) +{ + if ($typ != $stg->typ || $typ=='') + { + if ($typ!='') + echo ''; + echo ''; + } + + echo ''; + $maxsemester[$stg->studiengang_kz] = $stg->max_semester; + $typ = $stg->typ; +} +echo '
    or '; + +// Input text or ID +//echo ''; +echo ''; + +echo '
    '; + +// Semester DropDown +echo 'Semester
    '; + +// Orgform DropDown +echo ' Orgform
    '; + +// Studienplan DropDown +echo ' Studienplan
    '; + +// Type DropDown +echo ' Type
    '; + +echo ''; +echo '

    '; +echo ''; + +echo '
    '; + +echo '
    +
    '; +////////// +// FILTER RIGHT SIDE +////////// + +// Degree Program DropDown +$studiengang = new studiengang(); +$studiengang->getAll('typ, kurzbz'); + +//echo 'Degree Program '; +echo ''; +$typ = ''; +$maxsemester = array(); +foreach ($studiengang->result as $stg) +{ + if ($typ != $stg->typ || $typ=='') + { + if ($typ!='') + echo ''; + echo ''; + } + + echo ''; + $maxsemester[$stg->studiengang_kz] = $stg->max_semester; + $typ = $stg->typ; +} +echo '
    or '; + +// Input text or ID +//echo ''; +echo ''; + +echo '
    '; + +// Semester DropDown +echo 'Semester
    '; + +// Orgform DropDown +echo ' Orgform
    '; + +// Studienplan DropDown +echo ' Studienplan
    '; + +// Type DropDown +echo ' Type
    '; + +echo ''; +echo '

    '; +echo ''; + +echo '
    '; + +echo '
    +
    '; +echo '
    '; + +$stg_arr = new studiengang(); +$stg_arr->getAll(null,false); +foreach ($stg_arr->result as $row) + $studiengang_arr[$row->studiengang_kz] = $row->kurzbzlang; + +////////// +// COURSES LEFT SIDE +////////// +echo '
    '; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; + +if($rechte->isBerechtigt('lehre/lehrveranstaltung', NULL, 'sui')) +{ + echo ' '; + + echo ' | '; +} +if($rechte->isBerechtigt('lehre/lehrveranstaltung', NULL, 'suid')) + echo ' | '; + +echo ' '; + +echo '
    +
    '; + + +// Left table +echo 'Select course to be deleted or copied from'; +echo ''; +echo ""; +echo ""; +echo ""; +if ($select_stg_kz_left=='') + echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +//if ((substr($input_text_left,0,1)=='#' || ($input_text_left!='' && strlen($input_text_left)>=3)) || $select_studienplan_left!='' || $select_stg_kz_left!='') +if ((is_numeric($input_text_left) || ($input_text_left!='' && strlen($input_text_left)>=3)) || $select_studienplan_left!='' || $select_stg_kz_left!='') +{ + $qry_left = "SELECT DISTINCT * FROM lehre.tbl_lehrveranstaltung "; + + /*if ($input_text_left!='') + { + if (substr($input_text_left,0,1)=='#') + $qry_left .= " WHERE lehrveranstaltung_id=".$db->db_add_param(substr($input_text_left,1), FHC_INTEGER); + else + $qry_left .= " WHERE lower(bezeichnung) LIKE LOWER('%".$db->db_escape($input_text_left)."%')"; + } + else*/ + { + if ($select_studienplan_left!='') + $qry_left .= " JOIN lehre.tbl_studienplan_lehrveranstaltung USING (lehrveranstaltung_id)"; + + $qry_left .= " WHERE 1=1"; + if ($select_stg_kz_left!='') + $qry_left .= " AND studiengang_kz=".$db->db_add_param($select_stg_kz_left); + if (is_numeric($input_text_left)) + $qry_left .= " AND lehrveranstaltung_id=".$db->db_add_param($input_text_left, FHC_INTEGER); + elseif ($input_text_left!='' && strlen($input_text_left)>=3) + $qry_left .= " AND lower(bezeichnung) LIKE LOWER('%".$db->db_escape($input_text_left)."%')"; + if ($select_studienplan_left!='') + $qry_left .= " AND studienplan_id=".$db->db_add_param($select_studienplan_left, FHC_INTEGER); + if ($select_semester_left!='-1') + $qry_left .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($select_semester_left, FHC_INTEGER); + if ($select_orgform_left!='') + $qry_left .= " AND orgform_kurzbz=".$db->db_add_param($select_orgform_left); + if ($select_lehrtyp_left!='') + $qry_left .= " AND lehrtyp_kurzbz=".$db->db_add_param($select_lehrtyp_left); + } + $qry_left .= " ORDER BY bezeichnung;"; + //echo $qry_left.'
    '; + + if($db->db_query($qry_left)) + { + while($row = $db->db_fetch_object()) + { + echo ''; + echo ''; + echo ''; + echo ''; + if ($select_stg_kz_left=='') + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ""; + } + } +} +echo "
    IDNameTypeDPSemesterLanguageECTSLVSALVSSWSLVPLS 
    '.$row->lehrveranstaltung_id.''.$row->bezeichnung.''.strtoupper($row->lehrtyp_kurzbz).''.$studiengang_arr[$row->studiengang_kz].''.$row->semester.''.$row->sprache.''.$row->ects.''.$row->lvs.''.$row->alvs.''.$row->sws.''.$row->lvps.'lehrveranstaltung_id)?'checked':'').' onclick="enableRadio(\'courseLeft\'); disableRadio(\'courseRight_'.$row->lehrveranstaltung_id.'\')">
    "; + +////////// +// COURSES RIGHT SIDE +////////// + +echo '
    +
    '; + +// Right table +echo 'Select course to remain or transfer to'; +echo ''; +echo ""; +echo ""; +echo ""; +echo ""; +if ($select_stg_kz_right=='') + echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +//if ((substr($input_text_right,0,1)=='#' || ($input_text_right!='' && strlen($input_text_right)>=3)) || $select_studienplan_right!='' || $select_stg_kz_right!='') +if ((is_numeric($input_text_right) || ($input_text_right!='' && strlen($input_text_right)>=3)) || $select_studienplan_right!='' || $select_stg_kz_right!='') +{ + $qry_right = "SELECT DISTINCT * FROM lehre.tbl_lehrveranstaltung "; + + /*if ($input_text_right!='') + { + if (substr($input_text_right,0,1)=='#') + $qry_right .= " WHERE lehrveranstaltung_id=".$db->db_add_param(substr($input_text_right,1), FHC_INTEGER); + else + $qry_right .= " WHERE lower(bezeichnung) LIKE LOWER ('%".$db->db_escape($input_text_right)."%')"; + } + else*/ + { + if ($select_studienplan_right!='') + $qry_right .= " JOIN lehre.tbl_studienplan_lehrveranstaltung USING (lehrveranstaltung_id)"; + + $qry_right .= " WHERE 1=1"; + if ($select_stg_kz_right!='') + $qry_right .= " AND studiengang_kz=".$db->db_add_param($select_stg_kz_right); + if (is_numeric($input_text_right)) + $qry_right .= " AND lehrveranstaltung_id=".$db->db_add_param($input_text_right, FHC_INTEGER); + elseif ($input_text_right!='' && strlen($input_text_right)>=3) + $qry_right .= " AND lower(bezeichnung) LIKE LOWER('%".$db->db_escape($input_text_right)."%')"; + if ($select_studienplan_right!='') + $qry_right .= " AND studienplan_id=".$db->db_add_param($select_studienplan_right, FHC_INTEGER); + if ($select_semester_right!='-1') + $qry_right .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($select_semester_right, FHC_INTEGER); + if ($select_orgform_right!='') + $qry_right .= " AND orgform_kurzbz=".$db->db_add_param($select_orgform_right); + if ($select_lehrtyp_right!='') + $qry_right .= " AND lehrtyp_kurzbz=".$db->db_add_param($select_lehrtyp_right); + } + $qry_right .= " ORDER BY bezeichnung;"; + //echo $qry_right.'
    '; + + if($db->db_query($qry_right)) + { + while($row = $db->db_fetch_object()) + { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + if ($select_stg_kz_right=='') + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ""; + } + } +} +echo "
     IDNameTypeDPSemesterLanguageECTSLVSALVSSWSLVPLS
    lehrveranstaltung_id)?'checked':'').' onclick="enableRadio(\'courseRight\'); disableRadio(\'courseLeft_'.$row->lehrveranstaltung_id.'\')">'.$row->lehrveranstaltung_id.''.$row->bezeichnung.''.strtoupper($row->lehrtyp_kurzbz).''.$studiengang_arr[$row->studiengang_kz].''.$row->semester.''.$row->sprache.''.$row->ects.''.$row->lvs.''.$row->alvs.''.$row->sws.''.$row->lvps.'
    "; +echo '
    +
    '; +echo '
    '; +exit; + +?> + + + + diff --git a/vilesci/lehre/studienplan_gueltigkeit.php b/vilesci/lehre/studienplan_gueltigkeit.php new file mode 100644 index 000000000..8a506bf71 --- /dev/null +++ b/vilesci/lehre/studienplan_gueltigkeit.php @@ -0,0 +1,131 @@ +getBerechtigungen($user); + +if(!$rechte->isBerechtigt('assistenz', null, 'suid')) + die('keine Berechtigung für diese Seite!'); + +$studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; +$db = new basis_db(); + +echo ' + + + + '; +include('../../include/meta/jquery.php'); +include('../../include/meta/jquery-tablesorter.php'); + +echo ' + Studienplan Übersicht + + + +

    Studienplan Gültigkeit

    +
    + + +
    '; + +$max_semester=0; +if($studiengang_kz!='') +{ + $studienplan = new studienplan(); + $studienplan->getStudienplaeneFromSem($studiengang_kz); + + foreach($studienplan->result as $row) + { + if($max_semester < $row->semester) + $max_semester = $row->semester; + $gueltigkeit[$row->studiensemester_kurzbz][$row->semester][]=$row->bezeichnung; + } +} + +$studiensemester = new studiensemester(); +$studiensemester->getAll(); + +echo ' + + + '; + +for($i = 1; $i <= $max_semester; $i++) + echo ''; +echo ' + +'; +$start=0; +foreach($studiensemester->studiensemester as $row_stsem) +{ + + $row= ' + '; + + for($i = 1; $i <= $max_semester; $i++) + { + $row .= ''; + } + $row .= ''; + + if($start) + echo $row; +} +echo '
    '.$i.'. Semester
    '.$row_stsem->studiensemester_kurzbz.''; + if(isset($gueltigkeit[$row_stsem->studiensemester_kurzbz][$i]) && is_array($gueltigkeit[$row_stsem->studiensemester_kurzbz][$i])) + { + foreach($gueltigkeit[$row_stsem->studiensemester_kurzbz][$i] as $row_studienplan) + { + $start=true; + $row .= $row_studienplan.'
    '; + } + } + $row .= '
    '; +echo ' + +'; diff --git a/vilesci/personen/aliquote_reduktion.json.php b/vilesci/personen/aliquote_reduktion.json.php index 28eeae207..aed141eda 100644 --- a/vilesci/personen/aliquote_reduktion.json.php +++ b/vilesci/personen/aliquote_reduktion.json.php @@ -30,6 +30,7 @@ require_once(dirname(__FILE__).'/../../include/prestudent.class.php'); require_once(dirname(__FILE__).'/../../include/studienplatz.class.php'); require_once(dirname(__FILE__).'/../../include/Excel/excel.php'); require_once(dirname(__FILE__).'/../../include/dokument.class.php'); +require_once(dirname(__FILE__).'/../../include/studienplan.class.php'); $user = get_uid(); @@ -62,8 +63,7 @@ switch($action) die("keine studiensemester_kurzbz erhalten"); $studiensemester_kurzbz = $_REQUEST["studiensemester_kurzbz"]; - $prestudent = new prestudent(); - $return = $prestudent->getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz); + $return = getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz); $db = new basis_db(); foreach($return as $key=>$value) @@ -116,12 +116,20 @@ switch($action) if(!isset($_REQUEST["prestudent_ids"])) die("keine Studenten erhalten"); + if(!isset($_REQUEST["studienplan_id"])) + die("keine Studienplan_id erhalten"); + + $stpl = new studienplan(); + $stpl->loadStudienplan($_REQUEST["studienplan_id"]); + $prestudent_ids = json_decode($_REQUEST["prestudent_ids"]); foreach($prestudent_ids as $i) { $prestudent = new prestudent($i); $prestudent->getLastStatus($i); + $prestudent->studienplan_id = $_REQUEST["studienplan_id"]; $prestudent->status_kurzbz = "Aufgenommener"; + $prestudent->orgform_kurzbz = $stpl->orgform_kurzbz; $prestudent->new = true; $prestudent->datum = date("Y-m-d H:i:s"); $prestudent->updatevon = $user; @@ -170,10 +178,16 @@ switch($action) $maxlength[$spalte]=10; $worksheet->write($zeile,++$spalte,'Reihung',$format_bold); $maxlength[$spalte]=8; + $worksheet->write($zeile,++$spalte,'RT Punkte 1',$format_bold); + $maxlength[$spalte]=8; + $worksheet->write($zeile,++$spalte,'RT Punkte 2',$format_bold); + $maxlength[$spalte]=8; $worksheet->write($zeile,++$spalte,'RT Gesamt',$format_bold); $maxlength[$spalte]=8; $worksheet->write($zeile,++$spalte,'Interviewbogen',$format_bold); $maxlength[$spalte]=14; + $worksheet->write($zeile,++$spalte,'EMail',$format_bold); + $maxlength[$spalte]=8; $worksheet->write($zeile,++$spalte,'Status',$format_bold); $maxlength[$spalte]=8; $worksheet->write($zeile,++$spalte,'Auswahl',$format_bold); @@ -211,9 +225,34 @@ switch($action) $maxlength[$spalte]=mb_strlen(""); } - $worksheet->writeNumber($zeile,++$spalte, $s->seqPlace); - if(mb_strlen($s->seqPlace)>$maxlength[$spalte]) - $maxlength[$spalte]=mb_strlen($s->seqPlace); + $worksheet->writeNumber($zeile,++$spalte, (isset($s->seqPlace)?$s->seqPlace:'')); + if(mb_strlen((isset($s->seqPlace)?$s->seqPlace:''))>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen((isset($s->seqPlace)?$s->seqPlace:'')); + + if(isset($s->rt_punkte1) && $s->rt_punkte1) + { + $worksheet->writeNumber($zeile,++$spalte, $s->rt_punkte1, $format_float); + if(mb_strlen($s->rt_punkte1)>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen($s->rt_punkte1); + } + else + { + $worksheet->write($zeile,++$spalte, ""); + if(mb_strlen("")>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen(""); + } + if(isset($s->rt_punkte2) && $s->rt_punkte2) + { + $worksheet->writeNumber($zeile,++$spalte, $s->rt_punkte2, $format_float); + if(mb_strlen($s->rt_punkte2)>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen($s->rt_punkte2); + } + else + { + $worksheet->write($zeile,++$spalte, ""); + if(mb_strlen("")>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen(""); + } if(isset($s->rt_gesamtpunkte) && $s->rt_gesamtpunkte) { @@ -240,6 +279,11 @@ switch($action) if(mb_strlen("")>$maxlength[$spalte]) $maxlength[$spalte]=mb_strlen(""); } + + $worksheet->write($zeile,++$spalte, $s->email_privat); + if(mb_strlen($s->email_privat)>$maxlength[$spalte]) + $maxlength[$spalte]=mb_strlen($s->email_privat); + $worksheet->write($zeile,++$spalte, $s->laststatus); if(mb_strlen($s->laststatus)>$maxlength[$spalte]) $maxlength[$spalte]=mb_strlen($s->laststatus); @@ -272,8 +316,114 @@ switch($action) function studentsSort($a, $b) { - return $a->seqPlace > $b->seqPlace; + if(isset($a->seqPlace)) + return $a->seqPlace > $b->seqPlace; + else + return false; } +/** + * Laedt die Studenten fuer die Reduktion + * @param $studienplan_id + * @param $studiensemester_kurzbz + * @param $studiengang_kz + * @return array mit allen Prestudenten, welche sich für den angegebenen Studienplan im angegebenen Semester beworben haben + */ +function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz) +{ + $db = new basis_db(); + + if(!is_numeric($studienplan_id)) + { + $errormsg = 'studienplan_id ist ungueltig'; + return false; + } + + if(!$studiensemester_kurzbz || $studiensemester_kurzbz == "") + { + $errormsg = 'studiensemester_kurzbz ist ungueltig'; + return false; + } + + $stg_obj = new studiengang(); + $stg_obj->load($studiengang_kz); + + if($stg_obj->typ=='m') + { + $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus, + (SELECT studienplan_id FROM tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." ORDER BY datum desc LIMIT 1) as studienplan_id, + (SELECT anmerkung FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber') as anmerkung, rt_punkte1, rt_punkte2, + (SELECT kontakt FROM public.tbl_kontakt where kontakttyp='email' AND zustellung AND person_id=tbl_person.person_id limit 1) as email_privat + FROM + public.tbl_prestudent + JOIN public.tbl_person USING(person_id) + LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgvmas_code) + LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz) + WHERE + tbl_prestudent.studiengang_kz=". $db->db_add_param($studiengang_kz)." + AND EXISTS( + SELECT + 1 + FROM + public.tbl_prestudentstatus + WHERE + tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id + AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber' + AND ( + studienplan_id=". $db->db_add_param($studienplan_id)." + OR + (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $db->db_add_param($studienplan_id).") || '%') + ) + );"; + } + else + { + $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus, + (SELECT studienplan_id FROM tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." ORDER BY datum desc LIMIT 1) as studienplan_id, + (SELECT anmerkung FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber') as anmerkung, rt_punkte1, rt_punkte2, + (SELECT kontakt FROM public.tbl_kontakt where kontakttyp='email' AND zustellung AND person_id=tbl_person.person_id limit 1) as email_privat + FROM + public.tbl_prestudent + JOIN public.tbl_person USING(person_id) + LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgv_code) + LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz) + WHERE + tbl_prestudent.studiengang_kz=". $db->db_add_param($studiengang_kz)." + AND EXISTS( + SELECT + 1 + FROM + public.tbl_prestudentstatus + WHERE + tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id + AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)." + AND status_kurzbz='Bewerber' + AND ( + studienplan_id=". $db->db_add_param($studienplan_id)." + OR + (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $db->db_add_param($studienplan_id).") || '%') + ) + );"; + } + + + if($result = $db->db_query($qry)) + { + $ret = array(); + + while($row = $db->db_fetch_object($result)) + $ret[] = $row; + + return $ret; + } + else + { + $errormsg = 'Fehler beim Laden der Daten'; + return false; + } +} ?> diff --git a/vilesci/personen/aliquote_reduktion.php b/vilesci/personen/aliquote_reduktion.php index be9094b7d..8aa9aa2a4 100644 --- a/vilesci/personen/aliquote_reduktion.php +++ b/vilesci/personen/aliquote_reduktion.php @@ -74,6 +74,7 @@ aqr.studiengaenge = []; aqr.studiensemester = []; aqr.studienplaetze = []; + aqr.zgvElems = []; aqr.actualSequence = 1; SERVICE_TARGET = "aliquote_reduktion.json.php"; @@ -112,6 +113,12 @@ if(!confirm("Es wurden zu viel Studenten gewählt!")) return; } + else + { + if(!confirm("Sind Sie sicher, dass Sie die ausgewählten Personen aufnehmen wollen?")) + return; + } + var prestudent_ids = []; aqr.studenten.forEach(function(i) @@ -122,7 +129,7 @@ } }); - AJAXCall({action:"setAufgenommene",studiengang_kz:aqr.selectedStudiengang.studiengang_kz,prestudent_ids:JSON.stringify(prestudent_ids)},function(res){aqr.loadStudenten();}); + AJAXCall({action:"setAufgenommene",studiengang_kz:aqr.selectedStudiengang.studiengang_kz,prestudent_ids:JSON.stringify(prestudent_ids),studienplan_id:aqr.selectedStudienplatz.studienplan_id},function(res){aqr.loadStudenten();}); } aqr.countChoosen = function() @@ -190,9 +197,9 @@ aqr.studenten=res; aqr.studenten.forEach(function(i) { - if(i.laststatus=='Wartender'||i.laststatus=='Bewerber') + if((i.laststatus=='Wartender'||i.laststatus=='Bewerber') && i.rt_gesamtpunkte !== null && i.rt_gesamtpunkte > 0) i.applicant = true; - else if(i.laststatus=='Student'||i.laststatus=='Aufgenommener') + else if((i.laststatus=='Student'||i.laststatus=='Aufgenommener') && aqr.selectedStudienplatz.studienplan_id == i.studienplan_id) i.selected=true; }); aqr.doPreselection(); @@ -212,12 +219,12 @@ return ret; } - aqr.getAcceptedCount = function() + aqr.getAcceptedCount = function(zgvGruppe) { var ret = 0; aqr.studenten.forEach(function(i) { - if(i.laststatus=='Student'||i.laststatus=='Aufgenommener') + if((i.laststatus=='Student'||i.laststatus=='Aufgenommener') && aqr.selectedStudienplatz.studienplan_id == i.studienplan_id && (zgvGruppe === undefined || zgvGruppe === i.bezeichnung)) ret++; }); return ret; @@ -225,34 +232,71 @@ aqr.doPreselection = function() { - if(parseInt(aqr.selectedStudienplatz.apz) >= 0) + aqr.zgvElems = []; + if(parseInt(aqr.selectedStudienplatz.apz) >= 0) // we only preselect, if we have an APZ { aqr.studenten.sort(sortStudentenRTP); var zgvs = aqr.getZGVArray(); var neededStudentsCount = aqr.selectedStudienplatz.apz - aqr.getAcceptedCount(); - var perZGV = parseInt(neededStudentsCount / zgvs.length); + var perZGV = aqr.studenten.length; var zgvElems = []; + var allCountedStudents = []; + + aqr.studenten.forEach(function(j) + { + if(j.rt_gesamtpunkte !== null && j.rt_gesamtpunkte > 0) + allCountedStudents.push(j); + }); + + var applicantCount = aqr.selectedStudienplatz.apz; + if(applicantCount > allCountedStudents.length) + applicantCount = allCountedStudents.length; zgvs.forEach(function(i) { - zgvElems.push({name:i,needed:perZGV}); + var applicantsFromZGV = []; + + aqr.studenten.forEach(function(j) + { + if((j.rt_gesamtpunkte !== null && j.rt_gesamtpunkte > 0) && j.bezeichnung === i) + applicantsFromZGV.push(j); + }); + + // calculate the aliquote reduction for every ZGV + var percent = applicantsFromZGV.length / allCountedStudents.length * 100; + var neededFromZGV = (applicantCount / 100 * percent) - aqr.getAcceptedCount(i); + + if(neededFromZGV < 0) + neededFromZGV = 0; + + zgvElems.push({name:i, needed:neededFromZGV, percent:percent, accepted: aqr.getAcceptedCount(i), overallNeeded: neededFromZGV + aqr.getAcceptedCount(i)}); }); - var residual = perZGV * zgvs.length; + + // calculate the already distributed students + var residual = 0; + zgvElems.forEach(function(i) + { + residual += parseInt(i.needed); + }); + + // calculate the difference from needed to already distributed var resDiff = neededStudentsCount - residual; // distribute the remaining places on the present ZGVs - while(resDiff > 0) + while(resDiff > 0 && zgvElems.length > 0/*if there are no zgvs(to prevent a deadlock)*/) { zgvElems.forEach(function(i) { if(resDiff > 0) { + i.overallNeeded ++; i.needed ++; resDiff --; } }); } + aqr.zgvElems = JSON.parse(JSON.stringify(zgvElems)); aqr.recursiveChoose(neededStudentsCount, zgvElems); } } @@ -276,7 +320,7 @@ { var beginNeeded = needed; - //distribute the remainig applicants to the present ZGVs + //distribute the applicants to the present ZGVs for(var i=0; i < zgvElems.length; i++) { for(var j in aqr.studenten) @@ -284,9 +328,11 @@ if( aqr.studenten[j].laststatus!='Abgewiesener' && aqr.studenten[j].laststatus!='Abbrecher' - && zgvElems[i].needed > 0 + && parseInt(zgvElems[i].needed) > 0 && aqr.studenten[j].bezeichnung == zgvElems[i].name - && !aqr.studenten[j].seqPlace) + && !aqr.studenten[j].seqPlace + && !aqr.studenten[j].selected + && aqr.studenten[j].applicant) { aqr.setSequence(aqr.studenten[j]); zgvElems[i].needed --; @@ -303,7 +349,7 @@ //distribute the rest of the applicants, WITH a ZGV group for(var j in aqr.studenten) { - if(!aqr.studenten[j].selected && aqr.studenten[j].bezeichnung) + if(!aqr.studenten[j].selected && aqr.studenten[j].bezeichnung && aqr.studenten[j].applicant) { aqr.setSequence(aqr.studenten[j]); if(needed > 0 && (aqr.studenten[j].laststatus=='Wartender'||aqr.studenten[j].laststatus=='Bewerber')) @@ -316,7 +362,7 @@ //distribute the rest of the applicants, WITHOUT a ZGV group for(var j in aqr.studenten) { - if(!aqr.studenten[j].selected && !aqr.studenten[j].bezeichnung) + if(!aqr.studenten[j].selected && !aqr.studenten[j].bezeichnung && aqr.studenten[j].applicant) { aqr.setSequence(aqr.studenten[j]); if(needed > 0 && (aqr.studenten[j].laststatus=='Wartender'||aqr.studenten[j].laststatus=='Bewerber')) @@ -383,7 +429,7 @@
    -

    {{aqr.name}} {{aqr.selectedStudiengang.studiengang_kz}}/{{aqr.selectedStudienplatz.studienplatz_id}}

    +

    {{aqr.name}} {{aqr.selectedStudiengang.studiengang_kz}}/{{aqr.selectedStudienplatz.studienplan_id}}

    @@ -401,8 +447,11 @@ Vorname ZGV Gruppe Reihung + RT Punkte 1 + RT Punkte 2 RT Gesamt Interviewbogen + Anmerkung/Prio Status {{aqr.choosenStuds}}/{{aqr.selectedStudienplatz.apz}} {{aqr.choosenStuds}}/Keine APZ @@ -416,8 +465,11 @@ {{stud.bezeichnung}} Keine Angabe {{stud.seqPlace}} + {{stud.rt_punkte1}} + {{stud.rt_punkte2}} {{stud.rt_gesamtpunkte}} {{stud.interviewbogen?'vorhanden':'nicht vorhanden'}} + {{stud.anmerkung}} {{stud.laststatus}} @@ -429,8 +481,36 @@ +

    ZGV Informationen

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameProzentInsgesamt benötigtBereits aufgenommenNoch benötigte Personen
    {{zgv.name}}{{zgv.percent | number: 2}}%{{zgv.overallNeeded | parseInt}}{{zgv.accepted}}{{zgv.needed | parseInt}}
    Gesamt{{aqr.selectedStudienplatz.apz}}{{aqr.getAcceptedCount()}}{{aqr.selectedStudienplatz.apz - aqr.getAcceptedCount()}}
    -

    Bereits aufgenommene

    +

    Restliche Studenten

    @@ -439,8 +519,11 @@ + + + @@ -453,8 +536,11 @@ + + +
    Vorname ZGV Gruppe ReihungRT Punkte 1RT Punkte 2 RT Gesamt InterviewbogenAnmerkung/Prio Status
    {{stud.bezeichnung}} Keine Angabe {{stud.seqPlace}}{{stud.rt_punkte1}}{{stud.rt_punkte2}} {{stud.rt_gesamtpunkte}} {{stud.interviewbogen?'vorhanden':'nicht vorhanden'}}{{stud.anmerkung}} {{stud.laststatus}} diff --git a/vilesci/personen/incoming_detail.php b/vilesci/personen/incoming_detail.php index fb872e042..7cc8205f9 100644 --- a/vilesci/personen/incoming_detail.php +++ b/vilesci/personen/incoming_detail.php @@ -1074,6 +1074,7 @@ function print_lehrveranstaltungen() + @@ -1083,6 +1084,7 @@ function print_lehrveranstaltungen() foreach($lv->lehrveranstaltungen as $row) { echo ''; + echo ''; echo ''; echo ''; echo ''; diff --git a/vilesci/personen/institutsliste.php b/vilesci/personen/institutsliste.php index 0b7049826..1d0cd1715 100644 --- a/vilesci/personen/institutsliste.php +++ b/vilesci/personen/institutsliste.php @@ -47,7 +47,19 @@ echo ' - + + +

    Liste der MitarbeiterInnen der Institute

    '; @@ -85,7 +97,7 @@ else //Alle aktiven Mitarbeiter holen mit den ALVS-Stunden und der Hauptinstitutszuteilung $qry = "SELECT - vorname, nachname, fixangestellt, mitarbeiter_uid, kompetenzen, + personalnummer, vorname, nachname, fixangestellt, mitarbeiter_uid, kompetenzen, ( SELECT sum(semesterstunden) @@ -123,27 +135,21 @@ $qry = "SELECT if($result = $db->db_query($qry)) { - echo "

    ID Bezeichnung Studiengang Semester
    '.$row->lehrveranstaltung_id.''.$row->bezeichnung.''.$stg->kuerzel_arr[$row->studiengang_kz].''.$row->semester.'. Semester
    + $count = $db->db_num_rows($result); + echo $count.' MitarbeiterInnen'; + echo "

    - - - - - - - - - - - - - - - - - - + + + + + + + + + + "; @@ -151,6 +157,7 @@ if($result = $db->db_query($qry)) while($row = $db->db_fetch_object($result)) { echo ''; + echo ""; echo ""; echo ""; echo ""; diff --git a/vilesci/personen/personen_details.php b/vilesci/personen/personen_details.php index 956bbfd7c..9fde7d32e 100644 --- a/vilesci/personen/personen_details.php +++ b/vilesci/personen/personen_details.php @@ -346,6 +346,10 @@ if(!$error_person_save) $kurzbeschreibung = $person->kurzbeschreibung; } +$akte = new akte(); +if($akte->getAkten($person_id, 'Lichtbil')) + $dms_id_lichtbild = $akte->result[0]->dms_id; + // PERSON echo "
    ALVSInstitute
    NachnameVornameFix / FreiKompetenzen".$db->convert_html_chars($ws)."".$db->convert_html_chars($ss)."StudiengangHauptzuteilungSonstigePNrNachnameVornameFix / FreiKompetenzenALVS
    ".$db->convert_html_chars($ws)."
    ALVS
    ".$db->convert_html_chars($ss)."
    StudiengangInstitut HauptzuteilungSonstige Institutszuteilungen
    ".$db->convert_html_chars($row->personalnummer)."".$db->convert_html_chars($row->nachname)."".$db->convert_html_chars($row->vorname)."".($row->fixangestellt=='t'?'fix':'frei')."
    - + "; echo ""; echo ""; + if($admin){echo "";} echo ''; echo ''; echo ""; @@ -115,6 +257,7 @@ if($searchstr!='') echo ""; echo ""; echo ""; + if($admin){echo "";} echo ''; while($row = $db->db_fetch_object($result)) @@ -128,7 +271,7 @@ if($searchstr!='') echo ""; echo ""; echo ""; - echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -142,6 +285,7 @@ if($searchstr!='') echo ""; echo ""; echo ""; + if($admin){echo '';} echo ''; $content = ''; @@ -173,15 +317,18 @@ if($searchstr!='') else $content.="Nein"; $content.= ""; - //$content.= ""; + //$content.= ""; //$content.= ""; $content.= ""; $content.= ""; - $content.= ""; + $content.= ""; $content.= ""; $content.= ""; $content.= ""; + $content.= ""; + $content.= ""; + if($admin){$content.= '';} $content.= ''; } } @@ -217,7 +364,7 @@ if($searchstr!='') else $content.="Nein"; $content.= ""; - //$content.= ""; + //$content.= ""; //$content.= ""; $content.= ""; @@ -226,8 +373,9 @@ if($searchstr!='') $content.= ""; $content.= ""; $content.= ""; - $content.= ""; + $content.= ""; $content.= ""; + if($admin){$content.= '';} $content.= ''; } } @@ -241,6 +389,1176 @@ if($searchstr!='') } } + +/* + * Cascading delete functions + */ +function casDeleteMitarbeiter($db, $mitarbeiter_uid, $trans=true) +{ + /* + * Init + */ + if($trans){$db->db_query("BEGIN;");} + $error = false; + + $projektphase_ids = array(); + + // get all projektphase_ids, where the employee is involved with + if(!$error) + { + $qry = ' + SELECT projektphase_id FROM fue.tbl_projektphase + WHERE ressource_id IN (SELECT ressource_id FROM fue.tbl_ressource WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + $res = $db->db_query($qry); + if(!$res) + { + $error = true; + } + else + { + while($row = $db->db_fetch_object($res)) + { + // and get FROM this projektphase_ids all other projekphase_ids recursively + $add = recursiveGetAllProjektphase_id($db, $row->projektphase_id); + if($add) + $projektphase_ids = array_merge($projektphase_ids, $add); + } + } + } + + if(!$error && !empty($projektphase_ids)) + { + $qry = ' + DELETE FROM fue.tbl_projekt_ressource + WHERE projektphase_id IN ('.$db->implode4SQL($projektphase_ids).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_projekttask + WHERE ressource_id IN (SELECT ressource_id FROM fue.tbl_ressource WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error && !empty($projektphase_ids)) + { + $qry = ' + DELETE FROM fue.tbl_projekt_dokument + WHERE projektphase_id IN ('.$db->implode4SQL($projektphase_ids).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error && !empty($projektphase_ids)) + { + $qry = ' + DELETE FROM fue.tbl_projekttask + WHERE projektphase_id IN ('.$db->implode4SQL($projektphase_ids).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error && !empty($projektphase_ids)) + { + $qry = ' + DELETE FROM fue.tbl_projektphase + WHERE projektphase_id IN ('.$db->implode4SQL($projektphase_ids).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_selbstevaluierung + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung_antwort + WHERE lvevaluierung_code_id IN (SELECT lvevaluierung_code_id FROM addon.tbl_lvevaluierung_code + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))))))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_antwort + WHERE lvevaluierung_code_id IN (SELECT lvevaluierung_code_id FROM addon.tbl_lvevaluierung_code + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))))))'; + if(!$db->db_query($qry)) + $error = true; + } + + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_code + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_studentuebung + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_legesamtnote + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_moodle + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_preincoming_lehrveranstaltung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_benutzerlvstudiensemester + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_feedback + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_feedback + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_moodle + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_projektbetreuer + WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM bis.tbl_bisfunktion + WHERE bisverwendung_id IN (SELECT bisverwendung_id FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_projektphase + WHERE ressource_id IN (SELECT ressource_id FROM fue.tbl_ressource WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_projekt_ressource + WHERE ressource_id IN (SELECT ressource_id FROM fue.tbl_ressource WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_stundenplan + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_paabgabe + WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_projektarbeit + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_pruefung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_stundenplandev + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_studienplan_lehrveranstaltung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_zeugnisnote + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_lvgesamtnote + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_lvinfo + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + if(!deleteWithFirstlevelDeps($db, 'mitarbeiter_uid', 'public', 'tbl_mitarbeiter', $mitarbeiter_uid, FHC_STRING)) + { + $error = true; + } + } + + /* + * Delete the tbl_mitarbeiter entry + */ + $qry = 'DELETE FROM public.tbl_mitarbeiter where mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid); + if(!$error && !$db->db_query($qry)) + $error = true; + + /* + * Rollback if an + * error occoured + */ + if(!$error) + { + + if($trans){$db->db_query("COMMIT;");} + return true; + } + + + if($trans){$db->db_query("ROLLBACK;");} + return false; +} + + + + + + +function casDeletePrestudent($db, $prestudent_id, $trans=true) +{ + /* + * Init + */ + if($trans){$db->db_query("BEGIN;");} + $error = false; + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_studentbeispiel + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM bis.tbl_bisio + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_legesamtnote + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_lvgesamtnote + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_studentuebung + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_abschlusspruefung + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_projektbetreuer + WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE student_uid IN (SELECT student_uid FROM tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_paabgabe + WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE student_uid IN (SELECT student_uid FROM tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_projektarbeit + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_zeugnisnote + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_studentlehrverband + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_pruefung + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_projekt_ressource + WHERE ressource_id IN(SELECT ressource_id FROM fue.tbl_ressource + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_ressource + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + if(!deleteWithFirstlevelDeps($db, 'prestudent_id', 'public', 'tbl_prestudent', $prestudent_id, FHC_INTEGER)) + { + $error = true; + } + } + + /* + * Delete the tbl_student entry + */ + $qry = 'DELETE FROM public.tbl_student where prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER); + if(!$error && !$db->db_query($qry)) + $error = true; + + /* + * Delete the tbl_prestudent entry + */ + $qry = 'DELETE FROM public.tbl_prestudent where prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER); + if(!$error && !$db->db_query($qry)) + $error = true; + + /* + * Rollback if an + * error occoured + */ + if(!$error) + { + + if($trans){$db->db_query("COMMIT;");} + return true; + } + + + if($trans){$db->db_query("ROLLBACK;");} + return false; +} + + + + + + +function casDeletePerson($db, $person_id, $trans=true) +{ + /* + * Init + */ + if($trans){$db->db_query("BEGIN;");} + $error = false; + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_prestudentstatus + WHERE prestudent_id IN (SELECT prestudent_id FROM public.tbl_prestudent WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_dokumentprestudent + WHERE prestudent_id IN (SELECT prestudent_id FROM public.tbl_prestudent WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_feedback + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_studienplan_lehrveranstaltung + WHERE koordinator IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_akte + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_casetime_gruppen + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_casetime_zeitaufzeichnung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_casetime_zeitsperre + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_zeitaufzeichnung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_contentlog + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_ressource_termin + WHERE coodle_ressource_id IN (SELECT coodle_ressource_id FROM campus.tbl_coodle_ressource + WHERE coodle_id IN (SELECT coodle_id FROM campus.tbl_coodle + WHERE ersteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).' + ) + ) + )'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_ressource + WHERE coodle_id IN (SELECT coodle_id FROM campus.tbl_coodle WHERE ersteller_uid IN(SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_termin + WHERE coodle_id IN (SELECT coodle_id FROM campus.tbl_coodle + WHERE ersteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle + WHERE ersteller_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_ressource_termin + WHERE coodle_ressource_id IN (SELECT coodle_ressource_id FROM campus.tbl_coodle_ressource + WHERE uid IN (SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).' + ) + )'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_ressource + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_zeitaufzeichnung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_zeitaufzeichnung + WHERE kunde_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_news + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_variable + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_prestudentstatus + WHERE bestaetigtvon IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_betriebsmittelperson + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_bestellung_bestellstatus + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_rechnung + WHERE bestellung_id IN (SELECT bestellung_id FROM wawi.tbl_bestellung + WHERE besteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = 'DELETE FROM wawi.tbl_betriebsmittelperson + WHERE betriebsmittel_id IN ( SELECT betriebsmittel_id FROM wawi.tbl_betriebsmittel + WHERE bestellung_id IN (SELECT bestellung_id FROM wawi.tbl_bestellung + WHERE besteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_betriebsmittel + WHERE bestellung_id IN (SELECT bestellung_id FROM wawi.tbl_bestellung + WHERE besteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_bestellung + WHERE besteller_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_bestellung_bestellstatus + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_preinteressentstudiengang + WHERE preinteressent_id IN (SELECT preinteressent_id FROM public.tbl_preinteressent WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_reservierung + WHERE veranstaltung_id IN (SELECT veranstaltung_id FROM campus.tbl_veranstaltung + WHERE freigabevon IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_veranstaltung + WHERE freigabevon IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_preoutgoing + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_selbstevaluierung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_software + WHERE ansprechperson_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + + + + + /* + * delete all prestudent entries + */ + if(!$error) + { + $queryPs = ' + SELECT tbl_prestudent.prestudent_id FROM tbl_prestudent + JOIN tbl_student ON (tbl_prestudent.prestudent_id = tbl_student.prestudent_id) + JOIN tbl_benutzer ON (tbl_student.student_uid = tbl_benutzer.uid) + WHERE tbl_benutzer.person_id = ' . $db->db_add_param($person_id, FHC_INTEGER).' + '; + $resultPs = $db->db_query($queryPs); + if(!$resultPs) + { + $error = true; + } + else + { + while($row = $db->db_fetch_object($resultPs)) + { + if(!$error) + { + if(!casDeletePrestudent($db, $row->prestudent_id, false)) + { + $error = true; + } + } + else { break; } + } + } + } + + /* + * delete all mitarbeiter entries + */ + if(!$error) + { + $queryMa = ' + SELECT tbl_mitarbeiter.mitarbeiter_uid FROM tbl_mitarbeiter + JOIN tbl_benutzer ON (tbl_mitarbeiter.mitarbeiter_uid = tbl_benutzer.uid) + WHERE tbl_benutzer.person_id = ' . $db->db_add_param($person_id, FHC_INTEGER).' + '; + $resultMa = $db->db_query($queryMa); + if(!$resultMa) + { + $error = true; + } + else + { + while($row = $db->db_fetch_object($resultMa)) + { + if(!$error) + { + if(!casDeleteMitarbeiter($db, $row->mitarbeiter_uid, false)) + $error = true; + } + else { break; } + } + } + } + + + + if(!$error) + { + if(!deleteWithFirstlevelDeps($db, 'person_id', 'public', 'tbl_person', $person_id, FHC_INTEGER)) + { + $error = true; + } + } + + /* + * Delete the tbl_person entry + */ + $qry = 'DELETE FROM public.tbl_person where person_id='.$db->db_add_param($person_id, FHC_INTEGER); + if(!$error && !$db->db_query($qry)) + { + $error = true; + } + + /* + * Rollback, if an + * error occoured + */ + if(!$error) + { + + if($trans){$db->db_query("COMMIT;");} + return true; + } + + + if($trans){$db->db_query("ROLLBACK;");} + return false; +} + + + + + +function deleteWithFirstlevelDeps($db, $column_name, $table_schema, $table_name, $data, $dataType) +{ + /* + * Resolve all neede Tables + */ + $qryResolve = ' + SELECT R.TABLE_NAME, R.TABLE_SCHEMA, R.COLUMN_NAME + FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE u + INNER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS FK + on U.CONSTRAINT_CATALOG = FK.UNIQUE_CONSTRAINT_CATALOG + AND U.CONSTRAINT_SCHEMA = FK.UNIQUE_CONSTRAINT_SCHEMA + AND U.CONSTRAINT_NAME = FK.UNIQUE_CONSTRAINT_NAME + INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE R + ON R.CONSTRAINT_CATALOG = FK.CONSTRAINT_CATALOG + AND R.CONSTRAINT_SCHEMA = FK.CONSTRAINT_SCHEMA + AND R.CONSTRAINT_NAME = FK.CONSTRAINT_NAME + WHERE U.COLUMN_NAME = ' . $db->db_add_param($column_name) . ' + AND U.TABLE_SCHEMA = ' . $db->db_add_param($table_schema) . ' + AND U.TABLE_NAME = ' . $db->db_add_param($table_name) . ';'; + + $resultResolve = $db->db_query($qryResolve); + if(!$resultResolve) + return false; + + while($rowResolve = $db->db_fetch_object($resultResolve)) + { + $qryDelete = ' + DELETE FROM '.$rowResolve->table_schema.'.'.$rowResolve->table_name.' + WHERE '.$rowResolve->column_name.'='.$db->db_add_param($data, $dataType); + $resultDelete = $db->db_query($qryDelete); + if(!$resultDelete) + { + return false; + } + } + return true; +} + + + +function recursiveGetAllProjektphase_id($db, $projektphase_id, $arr = null) +{ + if(is_null($arr)) + $arr = array(); + + + $qry = 'SELECT projektphase_id FROM fue.tbl_projektphase WHERE projektphase_fk='.$db->db_add_param($projektphase_id, FHC_INTEGER).';'; + + $res = $db->db_query($qry); + if(!$res) + return false; + + while($row = $db->db_fetch_object($res)) + { + if(!is_null($row->projektphase_id)) + $arr = array_merge($arr, recursiveGetAllProjektphase_id($db, $row->projektphase_id, $arr)); + } + + $arr[] = $projektphase_id; + + return $arr; +} + ?> diff --git a/vilesci/stammdaten/firma_details.php b/vilesci/stammdaten/firma_details.php index e2c83d215..b2baac9bd 100644 --- a/vilesci/stammdaten/firma_details.php +++ b/vilesci/stammdaten/firma_details.php @@ -89,11 +89,14 @@ if(isset($_GET['deleteadresse'])) //Loeschen einer Organisationseinheit if(isset($_GET['deleteorganisationseinheit'])) { - if(!$rechte->isBerechtigt('basis/firma:begrenzt',null, 'suid')) - die('Sie haben keine Berechtigung fuer diese Aktion'); if(!empty($firma_organisationseinheit_id)) { $firma = new firma(); + $firma->load_firmaorganisationseinheit($firma_organisationseinheit_id); + $oe_kurzbz = $firma->oe_kurzbz; + if(!$rechte->isBerechtigt('basis/firma:begrenzt',$oe_kurzbz, 'suid')) + die($rechte->errormsg); + $firma = new firma(); if(!$firma->deleteorganisationseinheit($firma_organisationseinheit_id)) { $errorstr=($errorstr?$errorstr.', ':'').'Fehler beim Loeschen Firma/Organisation:'.$firma->errormsg;
    @@ -464,7 +468,7 @@ echo "
    Anmerkungen Bild hochladen

    diff --git a/vilesci/personen/suche.php b/vilesci/personen/suche.php index 6c1ad5b35..a60c90676 100644 --- a/vilesci/personen/suche.php +++ b/vilesci/personen/suche.php @@ -29,6 +29,7 @@ require_once('../../include/person.class.php'); require_once('../../include/benutzer.class.php'); require_once('../../include/student.class.php'); require_once('../../include/prestudent.class.php'); +require_once('../../include/mitarbeiter.class.php'); require_once('../../include/datum.class.php'); require_once('../../include/authentication.class.php'); require_once('../../include/benutzerberechtigung.class.php'); @@ -47,14 +48,139 @@ if(isset($_GET['searchstr'])) else $searchstr = ''; +$msgString = ""; +$errString = ""; + +if(isset($_GET['filter'])) + $filter = $_GET['filter']; +else + $filter = ''; + $datum_obj = new datum(); +$admin = false; +if($rechte->isBerechtigt('admin')) + $admin = true; + +if($admin) +{ + if(isset($_REQUEST["delete"])) + { + if(isset($_REQUEST["mitarbeiter"])) + { + $mita = new mitarbeiter(); + $mita->load($_REQUEST["mitarbeiter"]); + + if(!casDeleteMitarbeiter($db, $_REQUEST["mitarbeiter"])) + $errString = 'Fehler beim Loeschen des Mitarbeiter-Datensatzes'; + else + { + $msgString = ($mita->geschlecht == "w" ? "Mitarbeiterin '" : "Mitarbeiter '") . $mita->vorname . " " . $mita->nachname . "' wurde erfolgreich geloescht"; + } + } + else if(isset($_REQUEST["prestudent"])) + { + $pres = new prestudent(); + $pres->load($_REQUEST["prestudent"]); + + if(!casDeletePrestudent($db, $_REQUEST["prestudent"])) + $errString = 'Fehler beim Loeschen des Prestudent-Datensatzes'; + else + { + $msgString = ($pres->geschlecht == "w" ? "Studentin '" : "Student '") . $pres->vorname . " " . $pres->nachname . "' wurde erfolgreich geloescht"; + } + } + else if(isset($_REQUEST["person"])) + { + $pers = new person(); + $pers->load($_REQUEST["person"]); + + if(!casDeletePerson($db, $_REQUEST["person"])) + $errString = 'Fehler beim Loeschen des Person-Datensatzes'; + else + { + $msgString = "Person '" . $pers->vorname . " " . $pers->nachname . "' wurde erfolgreich geloescht"; + } + } + } +} + echo ' Suchergebnis + @@ -63,6 +189,7 @@ echo ' $stg = new studiengang(); $stg->getAll('typ, kurzbz', false); + $stg_arr = array(); foreach ($stg->result as $row) $stg_arr[$row->studiengang_kz]=$row->kuerzel; @@ -70,20 +197,34 @@ echo '
    Bitte Suchbegriff eingeben: + Nur MitarbeiterInnen + Nur Studierende
    '; +echo "

    $errString

    "; +echo "

    $msgString

    "; + if($searchstr!='') { - $qry = "SELECT person_id FROM public.tbl_person WHERE person_id in( - SELECT distinct person_id FROM public.tbl_person LEFT JOIN public.tbl_benutzer USING(person_id) WHERE - nachname ~* '".$db->db_escape($searchstr)."' OR - vorname ~* '".$db->db_escape($searchstr)."' OR - alias ~* '".$db->db_escape($searchstr)."' OR - COALESCE(nachname,'') || ' ' || COALESCE(vorname,'') = '".$db->db_escape($searchstr)."' OR - COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') = '".$db->db_escape($searchstr)."' OR - uid ~* '".$db->db_escape($searchstr)."' - ) ORDER BY nachname, vorname;"; + $qry = "SELECT + distinct on (nachname, vorname, person_id) * + FROM + public.tbl_person + LEFT JOIN public.tbl_benutzer USING(person_id)"; + + if ($filter=='mitarbeiter') + $qry .= " JOIN public.tbl_mitarbeiter ON (uid=mitarbeiter_uid) "; + elseif ($filter=='student') + $qry .= " JOIN public.tbl_prestudent USING (person_id) "; + + $qry .= " WHERE true + AND nachname ~* '".$db->db_escape($searchstr)."' OR + vorname ~* '".$db->db_escape($searchstr)."' OR + (nachname || ' ' || vorname) ~* '".$db->db_escape($searchstr)."' OR + (vorname || ' ' || nachname) ~* '".$db->db_escape($searchstr)."' OR + uid=".$db->db_add_param($searchstr)." + ORDER BY nachname, vorname;"; if($result = $db->db_query($qry)) { @@ -96,6 +237,7 @@ if($searchstr!='') echo "
    BenutzerMitarbeiterStudent
    NachnameGruppeupdateAmUmupdateVon
    $row_person->nachname$row_person->vorname".($row_person->gebdatum!=''?$datum_obj->convertISODate($row_person->gebdatum):'')."".($row_person->updateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_person->updateamum)):'')."".($row_person->updateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_person->updateamum)):'')."$row_person->updatevonLöschen
    ".($row_mitarbeiter->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_mitarbeiter->bnupdateamum)):'')."".($row_mitarbeiter->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_mitarbeiter->bnupdateamum)):'')."$row_mitarbeiter->bnupdatevon$row_mitarbeiter->telefonklappe$row_mitarbeiter->ort_kurzbz".($row_mitarbeiter->mupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_mitarbeiter->mupdateamum)):'')."".($row_mitarbeiter->mupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_mitarbeiter->mupdateamum)):'')."$row_mitarbeiter->mupdatevonLöschen
    ".($row_student->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_student->bnupdateamum)):'')."".($row_student->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_student->bnupdateamum)):'')."$row_student->bnupdatevon".$stg_arr[$row_student->studiengang_kz]."$row_student->semester$row_student->verband$row_student->gruppe".($row_student->supdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_student->supdateamum)):'')."".($row_student->supdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_student->supdateamum)):'')."$row_student->supdatevonLöschen