diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php index f2435828d..a9677e808 100644 --- a/cis/private/lehre/pruefung/pruefung.js.php +++ b/cis/private/lehre/pruefung/pruefung.js.php @@ -353,10 +353,9 @@ function writePruefungsTable(e, data, anmeldung) var time = termin[1].substring(0,5); termin = termin[0].split("-"); - // Wie viele Monate vor Prüfungen dürfen sich Studierende anmelden? - // Sperre "deaktiviert" indem man sich 24 Monate vorher anmelden darf + // Studierende dürfen sich 2 Monate vor Prüfungen anmelden var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]); - minimumFrist.setMonth(minimumFrist.getMonth() - 24); + minimumFrist.setMonth(minimumFrist.getMonth() - 2); termin = new Date(termin[0], termin[1]-1,termin[2]); var frist = termin; diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index 436c48eb8..ac2c94948 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -820,7 +820,12 @@ function LeAuswahl() LehrveranstaltungNotenLoad(lehrveranstaltung_id); //Notizen Tab ausblenden - //document.getElementById('lehrveranstaltung-tab-notizen').collapsed=true; + document.getElementById('lehrveranstaltung-tab-notizen').collapsed=true; + + if(document.getElementById('lehrveranstaltung-tabs').selectedItem === document.getElementById('lehrveranstaltung-tab-notizen')) + { + document.getElementById('lehrveranstaltung-tabs').selectedItem = document.getElementById('lehrveranstaltung-tab-detail'); + } //LV-Angebot Tab einblenden und Gruppen laden document.getElementById('lehrveranstaltung-tab-lvangebot').collapsed=false; @@ -853,7 +858,7 @@ function LeAuswahl() //document.getElementById('lehrveranstaltung-tab-noten').collapsed=true; //Notizen Tab einblenden - //document.getElementById('lehrveranstaltung-tab-notizen').collapsed=false; + document.getElementById('lehrveranstaltung-tab-notizen').collapsed=false; //LV-Angebot Tab ausblenden document.getElementById('lehrveranstaltung-tab-lvangebot').collapsed=true; diff --git a/content/statistik/studentenexportextended.xls.php b/content/statistik/studentenexportextended.xls.php index e7940946b..81e51b53a 100644 --- a/content/statistik/studentenexportextended.xls.php +++ b/content/statistik/studentenexportextended.xls.php @@ -179,6 +179,8 @@ $worksheet->write($zeile, ++$i, "RT_PUNKTE2", $format_bold); $maxlength[$i] = 10; $worksheet->write($zeile, ++$i, "RT_GESAMTPUNKTE", $format_bold); $maxlength[$i] = 18; +$worksheet->write($zeile,++$i,"ANMERKUNG", $format_bold); +$maxlength[$i]=30; $worksheet->write($zeile, ++$i, "PRIORITÄT", $format_bold); $maxlength[$i] = 8; @@ -659,7 +661,21 @@ function draw_content($row) $maxlength[$i] = mb_strlen($row->rt_gesamtpunkte); $worksheet->write($zeile, $i, $row->rt_gesamtpunkte); $i++; - + + //Anmerkung + $qry_1 = "SELECT anmerkung FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." LIMIT 1"; + + if($db->db_query($qry_1)) + { + if($row_1 = $db->db_fetch_object()) + { + if(mb_strlen($row_1->anmerkung)>$maxlength[$i]) + $maxlength[$i]=mb_strlen($row_1->anmerkung); + + $worksheet->write($zeile,$i, $row_1->anmerkung); + } + } + $i++; //Priorisierung $prio = $prio_relativ.' ('.$row->priorisierung.')'; if (mb_strlen($prio) > $maxlength[$i]) diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php index 33cb23226..ec72ee756 100644 --- a/content/student/studentdetailoverlay.xul.php +++ b/content/student/studentdetailoverlay.xul.php @@ -355,7 +355,7 @@ echo ''; @@ -364,7 +364,7 @@ echo ''; @@ -425,7 +425,7 @@ echo ''; @@ -434,7 +434,7 @@ echo ''; @@ -497,7 +497,7 @@ echo ''; @@ -506,7 +506,7 @@ echo ''; diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index 16c7ba2fe..48edd9d0a 100644 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -2776,5 +2776,90 @@ class lehrveranstaltung extends basis_db return null; } + /** + * Prueft ob die Lehrveranstaltungen in dem Studiensemestern angeboten wird. + * Dazu wird geprueft ob die LVs einem aktuellen Studienplan zugeordnet ist und ob ein Lehrauftrag vorhanden ist. + * + * @param $lehrveranstaltung_id + * @param $studiensemester_kurzbz + * @return array + */ + public function getOfferedSemester($lehrveranstaltung_id, $studiensemester_kurzbz) + { + $qry = "SELECT + DISTINCT(studiensemester_kurzbz) + FROM + lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id = ".$this->db_add_param($lehrveranstaltung_id)." + AND studiensemester_kurzbz IN (".$this->db_implode4SQL($studiensemester_kurzbz).") + AND EXISTS ( + SELECT + * + FROM + lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan_semester USING(studienplan_id) + WHERE + lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)." + AND studiensemester_kurzbz IN (".$this->db_implode4SQL($studiensemester_kurzbz).") + )"; + + $studiensemester = []; + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $studiensemester[] = $row; + } + return $studiensemester; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Prueft ob die Lehrveranstaltungen in den gewaehlten Studiensemestern angeboten wird. + * Dazu wird geprueft ob die LVs einem aktuellen Studienplan zugeordnet ist, und ob ein Lehrauftrag vorhanden ist. + * + * @param $lehrveranstaltung_id + * @param $studiensemester_kurzbz + * @return array + */ + public function getOfferedLVs($lehrveranstaltung_id, $studiensemester_kurzbz) + { + $qry = "SELECT + DISTINCT(tbl_lehreinheit.lehrveranstaltung_id) + FROM + lehre.tbl_lehreinheit + WHERE tbl_lehreinheit.lehrveranstaltung_id IN (".$this->db_implode4SQL($lehrveranstaltung_id).") + AND tbl_lehreinheit.studiensemester_kurzbz IN (".$this->db_implode4SQL($studiensemester_kurzbz).") + AND EXISTS ( + SELECT + * + FROM + lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan_semester USING(studienplan_id) + WHERE + tbl_lehreinheit.lehrveranstaltung_id IN (".$this->db_implode4SQL($lehrveranstaltung_id).") + AND tbl_lehreinheit.studiensemester_kurzbz IN (".$this->db_implode4SQL($studiensemester_kurzbz).") + )"; + + $lehrveranstaltungen = []; + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $lehrveranstaltungen[] = $row; + } + return $lehrveranstaltungen; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> diff --git a/include/prestudent.class.php b/include/prestudent.class.php index d357a323e..3bd7cd733 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -588,7 +588,7 @@ class prestudent extends person AND status_kurzbz = 'Interessent' - AND + AND NOT EXISTS ( SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND status_kurzbz='Abgewiesener' )"; @@ -2327,51 +2327,51 @@ class prestudent extends person * false wenn nicht vorhanden * false und errormsg wenn Fehler aufgetreten ist */ - public function existsZGVIntern($person_id) - { - if (!is_numeric($person_id)) - { - $this->errormsg = 'Person_id muss eine gueltige Zahl sein'; - return false; - } + public function existsZGVIntern($person_id) + { + if (!is_numeric($person_id)) + { + $this->errormsg = 'Person_id muss eine gueltige Zahl sein'; + return false; + } + $qry = "SELECT count(*) as anzahl FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_studiengang USING (studiengang_kz) + WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)." + AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student') + AND typ = 'b' + AND get_rolle_prestudent(prestudent_id, null) != 'Abbrecher';"; - $qry = "SELECT count(*) as anzahl FROM public.tbl_prestudent - JOIN public.tbl_prestudentstatus USING (prestudent_id) - JOIN public.tbl_studiengang USING (studiengang_kz) - WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)." - AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student') - AND typ in ('b','m','d')"; + if ($this->db_query($qry)) + { + if ($row = $this->db_fetch_object()) + { + if ($row->anzahl > 0) + { + $this->errormsg = ''; + return true; + } + else + { + $this->errormsg = ''; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } - if ($this->db_query($qry)) - { - if ($row = $this->db_fetch_object()) - { - if ($row->anzahl > 0) - { - $this->errormsg = ''; - return true; - } - else - { - $this->errormsg = ''; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - /** * Befüllt MasterZGV-Felder: Nation mit Österreich und MasterZGV-code mit FH-Bachelor(I) * @param int $person_id Personenkennzeichen. diff --git a/include/statistik.class.php b/include/statistik.class.php index 15624de26..e2b5e1a7a 100644 --- a/include/statistik.class.php +++ b/include/statistik.class.php @@ -525,7 +525,7 @@ class statistik extends basis_db foreach($_REQUEST as $name=>$value) { // Inputs, die in eckigen Klammern stehen, werden als Array interpretiert - if (substr($value, 0, 1) == '[' && substr($value, -1) == ']') + if (is_string($value) && substr($value, 0, 1) == '[' && substr($value, -1) == ']') { //Eckige Klammern entfernen und String aufsplitten $value = substr($value, 1); diff --git a/rdf/zgv.rdf.php b/rdf/zgv.rdf.php index a3ce1225d..ce09c6c68 100644 --- a/rdf/zgv.rdf.php +++ b/rdf/zgv.rdf.php @@ -58,7 +58,7 @@ if(isset($_GET['optional']) && $_GET['optional']=='true') '; } -$qry = 'SELECT * FROM bis.tbl_zgv ORDER BY zgv_kurzbz'; +$qry = 'SELECT * FROM bis.tbl_zgv ORDER BY zgv_bez'; $db = new basis_db(); if($db->db_query($qry)) diff --git a/rdf/zgvdoktor.rdf.php b/rdf/zgvdoktor.rdf.php index 38dcec500..4201e8562 100644 --- a/rdf/zgvdoktor.rdf.php +++ b/rdf/zgvdoktor.rdf.php @@ -57,7 +57,7 @@ if(isset($_GET['optional']) && $_GET['optional']=='true') '; } -$qry = 'SELECT * FROM bis.tbl_zgvdoktor ORDER BY zgvdoktor_code'; +$qry = 'SELECT * FROM bis.tbl_zgvdoktor ORDER BY zgvdoktor_bez'; $db = new basis_db(); if($db->db_query($qry)) diff --git a/rdf/zgvmaster.rdf.php b/rdf/zgvmaster.rdf.php index b84af2c71..f8b643ee0 100644 --- a/rdf/zgvmaster.rdf.php +++ b/rdf/zgvmaster.rdf.php @@ -57,7 +57,7 @@ if(isset($_GET['optional']) && $_GET['optional']=='true') '; } -$qry = 'SELECT * FROM bis.tbl_zgvmaster ORDER BY zgvmas_code'; +$qry = 'SELECT * FROM bis.tbl_zgvmaster ORDER BY zgvmas_bez'; $db = new basis_db(); if($db->db_query($qry)) diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index d085a4ed9..701218569 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -271,7 +271,8 @@ if (CAMPUS_NAME == 'FH Technikum Wien' && $stg_kz==10006) DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat, public.tbl_prestudent.foerderrelevant as pre_foerderrelevant, - public.tbl_studiengang.foerderrelevant as stg_foerderrelevant + public.tbl_studiengang.foerderrelevant as stg_foerderrelevant, + COALESCE(tbl_prestudent.standort_code, tbl_studiengang.standort_code) AS bis_standort_code FROM public.tbl_student JOIN public.tbl_benutzer ON(student_uid=uid) @@ -295,7 +296,8 @@ elseif ($stg_kz == 'alleBaMa') DISTINCT ON(tbl_student.studiengang_kz, matrikelnr, nachname, vorname) *, public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat, public.tbl_prestudent.foerderrelevant as pre_foerderrelevant, - public.tbl_studiengang.foerderrelevant as stg_foerderrelevant + public.tbl_studiengang.foerderrelevant as stg_foerderrelevant, + COALESCE(tbl_prestudent.standort_code, tbl_studiengang.standort_code) AS bis_standort_code FROM public.tbl_student JOIN public.tbl_benutzer ON(student_uid=uid) @@ -327,7 +329,8 @@ else DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat, public.tbl_prestudent.foerderrelevant as pre_foerderrelevant, - public.tbl_studiengang.foerderrelevant as stg_foerderrelevant + public.tbl_studiengang.foerderrelevant as stg_foerderrelevant, + COALESCE(tbl_prestudent.standort_code, tbl_studiengang.standort_code) AS bis_standort_code FROM public.tbl_student JOIN public.tbl_benutzer ON(student_uid=uid) @@ -397,23 +400,48 @@ if($result = $db->db_query($qry)) else die('Fehler:'.$stg_obj->errormsg); - // Header am Beginn rausschreiben + // Erstes Studiengang Tag am Beginn rausschreiben if ($stg_kz_index == '') { $header = " ".$erhalter." ".date("dmY", $datumobj->mktime_fromdate($bisdatum))." - "; - + + + ".$row->studiengang_kz.""; $datei .= $header; $dateiNurBewerber .= $header; } } - //Bewerberblock bei neuem Studiengang, und am Ende noch einmal - if (($stg_kz_index != '' && $row->studiengang_kz != $stg_kz_index) || $row_num == $num_rows) + // Student Daten schreiben + $datei .= GenerateXMLStudentBlock($row); + + // wenn neuer Studiengang oder letzter Durchlauf... + if (($row_num > 1 && $row->studiengang_kz != $stg_kz_index) || $row_num == $num_rows) { + // ...Studiengang Tag schliessen + $stgClose = " + "; + $datei .= $stgClose; + $dateiNurBewerber .= $stgClose; + } + + // wenn neuer Studiengang... + if ($row->studiengang_kz != $stg_kz_index) + { + if ($row_num > 1) + { + // ...neuen Studiengang Tag öffnen + $stgOpen = " + + ".$row->studiengang_kz.""; + $datei .= $stgOpen; + $dateiNurBewerber .= $stgOpen; + } + + //Bewerberblock // (bei Ausserordentlichen nicht anzeigen) if($row->studiengang_kz!=('9'.$erhalter)) { @@ -426,40 +454,16 @@ if($result = $db->db_query($qry)) foreach($orgcodes as $code) { $bewerberBlock=GenerateXMLBewerberBlock($row->studiengang_kz, $code); - $datei.=$bewerberBlock; $dateiNurBewerber.=$bewerberBlock; } } else { $bewerberBlock=GenerateXMLBewerberBlock($row->studiengang_kz); - $datei.=$bewerberBlock; $dateiNurBewerber.=$bewerberBlock; } } - } - - // wenn neuer Studiengang... - if ($row->studiengang_kz != $stg_kz_index) - { - // ...Studiengang Tag schliessen - if ($stg_kz_index != '') - { - $stgClose = " - "; - $datei .= $stgClose; - $dateiNurBewerber .= $stgClose; - } - - // ...neuen Studiengang Tag öffnen - $stgOpen = " - - ".$row->studiengang_kz.""; - $datei .= $stgOpen; - $dateiNurBewerber .= $stgOpen; - } - // Student Daten schreiben - $datei .= GenerateXMLStudentBlock($row); + }; // Studiengang kz speichern und Zeile erhöhen $stg_kz_index = $row->studiengang_kz; @@ -468,7 +472,6 @@ if($result = $db->db_query($qry)) } $footer=" - "; @@ -744,7 +747,7 @@ if(file_exists($ddd)) } if(file_exists($dddNurBew)) - echo 'XML-Datei für BIS-Meldung Stg '.$stg_kz.' - nur Bewerberdaten
'; + echo 'XML-Datei für BIS-Meldung Stg '.$stg_kz.' - Bewerberdaten
'; if(file_exists($eee)) { @@ -1611,7 +1614,7 @@ function GenerateXMLStudentBlock($row) if($studtyp!='E') { $datei.=" - ".$status.""; + ".$status.""; } // IO container query @@ -1637,7 +1640,7 @@ function GenerateXMLStudentBlock($row) if(!$ausserordentlich) { $datei.=" - ".$row->standort_code.""; + ".$row->bis_standort_code.""; } /* * BMWFFoerderrung derzeit fuer alle Studierende auf Ja gesetzt @@ -2038,7 +2041,7 @@ function GenerateXMLBewerberBlock($studiengang_kz, $orgformcode=null) ".$orgform_code_array[$bworgform].""; if($stgart==2) $datei.=' - '.$key.''; + '.$key.''; else $datei.=' '.$key.'';