diff --git a/content/fas.xul.php b/content/fas.xul.php index 75c9feab1..678c5241c 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -106,6 +106,7 @@ echo ''; + @@ -134,6 +135,7 @@ echo ''; + @@ -466,6 +468,12 @@ echo ''; label = "&menu-dokumente-zeugniseng.label;" command = "menu-dokumente-zeugniseng:command" accesskey = "&menu-dokumente-zeugniseng.accesskey;"/> + '; label = "&menu-bis-studenten-export.label;" command = "menu-bis-studenten-export:command" accesskey = "&menu-bis-studenten-export.accesskey;"/> + diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php index 389ce7b8e..726e0ec37 100644 --- a/content/fasoverlay.js.php +++ b/content/fasoverlay.js.php @@ -1290,6 +1290,33 @@ function BISStudentenExport() } } +// **** +// * oeffnet Script mit Plausibilitaetspruefungen eines Studiengangs +// **** +function BISStudentenPlausicheck() +{ + var tree=document.getElementById('tree-verband'); + + //Wenn nichts markiert wurde -> beenden + if(tree.currentIndex==-1) + { + alert('Bitte einen Studiengang auswaehlen'); + return; + } + + col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; + var stg_kz=tree.view.getCellText(tree.currentIndex,col); + + if(stg_kz!='') + { + window.open('system/checkStudenten.php?stg_kz='+stg_kz,'StudentenPlausibilitaetscheck',''); + } + else + { + alert('Bitte einen Studiengang auswaehlen'); + } +} + // **** // * Oeffnet den About Dialog // **** diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 94e9a46a0..e3a6d208e 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -2491,6 +2491,41 @@ function StudentCreateZeugnis(xsl) window.open('content/pdfExport.php?xml=zeugnis.rdf.php&xsl='+xsl+'&uid='+paramList+'&ss='+ss+'&xsl_stg_kz='+xsl_stg_kz,'Zeugnis', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } +// **** +// * Erstellt das Sammelzeugnis fuer einen Studenten +// **** +function StudentCreateSammelzeugnis(xsl) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + tree = document.getElementById('student-tree'); + + //Markierte Studenten holen + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var paramList= ''; + + for (var t = 0; t < numRanges; t++) + { + tree.view.selection.getRangeAt(t,start,end); + for (var v = start.value; v <= end.value; v++) + { + var uid = getTreeCellText(tree, 'student-treecol-uid', v); + paramList += ';'+uid; + } + } + var xsl_stg_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value + + if(paramList.replace(";",'')=='') + { + alert('Bitte einen Studenten auswaehlen'); + return false; + } + + //PDF erzeugen + window.open('content/pdfExport.php?xml=sammelzeugnis.rdf.php&xsl='+xsl+'&uid='+paramList+'&xsl_stg_kz='+xsl_stg_kz,'Sammelzeugnis', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); +} // **** // * Laedt ein Zeugnis dass in der DB gespeichert ist // **** diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd index dc1cf4c6c..b8ff2ea30 100644 --- a/locale/de-AT/fas.dtd +++ b/locale/de-AT/fas.dtd @@ -199,6 +199,10 @@ + + + + @@ -325,6 +329,10 @@ + + + + diff --git a/rdf/sammelzeugnis.rdf.php b/rdf/sammelzeugnis.rdf.php index 3b2990260..2fac133b7 100644 --- a/rdf/sammelzeugnis.rdf.php +++ b/rdf/sammelzeugnis.rdf.php @@ -40,203 +40,213 @@ $bez = ''; if(isset($_REQUEST['xmlformat']) && $_REQUEST['xmlformat']=="xml") { - $uid = (isset($_REQUEST['uid'])?$_REQUEST['uid']:null); + $uid_arr = (isset($_REQUEST['uid'])?$_REQUEST['uid']:null); + + $uid_arr = explode(";",$uid_arr); echo ""; - echo ""; - echo ""; - - - $qry = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.projektarbeit_note_anzeige, - tbl_studiengang.bezeichnung, tbl_studiengang.english, tbl_studentlehrverband.semester, - tbl_person.vorname, tbl_person.vornamen, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, - tbl_person.titelpost, tbl_person.anrede, tbl_studiensemester.bezeichnung as sembezeichnung, - tbl_studiensemester.studiensemester_kurzbz as stsem, tbl_student.prestudent_id - FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester - WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz - AND tbl_student.student_uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id - AND tbl_student.student_uid = '".addslashes($uid)."' - AND tbl_studentlehrverband.student_uid=tbl_student.student_uid - AND tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz - order by semester;"; - - if($result = $db->db_query($qry)) + echo ""; + foreach($uid_arr as $uid) { - if($row_person = $db->db_fetch_object($result)) + $xml_fussnote=0; + $anzahl_fussnoten=0; + if($uid=='') + continue; + + echo ""; + + + $qry = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.projektarbeit_note_anzeige, + tbl_studiengang.bezeichnung, tbl_studiengang.english, tbl_studentlehrverband.semester, + tbl_person.vorname, tbl_person.vornamen, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, + tbl_person.titelpost, tbl_person.anrede, tbl_studiensemester.bezeichnung as sembezeichnung, + tbl_studiensemester.studiensemester_kurzbz as stsem, tbl_student.prestudent_id + FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester + WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz + AND tbl_student.student_uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id + AND tbl_student.student_uid = '".addslashes($uid)."' + AND tbl_studentlehrverband.student_uid=tbl_student.student_uid + AND tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz + order by semester;"; + + if($result = $db->db_query($qry)) { - $datum_aktuell = date('d.m.Y'); - $gebdatum = date('d.m.Y',strtotime($row_person->gebdatum)); - $studiengang = new studiengang(); - $stgleiter = $studiengang->getLeitung($row_person->studiengang_kz); - $stgl=''; - foreach ($stgleiter as $stgleiter_uid) + if($row_person = $db->db_fetch_object($result)) { - $stgl_ma = new mitarbeiter($stgleiter_uid); - $stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); - } - - echo ' '.$row_person->anrede.''; - echo ' '.$row_person->vorname.''; - echo ' '.$row_person->nachname.''; - echo ' '.trim($row_person->titelpre.' '.trim($row_person->vorname.' '.$row_person->vornamen).' '.mb_strtoupper($row_person->nachname).($row_person->titelpost!=''?', '.$row_person->titelpost:'')).''; - echo ' '.$gebdatum.''; - echo ' '.$row_person->matrikelnr.''; - echo ' '.$row_person->bezeichnung.''; - echo ' '.$row_person->english.''; - echo " ".sprintf('%04s', $row_person->studiengang_kz).""; - echo ' '.$stgl.''; - echo ' '.$datum_aktuell.''; - echo ' '.($row_person->projektarbeit_note_anzeige=='t'?'true':'false').''; - switch ($row_person->typ) - { - case 'b': - $bezeichnung = 'Bachelor'; - break; - case 'm': - $bezeichnung = 'Master'; - break; - case 'd': - $bezeichnung = 'Diplom'; - break; - default: - $bezeichnung = ''; - break; - } - $bez = $row_person->typ; - echo ' '.$bezeichnung.''; - $prestudent = new prestudent(); - - $prestudent->getFirstStatus($row_person->prestudent_id, 'Student'); - echo ' '.substr($prestudent->studiensemester_kurzbz,2,6).''; - echo ' '.$prestudent->ausbildungssemester.''; - $prestudent->getLastStatus($row_person->prestudent_id, null, 'Student'); - echo ' '.substr($prestudent->studiensemester_kurzbz,2,6).''; - echo ' '.$prestudent->ausbildungssemester.''; - } - } - - $qry_projektarbeit = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english - FROM lehre.tbl_projektarbeit - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE student_uid='$uid' - AND projekttyp_kurzbz in('Bachelor', 'Diplom') - ORDER BY beginn ASC, projektarbeit_id ASC;"; - - $projektarbeit = array(); - - if($result_projektarbeit = $db->db_query($qry_projektarbeit)) - { - while($row_projektarbeit = $db->db_fetch_object($result_projektarbeit)) - { - $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['titel']=$row_projektarbeit->titel; - $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['titel_en']=$row_projektarbeit->titel_english; - $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['themenbereich']=$row_projektarbeit->themenbereich; - $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['note']=$row_projektarbeit->note; - } - } - - $qry ="Select distinct(student.lehrveranstaltung_id), student.uid, student.studiengang_kz, student.kurzbz, student.bezeichnung, student.bezeichnung_english, student.semester, student.semesterstunden, student.ects, student.studiensemester_kurzbz, zeugnis.note, note.bezeichnung note_bezeichnung, note.anmerkung - from campus.vw_student_lehrveranstaltung student - left join lehre.tbl_zeugnisnote zeugnis on(student.lehrveranstaltung_id = zeugnis.lehrveranstaltung_id AND student.uid = zeugnis.student_uid AND student.studiensemester_kurzbz = zeugnis.studiensemester_kurzbz) - join lehre.tbl_note note using(note) - - where uid = '$uid' and zeugnis = true order by semester;"; - - - $i = 0; - $wochen = 15; - if($result_stud = $db->db_query($qry)) - { - while($row_stud = $db->db_fetch_object($result_stud)) - { - if($i <= 31) - echo " "; - else - echo " "; - - $qry_sws = "SELECT wochen from public.tbl_semesterwochen where studiengang_kz = '".addslashes($row_stud->studiengang_kz)."' - and semester = '".addslashes($row_stud->semester)."';"; - - if($result_sws = $db->db_query($qry_sws)) - { - if($row_sws = $db->db_fetch_object($result_sws)) + $datum_aktuell = date('d.m.Y'); + $gebdatum = date('d.m.Y',strtotime($row_person->gebdatum)); + $studiengang = new studiengang(); + $stgleiter = $studiengang->getLeitung($row_person->studiengang_kz); + $stgl=''; + foreach ($stgleiter as $stgleiter_uid) { - $wochen = $row_sws->wochen; + $stgl_ma = new mitarbeiter($stgleiter_uid); + $stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); } - } - $ssp = $row_stud->semesterstunden / $wochen; - - if(array_key_exists($row_stud->lehrveranstaltung_id, $projektarbeit)) - { - //$bezeichnung = $row_stud->lehrveranstaltung_bezeichnung.$firma.' '.$fussnotenzeichen[$anzahl_fussnoten]; - //$bezeichnung_englisch = $row_stud->lehrveranstaltung_bezeichnung_english.$firma_eng.' '.$fussnotenzeichen[$anzahl_fussnoten]; - $xml_fussnote .="\n "; - $xml_fussnote .=" ".$fussnotenzeichen[$anzahl_fussnoten].""; - - //$projektarbeit[$row->lehrveranstaltung_id]['titel'] = breaktext($projektarbeit[$row->lehrveranstaltung_id]['titel'], 40); - - $anzahl_nl = substr_count($projektarbeit[$row_stud->lehrveranstaltung_id]['titel'],'\n'); - $nl2=''; - if($projektarbeit[$row_stud->lehrveranstaltung_id]['themenbereich']!='') - { - $xml_fussnote .=" Themenbereich: "; - $xml_fussnote .=" lehrveranstaltung_id]['themenbereich'].'\n]]>'; - $anzahl_nl++; - $nl2='\n'; - } - - if($bez=='b') - $typ = "Bachelor's Thesis:"; - else - $typ = 'Master Thesis:'; - - $nl=''; - $nl2=''; - $xml_fussnote .=" $typ"; - $xml_fussnote .=" lehrveranstaltung_id]['titel'].$nl2."]]>"; - $xml_fussnote .=" lehrveranstaltung_id]['titel_en'].$nl2."]]>"; - //$note = $note_arr[$projektarbeit[$row->lehrveranstaltung_id]['note']]; - $note = $projektarbeit[$row_stud->lehrveranstaltung_id]['note']; - //$nl = str_repeat('\n',($anzahl_nl)); - $xml_fussnote .=' '.(isset($note_arr[$note])?$note_arr[$note]:$note).$nl.''; - $xml_fussnote .=' '.$nl.''; - $xml_fussnote .=' '.$nl.''; - $xml_fussnote .=' '.$nl.''; - - $xml_fussnote .=" "; - $anzahl_fussnoten++; - $test = true; + + echo ' '.$row_person->anrede.''; + echo ' '.$row_person->vorname.''; + echo ' '.$row_person->nachname.''; + echo ' '.trim($row_person->titelpre.' '.trim($row_person->vorname.' '.$row_person->vornamen).' '.mb_strtoupper($row_person->nachname).($row_person->titelpost!=''?', '.$row_person->titelpost:'')).''; + echo ' '.$gebdatum.''; + echo ' '.$row_person->matrikelnr.''; + echo ' '.$row_person->bezeichnung.''; + echo ' '.$row_person->english.''; + echo " ".sprintf('%04s', $row_person->studiengang_kz).""; + echo ' '.$stgl.''; + echo ' '.$datum_aktuell.''; + echo ' '.($row_person->projektarbeit_note_anzeige=='t'?'true':'false').''; + switch ($row_person->typ) + { + case 'b': + $bezeichnung = 'Bachelor'; + break; + case 'm': + $bezeichnung = 'Master'; + break; + case 'd': + $bezeichnung = 'Diplom'; + break; + default: + $bezeichnung = ''; + break; + } + $bez = $row_person->typ; + echo ' '.$bezeichnung.''; + $prestudent = new prestudent(); + + $prestudent->getFirstStatus($row_person->prestudent_id, 'Student'); + echo ' '.substr($prestudent->studiensemester_kurzbz,2,6).''; + echo ' '.$prestudent->ausbildungssemester.''; + $prestudent->getLastStatus($row_person->prestudent_id, null, 'Student'); + echo ' '.substr($prestudent->studiensemester_kurzbz,2,6).''; + echo ' '.$prestudent->ausbildungssemester.''; } - - echo " ".number_format($ssp,2).""; - echo " $row_stud->semester"; - echo " $row_stud->kurzbz"; - echo " $row_stud->studiensemester_kurzbz"; - echo " bezeichnung]]>"; - - if($test == true) - echo " bezeichnung_english]]>".$fussnotenzeichen[$anzahl_fussnoten-1].""; - else - echo " bezeichnung_english]]>"; - - echo " $row_stud->ects"; - echo " $row_stud->semesterstunden"; - echo " $row_stud->note"; - echo " $row_stud->note_bezeichnung"; - echo " $row_stud->anmerkung"; - - if($i <= 31) - echo " "; - else - echo " "; - - $i++; - $test = false; } - + + $qry_projektarbeit = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english + FROM lehre.tbl_projektarbeit + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE student_uid='$uid' + AND projekttyp_kurzbz in('Bachelor', 'Diplom') + ORDER BY beginn ASC, projektarbeit_id ASC;"; + + $projektarbeit = array(); + + if($result_projektarbeit = $db->db_query($qry_projektarbeit)) + { + while($row_projektarbeit = $db->db_fetch_object($result_projektarbeit)) + { + $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['titel']=$row_projektarbeit->titel; + $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['titel_en']=$row_projektarbeit->titel_english; + $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['themenbereich']=$row_projektarbeit->themenbereich; + $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['note']=$row_projektarbeit->note; + } + } + + $qry ="Select distinct(student.lehrveranstaltung_id), student.uid, student.studiengang_kz, student.kurzbz, student.bezeichnung, student.bezeichnung_english, student.semester, student.semesterstunden, student.ects, student.studiensemester_kurzbz, zeugnis.note, note.bezeichnung note_bezeichnung, note.anmerkung + from campus.vw_student_lehrveranstaltung student + left join lehre.tbl_zeugnisnote zeugnis on(student.lehrveranstaltung_id = zeugnis.lehrveranstaltung_id AND student.uid = zeugnis.student_uid AND student.studiensemester_kurzbz = zeugnis.studiensemester_kurzbz) + join lehre.tbl_note note using(note) + + where uid = '$uid' and zeugnis = true order by semester;"; + + + $i = 0; + $wochen = 15; + if($result_stud = $db->db_query($qry)) + { + while($row_stud = $db->db_fetch_object($result_stud)) + { + if($i <= 31) + echo " "; + else + echo " "; + + $qry_sws = "SELECT wochen from public.tbl_semesterwochen where studiengang_kz = '".addslashes($row_stud->studiengang_kz)."' + and semester = '".addslashes($row_stud->semester)."';"; + + if($result_sws = $db->db_query($qry_sws)) + { + if($row_sws = $db->db_fetch_object($result_sws)) + { + $wochen = $row_sws->wochen; + } + } + $ssp = $row_stud->semesterstunden / $wochen; + + if(array_key_exists($row_stud->lehrveranstaltung_id, $projektarbeit)) + { + //$bezeichnung = $row_stud->lehrveranstaltung_bezeichnung.$firma.' '.$fussnotenzeichen[$anzahl_fussnoten]; + //$bezeichnung_englisch = $row_stud->lehrveranstaltung_bezeichnung_english.$firma_eng.' '.$fussnotenzeichen[$anzahl_fussnoten]; + $xml_fussnote .="\n "; + $xml_fussnote .=" ".$fussnotenzeichen[$anzahl_fussnoten].""; + + //$projektarbeit[$row->lehrveranstaltung_id]['titel'] = breaktext($projektarbeit[$row->lehrveranstaltung_id]['titel'], 40); + + $anzahl_nl = substr_count($projektarbeit[$row_stud->lehrveranstaltung_id]['titel'],'\n'); + $nl2=''; + if($projektarbeit[$row_stud->lehrveranstaltung_id]['themenbereich']!='') + { + $xml_fussnote .=" Themenbereich: "; + $xml_fussnote .=" lehrveranstaltung_id]['themenbereich'].'\n]]>'; + $anzahl_nl++; + $nl2='\n'; + } + + if($bez=='b') + $typ = "Bachelor's Thesis:"; + else + $typ = 'Master Thesis:'; + + $nl=''; + $nl2=''; + $xml_fussnote .=" $typ"; + $xml_fussnote .=" lehrveranstaltung_id]['titel'].$nl2."]]>"; + $xml_fussnote .=" lehrveranstaltung_id]['titel_en'].$nl2."]]>"; + //$note = $note_arr[$projektarbeit[$row->lehrveranstaltung_id]['note']]; + $note = $projektarbeit[$row_stud->lehrveranstaltung_id]['note']; + //$nl = str_repeat('\n',($anzahl_nl)); + $xml_fussnote .=' '.(isset($note_arr[$note])?$note_arr[$note]:$note).$nl.''; + $xml_fussnote .=' '.$nl.''; + $xml_fussnote .=' '.$nl.''; + $xml_fussnote .=' '.$nl.''; + + $xml_fussnote .=" "; + $anzahl_fussnoten++; + $test = true; + } + + echo " ".number_format($ssp,2).""; + echo " $row_stud->semester"; + echo " $row_stud->kurzbz"; + echo " $row_stud->studiensemester_kurzbz"; + echo " bezeichnung]]>"; + + if($test == true) + echo " bezeichnung_english]]>".$fussnotenzeichen[$anzahl_fussnoten-1].""; + else + echo " bezeichnung_english]]>"; + + echo " $row_stud->ects"; + echo " $row_stud->semesterstunden"; + echo " $row_stud->note"; + echo " $row_stud->note_bezeichnung"; + echo " $row_stud->anmerkung"; + + if($i <= 31) + echo " "; + else + echo " "; + + $i++; + $test = false; + } + + } + echo $xml_fussnote; + echo ""; } - echo $xml_fussnote; - echo ""; echo ""; } diff --git a/skin/tempus.css b/skin/tempus.css index d9840b2d0..8c1189936 100644 --- a/skin/tempus.css +++ b/skin/tempus.css @@ -1,4 +1,4 @@ -@import url("chrome://communicator/skin/"); +@import url("chrome://global/skin/"); label.kalenderwoche { diff --git a/system/checkStudenten.php b/system/checkStudenten.php index 187079b8f..c8dd28a44 100644 --- a/system/checkStudenten.php +++ b/system/checkStudenten.php @@ -366,6 +366,10 @@ if($result = $db->db_query($qry)) // Ausgabe der Studenten foreach($ausgabe as $stg_kz=>$value) { + //Wenn eine Studiengangskennzahl uebergeben wird, nur diese anzeigen und die anderen ueberspringen + if(isset($_REQUEST['stg_kz']) && $_REQUEST['stg_kz']!=$stg_kz) + continue; + $studiengang = new studiengang(); $studiengang->load($stg_kz);