diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 824c0ba3c..fcf3dd811 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -2204,7 +2204,7 @@ function getDataForProjectOverviewCSV($user) { if (true) { - $titel = $prjp->projekt_kurzbz; + $titel = $prjp->projekttitel; $projekt_kurzbz = $prjp->projekt_kurzbz; $projekt_phase = $prjp->bezeichnung; $projekt_phase_id = $prjp->projektphase_id; diff --git a/cis/private/tools/zeitaufzeichnung_projektliste.php b/cis/private/tools/zeitaufzeichnung_projektliste.php index 4621c4a66..177f1f8aa 100644 --- a/cis/private/tools/zeitaufzeichnung_projektliste.php +++ b/cis/private/tools/zeitaufzeichnung_projektliste.php @@ -559,9 +559,11 @@ $totalworktimewidth = 13; $worktimewidth = 14; $timecolumnswidth = 2 * $daywidth + $totalworktimewidth + $worktimewidth; -if ($nrProjects < 1)//no projekts - merge all cells and write notice +if ($nrProjects < 1) //no projekts - write notice { - $projektnames[] = "Keine Projekte vorhanden"; + $worksheet =& $workbook->addWorksheet('Tabelle'); + $worksheet->setInputEncoding('utf-8'); + $worksheet->write(0,0,'Für diesen Zeitraum sind keine Projekte zugeordnet'); } foreach ($projektnames as $projektname) diff --git a/cis/testtool/admin/auswertung_detail.php b/cis/testtool/admin/auswertung_detail.php index 05a6143ee..775234670 100644 --- a/cis/testtool/admin/auswertung_detail.php +++ b/cis/testtool/admin/auswertung_detail.php @@ -104,9 +104,11 @@ if(isset($_GET['show'])) SELECT distinct on(tbl_frage.frage_id) *, tbl_gebiet.kurzbz as gebiet FROM - testtool.tbl_frage - JOIN testtool.tbl_ablauf USING(gebiet_id) - JOIN testtool.tbl_frage_sprache USING(frage_id) + testtool.tbl_frage "; + if($stg_kz!='') + $qry.=" JOIN testtool.tbl_ablauf USING(gebiet_id) "; + + $qry.=" JOIN testtool.tbl_frage_sprache USING(frage_id) JOIN testtool.tbl_gebiet USING(gebiet_id) WHERE demo=false"; diff --git a/cis/testtool/login.php b/cis/testtool/login.php index b7cbc02b5..a738c0a88 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -1,734 +1,736 @@ -, - * Andreas Oesterreicher , - * Rudolf Hangl , - * Manfred Kindl - * Cristina Hainberger - */ - -require_once('../../config/cis.config.inc.php'); -require_once('../../config/global.config.inc.php'); -require_once('../../include/person.class.php'); -require_once('../../include/prestudent.class.php'); -require_once('../../include/pruefling.class.php'); -require_once('../../include/studiengang.class.php'); -require_once('../../include/studienplan.class.php'); -require_once('../../include/ablauf.class.php'); -require_once('../../include/reihungstest.class.php'); -require_once('../../include/sprache.class.php'); -require_once '../../include/phrasen.class.php'; -require_once '../../include/datum.class.php'; - -if (!$db = new basis_db()) - die('Fehler beim Oeffnen der Datenbankverbindung'); - -// Start session -session_start(); - -// Logout (triggered by logout button in menu.php) -if (isset($_GET['logout']) && $_GET['logout'] == true) -{ - // Unset global vars - unset($_GET['logout']); - unset($_GET['sprache_user']); - $_POST = []; - $_SESSION = []; - - // Destroy session - session_destroy(); - - echo ' - - '; -} - -$gebdatum=''; -$date = new datum(); - -$reload_menu=false; -$alertmsg = ''; - -$sg_var = new studiengang(); - -if (isset($_POST['gebdatum']) && $_POST['gebdatum']!='') -{ - $gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d'); -} -else - $gebdatum=''; - -if (isset($_REQUEST['prestudent'])) -{ - $ps = new prestudent($_REQUEST['prestudent']); - - $login_ok = false; - if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL && isset($_GET['confirmation'])) - { - if (isset($_SESSION['bewerbung/personId']) && $ps->person_id == $_SESSION['bewerbung/personId']) - { - $login_ok = true; - } - else - { - $alertmsg .= '
Login ist nicht korrekt. - Bitte schließen Sie ihren Browser und versuchen es erneut -
'; - } - } - elseif(!defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') || TESTTOOL_LOGIN_BEWERBUNGSTOOL == false) - { - //Geburtsdatum Pruefen - if (isset($gebdatum) && $gebdatum == $ps->gebdatum) - { - $login_ok = true; - } - else - { - $alertmsg .= '
'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'
'; - } - } - - if ($login_ok) - { - $reihungstest_id=''; - //Freischaltung fuer zugeteilten Reihungstest pruefen - $rt = new reihungstest(); - - // Wenns der Dummy ist dann extra laden - // An der FHTW gibt es 3 Testuser für den Camus International - $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); - if ($prestudent_id_dummy_student==$ps->prestudent_id || - (CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30891) || - (CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30890) || - (CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30889)) - { - $rt->getReihungstestPerson($ps->person_id); - if (isset($rt->result[0])) - $reihungstest_id = $rt->result[0]->reihungstest_id; - else - { - $alertmsg .= '
'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'
'; - } - } - else - { - if ($rt->getReihungstestPersonDatum($ps->prestudent_id, date('Y-m-d'))) - { - // TODO Was ist wenn da mehrere Zurueckkommen?! - if (isset($rt->result[0])) - $reihungstest_id = $rt->result[0]->reihungstest_id; - else - { - $alertmsg .= '
'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'
'; - } - } - else - { - echo 'Failed:'.$rt->errormsg; - } - } - if ($reihungstest_id != '' && $rt->load($reihungstest_id)) - { - if ($rt->freigeschaltet) - { - // regenerate Session ID after Login - session_regenerate_id(); - - $pruefling = new pruefling(); - if ($pruefling->getPruefling($ps->prestudent_id)) - { - $studiengang = $pruefling->studiengang_kz; - $semester = $pruefling->semester; - } - else - { - $studiengang = $ps->studiengang_kz; - $ps->getLastStatus($ps->prestudent_id); - $semester = $ps->ausbildungssemester; - } - if ($semester=='') - $semester=1; - - $_SESSION['prestudent_id']=$_REQUEST['prestudent']; - $_SESSION['studiengang_kz']=$studiengang; - $_SESSION['nachname']=$ps->nachname; - $_SESSION['vorname']=$ps->vorname; - $_SESSION['gebdatum']=$ps->gebdatum; - $stg_obj = new studiengang($studiengang); - - $_SESSION['semester']=$semester; - $_SESSION['reihungstestID'] = $reihungstest_id; - $stg_obj->getStudiengangTyp($stg_obj->typ); - - // STG und Studienplan mit der höchsten Prio ermitteln - $firstPrio_studienplan_id = ''; - $firstPrio_studiengang_kz = ''; - - // * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller - // Bachelor-STG ermitteln, an denen die Person noch interessiert ist - // Wenn STG vom Typ Master, dann wird als firstPrio der STPL bzw. der STG des MasterSTG gesetzt. - if ($stg_obj->typ == 'b') - { - $ps->getActualInteressenten($_REQUEST['prestudent'], true); - } - elseif ($stg_obj->typ == 'm') - { - $ps->getActualInteressenten($_REQUEST['prestudent'], false, 'm', $studiengang); - } - - foreach($ps->result as $row) - { - if (isset($row->studiengang_kz)) - { - $firstPrio_studienplan_id = $row->studienplan_id; - break; - } - } - foreach($ps->result as $row) - { - if (isset($row->studiengang_kz)) - { - $firstPrio_studiengang_kz = $row->studiengang_kz; - break; - } - } - // Sprachvorgaben zu STG mit höchster Prio ermitteln - - // * 1. Sprache über Ablauf Vorgaben ermitteln - $ablauf = new Ablauf(); - $ablauf->getAblaufGebiete($firstPrio_studiengang_kz, $firstPrio_studienplan_id); - $rt_sprache = ''; - - if (empty($ablauf->result[0])) - { - $ablauf->getAblaufGebiete($firstPrio_studiengang_kz); - } - - if (!empty($ablauf->result[0])) - { - $rt_sprache = $ablauf->result[0]->sprache; - } - - // * 2. falls keine Sprache vorhanden -> Sprache über Studienplan ermitteln - if (empty($rt_sprache)) - { - $stpl = new Studienplan(); - $stpl->loadStudienplan($firstPrio_studienplan_id); - $rt_sprache = $stpl->sprache; - } - - // * 3. falls keine Sprache vorhanden -> Sprache über Studiengang ermitteln - if (empty($rt_sprache)) - { - $stg = new Studiengang($firstPrio_studiengang_kz); - $rt_sprache = $stg->sprache; - } - - // * 4. Sprache setzen. Falls keine Sprache vorhanden -> DEFAULT language verwenden - if (empty($rt_sprache)) - { - $_SESSION['sprache_user'] = DEFAULT_LANGUAGE; - } - else - { - $_SESSION['sprache_user'] = $rt_sprache; - } - } - else - { - $alertmsg .= '
'.$p->t('testtool/reihungstestNichtFreigeschalten').'
'; - } - } - else - { - $alertmsg .= '
'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'
'; - } - } -} - -// Set language of user. -// NOTE: don't move the code in order to check first the right studies' reihungstest language -// (in case it was overruled by other STG with higher priority) - -// Start with default language on first login (before any prestudent has been selected) -$sprache_user = DEFAULT_LANGUAGE; -if (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) -{ - // If session var already exists, overwrite language var - // (session var changes e.g. when user selects other language with language-select-menu) - $sprache_user = $_SESSION['sprache_user']; -} -elseif (isset($_SESSION['prestudent_id'])) -{ - // If session var does not exist but prestudent is known, set the session var - $_SESSION['sprache_user'] = DEFAULT_LANGUAGE; -} - -// If language is changed by language select menu, reset language variables -if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user'])) -{ - $sprache_user = $_GET['sprache_user']; - $_SESSION['sprache_user'] = $_GET['sprache_user']; -} - -// NOTE: leave phrasen here, as the final users language is not defined until here -$p = new phrasen($sprache_user); - -if (isset($_SESSION['prestudent_id'])) -{ - $prestudent_id=$_SESSION['prestudent_id']; -} -else -{ - //$prestudent_id=null; - $ps=new prestudent(); - $datum=date('Y-m-d'); - // An der FHTW wird ein Bewerber nur einmal ausgegeben (1. Prio) falls es mehrere Bewerbungen gibt - /*if (CAMPUS_NAME == 'FH Technikum Wien') - { - $ps->getFirstPrioPrestudentRT($datum); - } - else*/ - { - $ps->getPrestudentRT($datum); - } -} - - -if (isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) -{ - $pruefling = new pruefling(); - - //wenn kein Prüfling geladen werden kann - if (!$pruefling->getPruefling($_SESSION['prestudent_id'])) - $pruefling->new = true; - else - $pruefling->new = false; - - $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; - $pruefling->semester = $_SESSION['semester']; - - $pruefling->idnachweis = ''; - $pruefling->registriert = date('Y-m-d H:i:s'); - $pruefling->prestudent_id = $_SESSION['prestudent_id']; - if ($pruefling->save()) - { - $_SESSION['pruefling_id']=$pruefling->pruefling_id; - $reload_menu=true; - } -} - -if (isset($_POST['save']) && isset($_SESSION['prestudent_id'])) -{ - $pruefling = new pruefling(); - if ($_POST['pruefling_id']!='') - if (!$pruefling->load($_POST['pruefling_id'])) - die('Pruefling wurde nicht gefunden'); - else - $pruefling->new=false; - else - $pruefling->new=true; - - $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; - $pruefling->idnachweis = isset($_POST['idnachweis'])?$_POST['idnachweis']:''; - $pruefling->registriert = date('Y-m-d H:i:s'); - $pruefling->prestudent_id = $_SESSION['prestudent_id']; - $pruefling->semester = $_POST['semester']; - if ($pruefling->save()) - { - $_SESSION['pruefling_id']=$pruefling->pruefling_id; - $_SESSION['semester']=$pruefling->semester; - $reload_menu=true; - } -} -?> - - - - - - - - - - - -parent.menu.location.reload();'; -?> - - - -
- -studiengang_kz); - $pruefling = new pruefling(); - $typ = new studiengang($prestudent->studiengang_kz); - $typ->getStudiengangTyp($stg_obj->typ); - - // STG mit der höchsten Prio ermitteln - $ps = new Prestudent(); - - // * prinzipiell STG der session übernehmem - $firstPrio_studiengang_kz = $prestudent->studiengang_kz; - - // * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller - // Bachelor-STG ermitteln, an denen die Person noch interessiert ist - if ($typ->typ == 'b') - { - $ps->getActualInteressenten($prestudent_id, true, 'b'); - foreach($ps->result as $row_prio) - { - if (isset($row_prio->studiengang_kz)) - { - $firstPrio_studiengang_kz = $row_prio->studiengang_kz; - $firstPrio_studienplan_id = $row_prio->studienplan_id; - break; - } - } - } - - // Sprachwahl zu STG mit höchster Prio ermitteln - $ablauf = new Ablauf(); - $sprachwahl = false; - - $ablauf->getAblaufGebiete($firstPrio_studiengang_kz, $firstPrio_studienplan_id); - - if (empty($ablauf->result[0])) - { - $ablauf->getAblaufGebiete($firstPrio_studiengang_kz); - } - - if (isset($ablauf->result[0]) - && is_bool($ablauf->result[0]->sprachwahl)) - { - $sprachwahl = $ablauf->result[0]->sprachwahl; - } - - // If language can be switched, display language select menu on the top - if ($sprachwahl) - { - $_SESSION['sprache_auswahl'] = true; - ?> - - '; - echo ' -

'. $p->t('testtool/begruessungstext'). '


-

'. $p->t('testtool/anmeldedaten'). '


- '; - - echo ' - - - - - - - - - - - - - -
'.$p->t('zeitaufzeichnung/id').''.$_SESSION['prestudent_id'].'
'.$p->t('global/name').''.$_SESSION['vorname'].' '.$_SESSION['nachname'].'
'.$p->t('global/geburtsdatum').''.$date->formatDatum($_SESSION["gebdatum"],"d.m.Y").'
- '; - echo '
'; - echo ' -

'. $p->t('testtool/fuerFolgendeStgAngemeldet'). '


- - - - - - - - - - '; - - // * wenn Prestudent an 1 - n Bachelor-Studiengängen interessiert ist, dann STG anführen - if ($typ->typ == 'b') - { - $ps_arr = new Prestudent(); - $ps_arr->getActualInteressenten($prestudent_id, false, 'b'); - - if (count($ps_arr->result) > 0) - { - // Jeweils letzten Status ermitteln (ob Interessent oder Abgewiesener) - foreach ($ps_arr->result as $ps_obj) - { - $ps_tmp = new Prestudent(); - $ps_tmp->getLastStatus($ps_obj->prestudent_id); - - $ps_obj->lastStatus = $ps_tmp->status_kurzbz; // letzten Status dem result array hinzufügen - $ps_obj->status_mehrsprachig = $ps_tmp->status_mehrsprachig; - } - - // Falls Status 'Abgewiesene' vorhanden, nach hinten reihen - usort($ps_arr->result, function($a, $b){ - return strcmp($b->lastStatus, $a->lastStatus); // Order by DESC - }); - foreach ($ps_arr->result as $ps_obj) - { - echo ''; - $stg = new Studiengang($ps_obj->studiengang_kz); - - if ($ps_obj->lastStatus == "Interessent" - || $ps_obj->lastStatus == "Bewerber" - || $ps_obj->lastStatus == "Wartender" - || $ps_obj->lastStatus == "Aufgenommener") - { - echo ''; - if ($ps_obj->ausbildungssemester == '1') - { - echo ''; - } - elseif ($ps_obj->ausbildungssemester == '3') - { - echo ''; - } - } - // wenn letzter Status \'Abgewiesener\' ist, dann als solchen kennzeichnen - elseif ($ps_obj->lastStatus == "Abgewiesener") - { - echo ' - - - '; - } - echo ''; - } - } - } - // * wenn Prestudent an einem Master-Studiengang interessiert ist, dann nur den einen STG anführen - else - { - // Letzten Status für des Prestudenten einholen - $ps_master = new Prestudent(); - $ps_master->getLastStatus($prestudent_id); - echo ''; - echo ''; - } - - echo ' - -
'. $p->t('global/studiengang'). 'Status
'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). ' ('.$ps_obj->orgform_bezeichnung[$sprache_user].')'. $p->t('testtool/regulaererEinstieg'). ' (1. Semester)'. $p->t('testtool/quereinstieg'). ' (3. Semester)'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). ''. $ps_obj->status_mehrsprachig[$sprache_user]. '
'. $typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).''. $ps_master->status_mehrsprachig[$sprache_user]. '
- '; - - echo '
'; - - if ($pruefling->getPruefling($prestudent_id)) - { - echo '
'; - echo ''; - echo ''; - //echo ''; - //echo ''; - //echo ''; - echo '
'.$p->t('global/semester').': 
ID Nachweis:
'; - echo '
'; - echo '

'; - echo ' -
- '.$p->t('testtool/klickenSieAufEinTeilgebiet').' -
- '; - if ($pruefling->pruefling_id!='') - { - $_SESSION['pruefling_id']=$pruefling->pruefling_id; - } - } - else - { - echo ''.$p->t('testtool/keinPrueflingseintragVorhanden').''; - } - echo '
'; -} -else // LOGIN Site (vor Login) -{ - if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL) - { - echo '
'; - echo '
'.$alertmsg.'
'; - echo $p->t('testtool/einfuehrungsText'); - - if (isset($_SESSION['bewerbung/personId'])) - { - echo ''; - echo '
- '.$p->t('testtool/loginNoetig').'

-
- - - '.$p->t('testtool/confirmationText').' -

- -
'; - } - else - { - echo '
- '.$p->t('testtool/loginNoetig').'

-
- -
'; - } - echo ' -
'; - echo '
'; - } - else - { - $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); - echo '
'; - - // Welcome text - echo '
'.$alertmsg.'
'; - echo ' -
-
-

Herzlich Willkommen zum Reihungstest



- Bitte warten Sie mit dem Login auf die Anweisung der Aufsichtsperson.

- Wir wünschen Ihnen einen erfolgreichen Start ins Studium. -
-
-

Welcome to the placement test



- Please wait for the tutor\'s instructions before you log in.

- We wish you a good start to your studies. -
-
- '; - - // Begin form - echo '
'; - echo '
'; - - // Name select menu - echo '
'; - echo ''; - echo '
'; - echo ''; - echo '
'; // end col-xs - echo '
'; // end form-group - - // Datepicker input - echo '
'; - echo ''; - echo '
'; - echo ''; - echo '
'; // end col-xs - echo '
'; // end form-group - - // Login button - echo ''; - - echo '
'; // end form - - echo '
'; // end row - echo '
'; // end col-xs-11 - } -} - -?> -
- - +, + * Andreas Oesterreicher , + * Rudolf Hangl , + * Manfred Kindl + * Cristina Hainberger + */ + +require_once('../../config/cis.config.inc.php'); +require_once('../../config/global.config.inc.php'); +require_once('../../include/person.class.php'); +require_once('../../include/prestudent.class.php'); +require_once('../../include/pruefling.class.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/studienplan.class.php'); +require_once('../../include/ablauf.class.php'); +require_once('../../include/reihungstest.class.php'); +require_once('../../include/sprache.class.php'); +require_once '../../include/phrasen.class.php'; +require_once '../../include/datum.class.php'; + +if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); + +// Start session +session_start(); + +// Logout (triggered by logout button in menu.php) +if (isset($_GET['logout']) && $_GET['logout'] == true) +{ + // Unset global vars + unset($_GET['logout']); + unset($_GET['sprache_user']); + $_POST = []; + $_SESSION = []; + + // Destroy session + session_destroy(); + + echo ' + + '; +} + +$gebdatum=''; +$date = new datum(); + +$reload_menu=false; +$alertmsg = ''; + +$sg_var = new studiengang(); + +if (isset($_POST['gebdatum']) && $_POST['gebdatum']!='') +{ + $gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d'); +} +else + $gebdatum=''; + +if (isset($_REQUEST['prestudent'])) +{ + $ps = new prestudent($_REQUEST['prestudent']); + + $login_ok = false; + if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL && isset($_GET['confirmation'])) + { + if (isset($_SESSION['bewerbung/personId']) && $ps->person_id == $_SESSION['bewerbung/personId']) + { + $login_ok = true; + } + else + { + $alertmsg .= '
Login ist nicht korrekt. + Bitte schließen Sie ihren Browser und versuchen es erneut +
'; + } + } + elseif(!defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') || TESTTOOL_LOGIN_BEWERBUNGSTOOL == false) + { + //Geburtsdatum Pruefen + if (isset($gebdatum) && $gebdatum == $ps->gebdatum) + { + $login_ok = true; + } + else + { + $alertmsg .= '
'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'
'; + } + } + + if ($login_ok) + { + $reihungstest_id=''; + //Freischaltung fuer zugeteilten Reihungstest pruefen + $rt = new reihungstest(); + + // Wenns der Dummy ist dann extra laden + // An der FHTW gibt es 3 Testuser für den Camus International + $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); + if ($prestudent_id_dummy_student==$ps->prestudent_id || + (CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30891) || + (CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30890) || + (CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30889)) + { + $rt->getReihungstestPerson($ps->person_id); + if (isset($rt->result[0])) + $reihungstest_id = $rt->result[0]->reihungstest_id; + else + { + $alertmsg .= '
'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'
'; + } + } + else + { + if ($rt->getReihungstestPersonDatum($ps->prestudent_id, date('Y-m-d'))) + { + // TODO Was ist wenn da mehrere Zurueckkommen?! + if (isset($rt->result[0])) + $reihungstest_id = $rt->result[0]->reihungstest_id; + else + { + $alertmsg .= '
'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'
'; + } + } + else + { + echo 'Failed:'.$rt->errormsg; + } + } + if ($reihungstest_id != '' && $rt->load($reihungstest_id)) + { + if ($rt->freigeschaltet) + { + // regenerate Session ID after Login + session_regenerate_id(); + + $pruefling = new pruefling(); + if ($pruefling->getPruefling($ps->prestudent_id)) + { + $studiengang = $pruefling->studiengang_kz; + $semester = $pruefling->semester; + } + else + { + $studiengang = $ps->studiengang_kz; + $ps->getLastStatus($ps->prestudent_id); + $semester = $ps->ausbildungssemester; + } + if ($semester=='') + $semester=1; + + $_SESSION['prestudent_id']=$_REQUEST['prestudent']; + $_SESSION['studiengang_kz']=$studiengang; + $_SESSION['nachname']=$ps->nachname; + $_SESSION['vorname']=$ps->vorname; + $_SESSION['gebdatum']=$ps->gebdatum; + $stg_obj = new studiengang($studiengang); + + $_SESSION['semester']=$semester; + $_SESSION['reihungstestID'] = $reihungstest_id; + $stg_obj->getStudiengangTyp($stg_obj->typ); + + // STG und Studienplan mit der höchsten Prio ermitteln + $firstPrio_studienplan_id = ''; + $firstPrio_studiengang_kz = ''; + + // * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller + // Bachelor-STG ermitteln, an denen die Person noch interessiert ist + // Wenn STG vom Typ Master, dann wird als firstPrio der STPL bzw. der STG des MasterSTG gesetzt. + if ($stg_obj->typ == 'b') + { + $ps->getActualInteressenten($_REQUEST['prestudent'], true); + } + elseif ($stg_obj->typ == 'm') + { + $ps->getActualInteressenten($_REQUEST['prestudent'], false, 'm', $studiengang); + } + + foreach($ps->result as $row) + { + if (isset($row->studiengang_kz)) + { + $firstPrio_studienplan_id = $row->studienplan_id; + break; + } + } + foreach($ps->result as $row) + { + if (isset($row->studiengang_kz)) + { + $firstPrio_studiengang_kz = $row->studiengang_kz; + break; + } + } + // Sprachvorgaben zu STG mit höchster Prio ermitteln + + // * 1. Sprache über Ablauf Vorgaben ermitteln + $ablauf = new Ablauf(); + $ablauf->getAblaufGebiete($firstPrio_studiengang_kz, $firstPrio_studienplan_id); + $rt_sprache = ''; + + if (empty($ablauf->result[0])) + { + $ablauf->getAblaufGebiete($firstPrio_studiengang_kz); + } + + if (!empty($ablauf->result[0])) + { + $rt_sprache = $ablauf->result[0]->sprache; + } + + // * 2. falls keine Sprache vorhanden -> Sprache über Studienplan ermitteln + if (empty($rt_sprache)) + { + $stpl = new Studienplan(); + $stpl->loadStudienplan($firstPrio_studienplan_id); + $rt_sprache = $stpl->sprache; + } + + // * 3. falls keine Sprache vorhanden -> Sprache über Studiengang ermitteln + if (empty($rt_sprache)) + { + $stg = new Studiengang($firstPrio_studiengang_kz); + $rt_sprache = $stg->sprache; + } + + // * 4. Sprache setzen. Falls keine Sprache vorhanden -> DEFAULT language verwenden + if (empty($rt_sprache)) + { + $_SESSION['sprache_user'] = DEFAULT_LANGUAGE; + } + else + { + $_SESSION['sprache_user'] = $rt_sprache; + } + } + else + { + $alertmsg .= '
'.$p->t('testtool/reihungstestNichtFreigeschalten').'
'; + } + } + else + { + $alertmsg .= '
'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'
'; + } + } +} + +// Set language of user. +// NOTE: don't move the code in order to check first the right studies' reihungstest language +// (in case it was overruled by other STG with higher priority) + +// Start with default language on first login (before any prestudent has been selected) +$sprache_user = DEFAULT_LANGUAGE; +if (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) +{ + // If session var already exists, overwrite language var + // (session var changes e.g. when user selects other language with language-select-menu) + $sprache_user = $_SESSION['sprache_user']; +} +elseif (isset($_SESSION['prestudent_id'])) +{ + // If session var does not exist but prestudent is known, set the session var + $_SESSION['sprache_user'] = DEFAULT_LANGUAGE; +} + +// If language is changed by language select menu, reset language variables +if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user'])) +{ + $sprache_user = $_GET['sprache_user']; + $_SESSION['sprache_user'] = $_GET['sprache_user']; +} + +// NOTE: leave phrasen here, as the final users language is not defined until here +$p = new phrasen($sprache_user); + +if (isset($_SESSION['prestudent_id'])) +{ + $prestudent_id=$_SESSION['prestudent_id']; +} +else +{ + //$prestudent_id=null; + $ps=new prestudent(); + $datum=date('Y-m-d'); + // An der FHTW wird ein Bewerber nur einmal ausgegeben (1. Prio) falls es mehrere Bewerbungen gibt + /*if (CAMPUS_NAME == 'FH Technikum Wien') + { + $ps->getFirstPrioPrestudentRT($datum); + } + else*/ + { + $ps->getPrestudentRT($datum); + } +} + + +if (isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) +{ + $pruefling = new pruefling(); + + //wenn kein Prüfling geladen werden kann + if (!$pruefling->getPruefling($_SESSION['prestudent_id'])) + $pruefling->new = true; + else + $pruefling->new = false; + + $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; + $pruefling->semester = $_SESSION['semester']; + + $pruefling->idnachweis = ''; + $pruefling->registriert = date('Y-m-d H:i:s'); + $pruefling->prestudent_id = $_SESSION['prestudent_id']; + if ($pruefling->save()) + { + $_SESSION['pruefling_id']=$pruefling->pruefling_id; + $reload_menu=true; + } +} + +if (isset($_POST['save']) && isset($_SESSION['prestudent_id'])) +{ + $pruefling = new pruefling(); + if ($_POST['pruefling_id']!='') + if (!$pruefling->load($_POST['pruefling_id'])) + die('Pruefling wurde nicht gefunden'); + else + $pruefling->new=false; + else + $pruefling->new=true; + + $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; + $pruefling->idnachweis = isset($_POST['idnachweis'])?$_POST['idnachweis']:''; + $pruefling->registriert = date('Y-m-d H:i:s'); + $pruefling->prestudent_id = $_SESSION['prestudent_id']; + $pruefling->semester = $_POST['semester']; + if ($pruefling->save()) + { + $_SESSION['pruefling_id']=$pruefling->pruefling_id; + $_SESSION['semester']=$pruefling->semester; + $reload_menu=true; + } +} +?> + + + + + + + + + + + +parent.menu.location.reload();'; +?> + + + +
+ +studiengang_kz); + $pruefling = new pruefling(); + $typ = new studiengang($prestudent->studiengang_kz); + $typ->getStudiengangTyp($stg_obj->typ); + + // STG mit der höchsten Prio ermitteln + $ps = new Prestudent(); + + // * prinzipiell STG der session übernehmem + $firstPrio_studiengang_kz = $prestudent->studiengang_kz; + + // * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller + // Bachelor-STG ermitteln, an denen die Person noch interessiert ist + $firstPrio_studienplan_id = ''; + $firstPrio_studiengang_kz = ''; + if ($typ->typ == 'b') + { + $ps->getActualInteressenten($prestudent_id, true, 'b'); + foreach($ps->result as $row_prio) + { + if (isset($row_prio->studiengang_kz)) + { + $firstPrio_studiengang_kz = $row_prio->studiengang_kz; + $firstPrio_studienplan_id = $row_prio->studienplan_id; + break; + } + } + } + + // Sprachwahl zu STG mit höchster Prio ermitteln + $ablauf = new Ablauf(); + $sprachwahl = false; + + $ablauf->getAblaufGebiete($firstPrio_studiengang_kz, $firstPrio_studienplan_id); + + if (empty($ablauf->result[0])) + { + $ablauf->getAblaufGebiete($firstPrio_studiengang_kz); + } + + if (isset($ablauf->result[0]) + && is_bool($ablauf->result[0]->sprachwahl)) + { + $sprachwahl = $ablauf->result[0]->sprachwahl; + } + + // If language can be switched, display language select menu on the top + if ($sprachwahl) + { + $_SESSION['sprache_auswahl'] = true; + ?> + + '; + echo ' +

'. $p->t('testtool/begruessungstext'). '


+

'. $p->t('testtool/anmeldedaten'). '


+ '; + + echo ' + + + + + + + + + + + + + +
'.$p->t('zeitaufzeichnung/id').''.$_SESSION['prestudent_id'].'
'.$p->t('global/name').''.$_SESSION['vorname'].' '.$_SESSION['nachname'].'
'.$p->t('global/geburtsdatum').''.$date->formatDatum($_SESSION["gebdatum"],"d.m.Y").'
+ '; + echo '
'; + echo ' +

'. $p->t('testtool/fuerFolgendeStgAngemeldet'). '


+ + + + + + + + + + '; + + // * wenn Prestudent an 1 - n Bachelor-Studiengängen interessiert ist, dann STG anführen + if ($typ->typ == 'b') + { + $ps_arr = new Prestudent(); + $ps_arr->getActualInteressenten($prestudent_id, false, 'b'); + + if (count($ps_arr->result) > 0) + { + // Jeweils letzten Status ermitteln (ob Interessent oder Abgewiesener) + foreach ($ps_arr->result as $ps_obj) + { + $ps_tmp = new Prestudent(); + $ps_tmp->getLastStatus($ps_obj->prestudent_id); + + $ps_obj->lastStatus = $ps_tmp->status_kurzbz; // letzten Status dem result array hinzufügen + $ps_obj->status_mehrsprachig = $ps_tmp->status_mehrsprachig; + } + + // Falls Status 'Abgewiesene' vorhanden, nach hinten reihen + usort($ps_arr->result, function($a, $b){ + return strcmp($b->lastStatus, $a->lastStatus); // Order by DESC + }); + foreach ($ps_arr->result as $ps_obj) + { + echo ''; + $stg = new Studiengang($ps_obj->studiengang_kz); + + if ($ps_obj->lastStatus == "Interessent" + || $ps_obj->lastStatus == "Bewerber" + || $ps_obj->lastStatus == "Wartender" + || $ps_obj->lastStatus == "Aufgenommener") + { + echo ''; + if ($ps_obj->ausbildungssemester == '1') + { + echo ''; + } + elseif ($ps_obj->ausbildungssemester == '3') + { + echo ''; + } + } + // wenn letzter Status \'Abgewiesener\' ist, dann als solchen kennzeichnen + elseif ($ps_obj->lastStatus == "Abgewiesener") + { + echo ' + + + '; + } + echo ''; + } + } + } + // * wenn Prestudent an einem Master-Studiengang interessiert ist, dann nur den einen STG anführen + else + { + // Letzten Status für des Prestudenten einholen + $ps_master = new Prestudent(); + $ps_master->getLastStatus($prestudent_id); + echo ''; + echo ''; + } + + echo ' + +
'. $p->t('global/studiengang'). 'Status
'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). ' ('.$ps_obj->orgform_bezeichnung[$sprache_user].')'. $p->t('testtool/regulaererEinstieg'). ' (1. Semester)'. $p->t('testtool/quereinstieg'). ' (3. Semester)'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). ''. $ps_obj->status_mehrsprachig[$sprache_user]. '
'. $typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).''. $ps_master->status_mehrsprachig[$sprache_user]. '
+ '; + + echo '
'; + + if ($pruefling->getPruefling($prestudent_id)) + { + echo '
'; + echo ''; + echo ''; + //echo ''; + //echo ''; + //echo ''; + echo '
'.$p->t('global/semester').': 
ID Nachweis:
'; + echo '
'; + echo '

'; + echo ' +
+ '.$p->t('testtool/klickenSieAufEinTeilgebiet').' +
+ '; + if ($pruefling->pruefling_id!='') + { + $_SESSION['pruefling_id']=$pruefling->pruefling_id; + } + } + else + { + echo ''.$p->t('testtool/keinPrueflingseintragVorhanden').''; + } + echo '
'; +} +else // LOGIN Site (vor Login) +{ + if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL) + { + echo '
'; + echo '
'.$alertmsg.'
'; + echo $p->t('testtool/einfuehrungsText'); + + if (isset($_SESSION['bewerbung/personId'])) + { + echo ''; + echo '
+ '.$p->t('testtool/loginNoetig').'

+
+ + + '.$p->t('testtool/confirmationText').' +

+ +
'; + } + else + { + echo '
+ '.$p->t('testtool/loginNoetig').'

+
+ +
'; + } + echo ' +
'; + echo '
'; + } + else + { + $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); + echo '
'; + + // Welcome text + echo '
'.$alertmsg.'
'; + echo ' +
+
+

Herzlich Willkommen zum Reihungstest



+ Bitte warten Sie mit dem Login auf die Anweisung der Aufsichtsperson.

+ Wir wünschen Ihnen einen erfolgreichen Start ins Studium. +
+
+

Welcome to the placement test



+ Please wait for the tutor\'s instructions before you log in.

+ We wish you a good start to your studies. +
+
+ '; + + // Begin form + echo '
'; + echo '
'; + + // Name select menu + echo '
'; + echo ''; + echo '
'; + echo ''; + echo '
'; // end col-xs + echo '
'; // end form-group + + // Datepicker input + echo '
'; + echo ''; + echo '
'; + echo ''; + echo '
'; // end col-xs + echo '
'; // end form-group + + // Login button + echo ''; + + echo '
'; // end form + + echo '
'; // end row + echo '
'; // end col-xs-11 + } +} + +?> +
+ + diff --git a/content/statistik/lvplanung.xls.php b/content/statistik/lvplanung.xls.php index 6eec62f49..3b74992fa 100644 --- a/content/statistik/lvplanung.xls.php +++ b/content/statistik/lvplanung.xls.php @@ -73,8 +73,16 @@ $rechte->getBerechtigungen($user); if($studiengang_kz != '') { - if(!$rechte->isBerechtigt('assistenz', $studiengang_kz, 's')) - die($rechte->errormsg); + $studiengang_kz_arr = explode(',',$studiengang_kz); + foreach ($studiengang_kz_arr AS $kennzahl) + { + if (!is_numeric($kennzahl)) + { + die($kennzahl.' is not an iteger value'); + } + if(!$rechte->isBerechtigt('assistenz', $kennzahl, 's')) + die($rechte->errormsg); + } } elseif($oe_kurzbz!='') { @@ -162,7 +170,7 @@ JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id) WHERE tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); if($studiengang_kz!='') - $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + $qry.=" AND tbl_lehrveranstaltung.studiengang_kz IN (".$studiengang_kz.")"; if($oe_kurzbz!='') $qry.=" AND tbl_lehrveranstaltung.oe_kurzbz=".$db->db_add_param($oe_kurzbz); @@ -421,7 +429,7 @@ if($result = $db->db_query($qry)) $qry.=" AND tbl_lehrveranstaltung.oe_kurzbz=".$db->db_add_param($oe_kurzbz); if($studiengang_kz!='') - $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + $qry.=" AND tbl_lehrveranstaltung.studiengang_kz IN(".$studiengang_kz.")"; if($semester!='') $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); diff --git a/include/projektphase.class.php b/include/projektphase.class.php index 1b0818ca0..d029ba080 100644 --- a/include/projektphase.class.php +++ b/include/projektphase.class.php @@ -688,7 +688,7 @@ public function getFortschritt($projektphase_id) $qry = " SELECT - DISTINCT tbl_projektphase.* + DISTINCT tbl_projektphase.*,tbl_projekt.titel FROM fue.tbl_projektphase JOIN fue.tbl_projekt USING (projekt_kurzbz) @@ -718,6 +718,7 @@ public function getFortschritt($projektphase_id) $obj->bezeichnung = $row->bezeichnung; $obj->typ = $row->typ; $obj->beschreibung = $row->beschreibung; + $obj->projekttitel = $row->titel; $obj->start = $row->start; $obj->ende = $row->ende; $obj->personentage = $row->personentage; diff --git a/include/statistik.class.php b/include/statistik.class.php index 12ab530fb..7d34a04a0 100644 --- a/include/statistik.class.php +++ b/include/statistik.class.php @@ -510,6 +510,7 @@ class statistik extends basis_db $this->html=''; $this->csv=''; $this->json=array(); + set_time_limit(60); if($this->sql!='') { diff --git a/rdf/diplomasupplement.xml.php b/rdf/diplomasupplement.xml.php index 14352a3c3..d55187c6c 100644 --- a/rdf/diplomasupplement.xml.php +++ b/rdf/diplomasupplement.xml.php @@ -389,7 +389,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo "".$datum->convertISODate($row1->bis).""; echo "$row1->zweck"; echo "$row1->ort"; - echo "$row1->universitaet"; + echo "universitaet]]>"; echo ""; } echo ""; diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php index a3b0982f8..01cdddaa2 100644 --- a/soap/datenverbund_client.php +++ b/soap/datenverbund_client.php @@ -26,6 +26,8 @@ require_once('../include/basis_db.class.php'); require_once('../include/benutzerberechtigung.class.php'); require_once('../include/dvb.class.php'); require_once('../include/errorhandler.class.php'); +require_once('../include/person.class.php'); +require_once('../include/adresse.class.php'); $uid = get_uid(); $rechte = new benutzerberechtigung(); @@ -63,12 +65,80 @@ $ausstellbehoerde = filter_input(INPUT_POST, 'ausstellbehoerde'); $ausstellland = filter_input(INPUT_POST, 'ausstellland'); $dokumentnr = filter_input(INPUT_POST, 'dokumentnr'); +$getPersonData = filter_input(INPUT_POST, 'getPersonData', FILTER_VALIDATE_BOOLEAN); +$data_person_id = filter_input(INPUT_POST, 'data_person_id'); +if ($getPersonData) +{ + $person = new person($data_person_id); + $adresse = new adresse(); + $adresse->loadZustellAdresse($person->person_id); + $svnr = $person->svnr; + if ($svnr == '' && $person->ersatzkennzeichen != '') + { + $svnr = $person->ersatzkennzeichen; + } + + echo json_encode(array( + 'status'=>'ok', + 'matrikelnummer'=>$person->matr_nr, + 'nachname'=>$person->nachname, + 'vorname'=>$person->vorname, + 'geburtsdatum'=>str_replace('-','',$person->gebdatum), + 'geschlecht'=>strtoupper($person->geschlecht), + 'postleitzahl'=>$adresse->plz, + 'staat'=>$adresse->nation, + 'sozialversicherungsnummer'=>$svnr + )); + + exit(); +} + ?> Datenverbund-Client + +

Testclient für Datenverbund-Webservice

    @@ -195,6 +265,7 @@ $dokumentnr = filter_input(INPUT_POST, 'dokumentnr'); break; case 'setMatrikelnummer': + echo '

    '; printSetMatrikelnrRows(); printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb A für Österreich)', 3); printrow('svnr', 'SVNR', $svnr);