From ba7b4cf3ade316824d9004b0b2cab0887a4820bc Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 11 Feb 2020 14:41:21 +0100 Subject: [PATCH 01/11] New Unique Index unq_idx_ablauf_gebiet_studiengang_semester MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UNIQUE INDEX unq_idx_ablauf_gebiet_studiengang_semester in testtool.tbl_ablauf löschen und durch neuen INDEX ersetzen, der auch den Studienplan einschließt --- system/dbupdate_3.3.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index f100f2115..09d5e000a 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3525,6 +3525,20 @@ if($result = $db->db_query("SELECT * FROM pg_proc WHERE proname = 'transform_ges echo '
Function transform_geschlecht hinzugefügt.'; } } +// UNIQUE INDEX unq_idx_ablauf_gebiet_studiengang_semester in testtool.tbl_ablauf löschen und durch neuen INDEX ersetzen, der auch den Studienplan einschließt +if ($result = $db->db_query("SELECT 1 FROM pg_class WHERE relname = 'unq_idx_ablauf_gebiet_studiengang_semester'")) +{ + if ($db->db_num_rows($result) == 1) + { + $qry = 'DROP INDEX testtool.unq_idx_ablauf_gebiet_studiengang_semester;'; + $qry .= 'CREATE UNIQUE INDEX unq_idx_ablauf_gebiet_studiengang_semester_studienplan ON testtool.tbl_ablauf USING btree (gebiet_id, studiengang_kz, semester, studienplan_id);'; + if (!$db->db_query($qry)) + echo 'unq_idx_ablauf_gebiet_studiengang_semester_studienplan '.$db->db_last_error().'
'; + else + echo '
Dropped index "unq_idx_ablauf_gebiet_studiengang_semester" and created unique index "unq_idx_ablauf_gebiet_studiengang_semester_studienplan"'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From 11231b99c2d9a97ebb3885c5dfb0e6bdfa20157e Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 11 Feb 2020 14:41:59 +0100 Subject: [PATCH 02/11] Fallback Sprache --- cis/testtool/frage.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php index f15c2c2d2..a760d00aa 100644 --- a/cis/testtool/frage.php +++ b/cis/testtool/frage.php @@ -460,6 +460,12 @@ if($frage->frage_id!='') $frage_id = $frage->frage_id; $frage->getFrageSprache($frage_id, $_SESSION['sprache_user']); + // Fallback auf DEFAULT_LANGUAGE wenn keine Frage in der $_SESSION['sprache_user'] vorhanden ist + if ($frage->text == '' && $frage->bild == '' && $frage->audio == '') + { + $frage->getFrageSprache($frage_id, DEFAULT_LANGUAGE); + } + if(!$demo) { //Nachschauen ob diese Frage bereits angesehen wurde From 58a67ead5d0420beda1ad78326ba244be203c5a2 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 11 Feb 2020 14:42:45 +0100 Subject: [PATCH 03/11] =?UTF-8?q?Ber=C3=BCcksichtigung=20von=20Studienplan?= =?UTF-8?q?=20bei=20Ablauf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + Kleine GUI-Anpassungen --- cis/testtool/index.html | 2 +- cis/testtool/login.php | 14 +- cis/testtool/menu.php | 305 ++++++++++++++++++++++------------------ 3 files changed, 174 insertions(+), 147 deletions(-) diff --git a/cis/testtool/index.html b/cis/testtool/index.html index ac39c5deb..02044a4bc 100644 --- a/cis/testtool/index.html +++ b/cis/testtool/index.html @@ -10,7 +10,7 @@ - + <body> diff --git a/cis/testtool/login.php b/cis/testtool/login.php index 477901803..a1bb7b517 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -66,6 +66,7 @@ $gebdatum=''; $date = new datum(); $reload_menu=false; +$alertmsg = ''; $sg_var = new studiengang(); @@ -189,7 +190,7 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) // * 1. Sprache über Ablauf Vorgaben ermitteln $ablauf = new Ablauf(); - $ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz); + $ablauf->getAblaufGebiete($firstPrio_studiengang_kz, $firstPrio_studienplan_id); $rt_sprache = ''; if(!empty($ablauf->result[0])) @@ -224,17 +225,17 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) } else { - echo '<span class="error">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</span>'; + $alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</div>'; } } else { - echo '<span class="error">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</span>'; + $alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</div>'; } } else { - echo '<span class="error">'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'</span>'; + $alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'</div>'; } } @@ -499,7 +500,7 @@ if (isset($prestudent_id)) } elseif($ps_obj->ausbildungssemester == '3') { - echo '<td>'. $p->t('testtool/quereinstieg'). ' (3.Semester)</td>'; + echo '<td>'. $p->t('testtool/quereinstieg'). ' (3. Semester)</td>'; } } // wenn letzter Status \'Abgewiesener\' ist, dann als solchen kennzeichnen @@ -564,7 +565,8 @@ else // LOGIN Site (vor Login) echo '<div class="col-xs-11">'; // Welcome text - echo ' + echo $alertmsg; + echo ' <div class="row" style="margin-bottom: 10%; margin-top: 3%;"> <div class="col-xs-6 text-center" style="border-right: 1px solid lightgrey;"> <h1 style="white-space: normal">Herzlich Willkommen zum Reihungstest</h1><br><br> diff --git a/cis/testtool/menu.php b/cis/testtool/menu.php index 4d075ee9a..8a8c245de 100644 --- a/cis/testtool/menu.php +++ b/cis/testtool/menu.php @@ -69,7 +69,7 @@ if (isset($_SESSION['pruefling_id'])) $result = $db->db_query($qry); echo '<table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-right-width:1px;border-right-color:#BCBCBC; border-collapse: separate; - border-spacing: 0 3px;">'; + border-spacing: 0 3px;">'; // Link zur Startseite echo '<tr><td class="ItemTesttool" style="margin-left: 20px;" nowrap> @@ -78,16 +78,16 @@ if (isset($_SESSION['pruefling_id'])) // Link zur Einleitung if ($content_id = $db->db_fetch_object($result)) - { + { if($content_id->content_id!='') - { + { echo ' - <tr id="tr-einleitung"><td class="ItemTesttool" style="margin-left: 20px;" nowrap> - <a class="ItemTesttool navButton" href="../../cms/content.php?content_id='.$content_id->content_id.'&sprache='.$sprache_user.'" target="content">'.$p->t('testtool/einleitung').'</a> - </td></tr> - '; - } - } + <tr id="tr-einleitung"><td class="ItemTesttool" style="margin-left: 20px;" nowrap> + <a class="ItemTesttool navButton" href="../../cms/content.php?content_id='.$content_id->content_id.'&sprache='.$sprache_user.'" target="content">'.$p->t('testtool/einleitung').'</a> + </td></tr> + '; + } + } echo '<tr><td style="padding-left: 20px;" nowrap>'; $studiengang_kz = (isset($_SESSION['studiengang_kz'])) ? $_SESSION['studiengang_kz'] : ''; @@ -98,78 +98,78 @@ if (isset($_SESSION['pruefling_id'])) /** * Spaltennamen-Aliase extrahieren um sie im Outer-Select verwenden zu können - * $bezeichnung_mehrsprachig liefert: bezeichnung_mehrsprachig[1] as bezeichnung_mehrsprachig_1,... - * $bezeichnung_mehrsprachig_sel liefert: bezeichnung_mehrsprachig_1, bezeichnung_mehrsprachig_2,... + * $bezeichnung_mehrsprachig liefert: bezeichnung_mehrsprachig[1] as bezeichnung_mehrsprachig_1,... + * $bezeichnung_mehrsprachig_sel liefert: bezeichnung_mehrsprachig_1, bezeichnung_mehrsprachig_2,... */ $bezeichnung_mehrsprachig_sel = explode(",", $bezeichnung_mehrsprachig); foreach ($bezeichnung_mehrsprachig_sel as &$bm) - { - $bm = strrchr($bm, ' as '); - } + { + $bm = strrchr($bm, ' as '); + } $bezeichnung_mehrsprachig_sel = implode(', ', $bezeichnung_mehrsprachig_sel); /** * Reihungstestgebiete der Person ermitteln; Zusammenfassen, falls RT für mehrere Studien - * 1. Aktuelle Prestudenten zur Person über den Prüfling ermitteln, - * 2. Einstiegssemester (Erstsemester/Quereinsteiger) und Studienplan pro Prestudent ermitteln, - * 3. RT-Gebiete falls vorhanden über Studienplan, sonst über STG ermitteln - * 4. Für Quereinsteiger zusätzlich auch Erstsemestrigen-Gebiete + * 1. Aktuelle Prestudenten zur Person über den Prüfling ermitteln, + * 2. Einstiegssemester (Erstsemester/Quereinsteiger) und Studienplan pro Prestudent ermitteln, + * 3. RT-Gebiete falls vorhanden über Studienplan, sonst über STG ermitteln + * 4. Für Quereinsteiger zusätzlich auch Erstsemestrigen-Gebiete */ $qry = " - WITH prestudent_data AS - ( - SELECT DISTINCT ON (prestudent_id) - prestudent_id, - studienplan_id, - studiengang_kz, - typ, + WITH prestudent_data AS + ( + SELECT DISTINCT ON (prestudent_id) + prestudent_id, + studienplan_id, + studiengang_kz, + typ, tbl_studiengangstyp.bezeichnung AS typ_bz, - ausbildungssemester AS semester - FROM - public.tbl_prestudentstatus AS ps_status - JOIN - public.tbl_prestudent USING (prestudent_id) - JOIN - public.tbl_studiengang USING (studiengang_kz) - JOIN - public.tbl_studiengangstyp USING (typ) - WHERE - tbl_prestudent.person_id = ( - SELECT - person_id - FROM - public.tbl_prestudent - WHERE - prestudent_id = ".$db->db_add_param($_SESSION['prestudent_id'])." - ) + ausbildungssemester AS semester + FROM + public.tbl_prestudentstatus AS ps_status + JOIN + public.tbl_prestudent USING (prestudent_id) + JOIN + public.tbl_studiengang USING (studiengang_kz) + JOIN + public.tbl_studiengangstyp USING (typ) + WHERE + tbl_prestudent.person_id = ( + SELECT + person_id + FROM + public.tbl_prestudent + WHERE + prestudent_id = ".$db->db_add_param($_SESSION['prestudent_id'])." + ) - /* Filter only future studiensemester (incl. actual one) */ - AND - studiensemester_kurzbz IN ( - SELECT - studiensemester_kurzbz - FROM - public.tbl_studiensemester - WHERE - ende > now() - ) + /* Filter only future studiensemester (incl. actual one) */ + AND + studiensemester_kurzbz IN ( + SELECT + studiensemester_kurzbz + FROM + public.tbl_studiensemester + WHERE + ende > now() + ) - /* Filter out all Abgewiesene */ - AND NOT EXISTS ( - SELECT - 1 - FROM - tbl_prestudentstatus - WHERE - status_kurzbz = 'Abgewiesener' - AND - prestudent_id = ps_status.prestudent_id - ) + /* Filter out all Abgewiesene */ + AND NOT EXISTS ( + SELECT + 1 + FROM + tbl_prestudentstatus + WHERE + status_kurzbz = 'Abgewiesener' + AND + prestudent_id = ps_status.prestudent_id + ) - AND - status_kurzbz = 'Interessent'"; + AND + status_kurzbz = 'Interessent'"; - /* If the logged-in prestudents study is a Bachelor-study, filter only Bachelor-studies */ + /* If the logged-in prestudents study is a Bachelor-study, filter only Bachelor-studies */ if ($stg->typ == 'b') { $qry .= " @@ -184,86 +184,95 @@ if (isset($_SESSION['pruefling_id'])) $qry .= " - /* Order to get last semester when using distinct on */ - ORDER BY - prestudent_id, - datum DESC, - ps_status.insertamum DESC, - ps_status.ext_id DESC - ) + /* Order to get last semester when using distinct on */ + ORDER BY + prestudent_id, + datum DESC, + ps_status.insertamum DESC, + ps_status.ext_id DESC + ) - SELECT DISTINCT ON - (gebiet_id, semester) - semester, - gebiet_id, - STRING_AGG(studiengang_kz::TEXT, ', ' ORDER BY studiengang_kz) AS studiengang_kz_list, - bezeichnung, - MIN(reihung) AS reihung, - ". $bezeichnung_mehrsprachig_sel. " - FROM ( - SELECT - * - FROM ( - (SELECT - prestudent_data.semester AS ps_sem, - gebiet_id, - bezeichnung, - tbl_ablauf.studienplan_id, - tbl_ablauf.studiengang_kz, - tbl_ablauf.semester, - tbl_ablauf.reihung, - ".$bezeichnung_mehrsprachig. " - FROM - prestudent_data - JOIN - testtool.tbl_ablauf USING (studiengang_kz) - JOIN - testtool.tbl_gebiet USING (gebiet_id) - WHERE - (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1) - OR - (prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3)) - ) + SELECT DISTINCT ON + (gebiet_id, semester, reihung) + semester, + gebiet_id, + STRING_AGG(studiengang_kz::TEXT, ', ' ORDER BY studiengang_kz) AS studiengang_kz_list, + bezeichnung, + MIN(reihung) AS reihung, + ". $bezeichnung_mehrsprachig_sel. " + FROM ( + SELECT + * + FROM ( + (SELECT + prestudent_data.semester AS ps_sem, + gebiet_id, + bezeichnung, + tbl_ablauf.studienplan_id, + tbl_ablauf.studiengang_kz, + tbl_ablauf.semester, + tbl_ablauf.reihung, + ".$bezeichnung_mehrsprachig. " + FROM + prestudent_data + JOIN + testtool.tbl_ablauf USING (studiengang_kz) + JOIN + testtool.tbl_gebiet USING (gebiet_id) + WHERE + ( + (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1) + OR + (prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3)) + ) + AND ( + prestudent_data.studienplan_id = tbl_ablauf.studienplan_id + OR + tbl_ablauf.studienplan_id IS NULL + ) + ) - UNION + UNION - ( - SELECT - prestudent_data.semester AS ps_sem, - gebiet_id, - bezeichnung, - tbl_ablauf.studienplan_id, - tbl_ablauf.studiengang_kz, - tbl_ablauf.semester, - tbl_ablauf.reihung, - ". $bezeichnung_mehrsprachig. " - FROM - prestudent_data - JOIN - testtool.tbl_ablauf USING (studienplan_id) - JOIN - testtool.tbl_gebiet USING (gebiet_id) - WHERE - (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1) - OR - (prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3)) - ) - ) temp - ) temp2 + ( + SELECT + prestudent_data.semester AS ps_sem, + gebiet_id, + bezeichnung, + tbl_ablauf.studienplan_id, + tbl_ablauf.studiengang_kz, + tbl_ablauf.semester, + tbl_ablauf.reihung, + ". $bezeichnung_mehrsprachig. " + FROM + prestudent_data + JOIN + testtool.tbl_ablauf USING (studienplan_id) + JOIN + testtool.tbl_gebiet USING (gebiet_id) + WHERE + (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1) + OR + (prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3)) + ) + ) temp + ) temp2 - GROUP BY - semester, - gebiet_id, - bezeichnung, + GROUP BY + semester, + gebiet_id, + bezeichnung, ". $bezeichnung_mehrsprachig_sel ." - ORDER BY - semester, - gebiet_id - "; + ORDER BY + semester, + reihung, + gebiet_id + "; $result = $db->db_query($qry); + $anzahlGebiete = $db->db_num_rows($result); $lastsemester = ''; $quereinsteiger_stg = ''; while($row = $db->db_fetch_object($result)) @@ -355,10 +364,22 @@ if (isset($_SESSION['pruefling_id'])) $class='ItemTesttool'; } + // Fallback für Gebietbezeichnung, falls nicht in gewählter Sprache vorhanden + $gebietbezeichnung = $sprache_mehrsprachig->parseSprachResult("bezeichnung_mehrsprachig", $row)[$sprache_user]; + if ($gebietbezeichnung == '') + { + $gebietbezeichnung = $sprache_mehrsprachig->parseSprachResult("bezeichnung_mehrsprachig", $row)[DEFAULT_LANGUAGE]; + + if ($gebietbezeichnung == '') + { + $gebietbezeichnung = $row->bezeichnung; + } + } + echo '<tr> <!--<td width="10" class="ItemTesttoolLeft" nowrap>&nbsp;</td>--> <td class="'.$class.'"> - <a class="'.$class.'" href="frage.php?gebiet_id='.$row->gebiet_id.'" onclick="document.location.reload()" target="content" style="'.$style.'">'.$sprache_mehrsprachig->parseSprachResult("bezeichnung_mehrsprachig", $row)[$sprache_user].'</a> + <a class="'.$class.'" href="frage.php?gebiet_id='.$row->gebiet_id.'" onclick="document.location.reload()" target="content" style="'.$style.'">'.$gebietbezeichnung.'</a> </td> <!--<td width="10" class="ItemTesttoolRight" nowrap>&nbsp;</td>--> </tr>'; @@ -368,9 +389,13 @@ if (isset($_SESSION['pruefling_id'])) $invalid_gebiete = true; } } - echo '</table>'; + if ($anzahlGebiete > 0) + { + echo '</table>'; + } // Link zum Logout + echo '<tr><td class="ItemTesttool" style="margin-left: 20px;" nowrap> <a class="ItemTesttool navButton" href="login.php?logout=true" target="content">Logout</a> </td></tr>'; From 4d3024e3f75911d36c1f0be2e6296c290ff51c3f Mon Sep 17 00:00:00 2001 From: Manfred Kindl <kindlm@technikum-wien.at> Date: Mon, 17 Feb 2020 16:43:28 +0100 Subject: [PATCH 04/11] Placeholder Geburtsdatum --- cis/testtool/login.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/testtool/login.php b/cis/testtool/login.php index a1bb7b517..fac890bc8 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -617,7 +617,7 @@ else // LOGIN Site (vor Login) echo '<div class="form-group"> '; echo '<label for="datepicker" class="col-sm-offset-1 col-sm-4 control-label">Geburtsdatum | Date of Birth</label>'; echo '<div class="col-sm-3">'; - echo '<input type="text" id="datepicker" class="form-control" name="gebdatum" value="'.$date->formatDatum($gebdatum,'d.m.Y').'">'; + echo '<input type="text" id="datepicker" class="form-control" name="gebdatum" value="'.$date->formatDatum($gebdatum,'d.m.Y').'" placeholder="DD.MM.YYYY">'; echo '</div>'; // end col-xs echo '</div>'; // end form-group From b8b36e975e8baa57b4362faab684217fd3646bbf Mon Sep 17 00:00:00 2001 From: Manfred Kindl <kindlm@technikum-wien.at> Date: Sun, 23 Feb 2020 18:18:14 +0100 Subject: [PATCH 05/11] Orgform_kurzbz in bankverbindung.class und zahlungen_details.php --- cis/private/profile/zahlungen_details.php | 93 ++++++++++++++--------- include/bankverbindung.class.php | 49 +++++++----- 2 files changed, 88 insertions(+), 54 deletions(-) diff --git a/cis/private/profile/zahlungen_details.php b/cis/private/profile/zahlungen_details.php index a6d35cc72..650ee81c0 100644 --- a/cis/private/profile/zahlungen_details.php +++ b/cis/private/profile/zahlungen_details.php @@ -26,6 +26,8 @@ require_once('../../../include/organisationseinheit.class.php'); require_once('../../../include/addon.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/student.class.php'); +require_once('../../../include/prestudent.class.php'); $uid = get_uid(); @@ -66,7 +68,19 @@ $studiengang=new studiengang(); $studiengang->load($konto->studiengang_kz); $bankverbindung=new bankverbindung(); -$kontodaten = getBankverbindung($studiengang->oe_kurzbz); +// Wenn Person StudentIn ist, auch die OrgForm laden um die richtige Kontonummer anzeigen zu können +$student = new student(); +$orgform = ''; +if ($student->load($uid)) +{ + $laststatus = new prestudent(); + if ($laststatus->getLastStatus($student->prestudent_id)) + { + $orgform = $laststatus->orgform_kurzbz; + } +} + +$kontodaten = getBankverbindung($studiengang->oe_kurzbz, $orgform); $iban=$kontodaten["iban"]; $bic=$kontodaten["bic"]; @@ -156,56 +170,63 @@ $addon = new addon(); $addon->loadAddons(); foreach($addon->result as $a) { - if($a->kurzbz === "eps") - { + if($a->kurzbz === "eps") + { echo '<table class="tablesorter"> - <thead> + <thead> <tr> - <th width="40%">Zahlung anweisen</th> - <th width="60%"></th> + <th width="40%">Zahlung anweisen</th> + <th width="60%"></th> </tr> - </thead> - <tbody> + </thead> + <tbody> <tr> - <td>EPS</td> - <td> - <a href="../../../addons/eps/cis/index.php?buchungsnummer='.$buchungsnr.'"><img src="../../../skin/images/eps-logo_full.gif" width="30" height="30" alt="EPS Überweisung"></a> - </td> + <td>EPS</td> + <td> + <a href="../../../addons/eps/cis/index.php?buchungsnummer='.$buchungsnr.'"><img src="../../../skin/images/eps-logo_full.gif" width="30" height="30" alt="EPS Überweisung"></a> + </td> </tr> - </tbody> + </tbody> </table>'; - } - + } + } echo '</body></html>'; -function getBankverbindung($oe_kurzbz) +function getBankverbindung($oe_kurzbz, $orgform_kurzbz = null) { - $iban = ""; - $bic = ""; - $result = array(); - $bankverbindung=new bankverbindung(); - if($bankverbindung->load_oe($oe_kurzbz) && count($bankverbindung->result)>0) - { - $result["iban"]=$bankverbindung->result[0]->iban; - $result["bic"]=$bankverbindung->result[0]->bic; - return $result; - } - else - { - $organisationseinheit = new organisationseinheit(); - $organisationseinheit->load($oe_kurzbz); - if($organisationseinheit->oe_parent_kurzbz !== NULL) + $iban = ""; + $bic = ""; + $result = array(); + $bankverbindung=new bankverbindung(); + if($bankverbindung->load_oe($oe_kurzbz, $orgform_kurzbz) && count($bankverbindung->result) > 0) { - $result = getBankverbindung($organisationseinheit->oe_parent_kurzbz); - return $result; + $result["iban"] = $bankverbindung->result[0]->iban; + $result["bic"] = $bankverbindung->result[0]->bic; + return $result; + } + // Nochmal ohne $orgform_kurzbz versuchen + elseif($bankverbindung->load_oe($oe_kurzbz) && count($bankverbindung->result) > 0) + { + $result["iban"] = $bankverbindung->result[0]->iban; + $result["bic"] = $bankverbindung->result[0]->bic; + return $result; } else { - $result["iban"]=""; - $result["bic"]=""; + $organisationseinheit = new organisationseinheit(); + $organisationseinheit->load($oe_kurzbz); + if($organisationseinheit->oe_parent_kurzbz !== NULL) + { + $result = getBankverbindung($organisationseinheit->oe_parent_kurzbz, $orgform_kurzbz); + return $result; + } + else + { + $result["iban"] = ""; + $result["bic"] = ""; + } } - } } ?> diff --git a/include/bankverbindung.class.php b/include/bankverbindung.class.php index b9056f3b8..44139375e 100644 --- a/include/bankverbindung.class.php +++ b/include/bankverbindung.class.php @@ -16,8 +16,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger <christian.paminger@technikum-wien.at>, - * Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and - * Rudolf Hangl <rudolf.hangl@technikum-wien.at>. + * Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and + * Rudolf Hangl <rudolf.hangl@technikum-wien.at>. */ /** * Klasse bankverbindung @@ -47,6 +47,7 @@ class bankverbindung extends basis_db public $updateamum; // timestamp public $updatevon; // bigint public $oe_kurzbz; // string + public $orgform_kurzbz; // string /** * Konstruktor @@ -95,6 +96,7 @@ class bankverbindung extends basis_db $this->insertvon = $row->insertvon; $this->ext_id = $row->ext_id; $this->oe_kurzbz = $row->oe_kurzbz; + $this->orgform_kurzbz = $row->orgform_kurzbz; return true; } else @@ -176,19 +178,20 @@ class bankverbindung extends basis_db //Neuen Datensatz einfuegen $qry = 'BEGIN;INSERT INTO public.tbl_bankverbindung (person_id, name, anschrift, blz, bic, - kontonr, iban, typ, oe_kurzbz, verrechnung, insertamum, insertvon, updateamum, updatevon) VALUES('. - $this->db_add_param($this->person_id, FHC_INTEGER).', '. - $this->db_add_param($this->name).', '. - $this->db_add_param($this->anschrift).', '. - $this->db_add_param($this->blz).', '. - $this->db_add_param($this->bic).', '. - $this->db_add_param($this->kontonr).', '. - $this->db_add_param($this->iban).', '. - $this->db_add_param($this->typ).', '. - $this->db_add_param($this->oe_kurzbz).', '. - $this->db_add_param($this->verrechnung, FHC_BOOLEAN).', now(), '. - $this->db_add_param($this->insertvon).', now(), '. - $this->db_add_param($this->updatevon).');'; + kontonr, iban, typ, oe_kurzbz, orgform_kurzbz, verrechnung, insertamum, insertvon, updateamum, updatevon) VALUES('. + $this->db_add_param($this->person_id, FHC_INTEGER).', '. + $this->db_add_param($this->name).', '. + $this->db_add_param($this->anschrift).', '. + $this->db_add_param($this->blz).', '. + $this->db_add_param($this->bic).', '. + $this->db_add_param($this->kontonr).', '. + $this->db_add_param($this->iban).', '. + $this->db_add_param($this->typ).', '. + $this->db_add_param($this->oe_kurzbz).', '. + $this->db_add_param($this->orgform_kurzbz).', '. + $this->db_add_param($this->verrechnung, FHC_BOOLEAN).', now(), '. + $this->db_add_param($this->insertvon).', now(), '. + $this->db_add_param($this->updatevon).');'; } else { @@ -212,6 +215,7 @@ class bankverbindung extends basis_db 'typ='.$this->db_add_param($this->typ).', '. 'verrechnung='.$this->db_add_param($this->verrechnung,FHC_BOOLEAN).', '. 'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '. + 'orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '. 'updateamum='.$this->db_add_param($this->updateamum).','. 'updatevon='.$this->db_add_param($this->updatevon).' '. 'WHERE bankverbindung_id='.$this->db_add_param($this->bankverbindung_id).';'; @@ -315,6 +319,7 @@ class bankverbindung extends basis_db $obj->insertvon = $row->insertvon; $obj->ext_id = $row->ext_id; $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->orgform_kurzbz = $row->orgform_kurzbz; $this->result[] = $obj; } @@ -328,11 +333,12 @@ class bankverbindung extends basis_db } /** - * Laedt die Bankverbindung einer Organisationseinheit - * @param $person_id + * Laedt die Bankverbindung einer Organisationseinheit und optional einer OrgForm + * @param string $oe_kurzbz + * @param string $orgform_kurzbz * @return true wenn ok, false im Fehlerfall */ - public function load_oe($oe_kurzbz) + public function load_oe($oe_kurzbz, $orgform_kurzbz = null) { if($oe_kurzbz==null || $oe_kurzbz=='') { @@ -342,6 +348,11 @@ class bankverbindung extends basis_db $qry = "SELECT * FROM public.tbl_bankverbindung WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz); + if($orgform_kurzbz != '') + { + $qry .= " AND orgform_kurzbz=".$this->db_add_param($orgform_kurzbz); + } + if($this->db_query($qry)) { while($row = $this->db_fetch_object()) @@ -364,6 +375,7 @@ class bankverbindung extends basis_db $obj->insertvon = $row->insertvon; $obj->ext_id = $row->ext_id; $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->orgform_kurzbz = $row->orgform_kurzbz; $this->result[] = $obj; } @@ -412,6 +424,7 @@ class bankverbindung extends basis_db $this->insertvon = $row->insertvon; $this->ext_id = $row->ext_id; $this->oe_kurzbz = $row->oe_kurzbz; + $this->orgform_kurzbz = $row->orgform_kurzbz; return true; } From 8c3066604360b09def5969a69528142f03c5f4b0 Mon Sep 17 00:00:00 2001 From: Manfred Kindl <kindlm@technikum-wien.at> Date: Mon, 24 Feb 2020 18:43:38 +0100 Subject: [PATCH 06/11] =?UTF-8?q?Testtool=20Login=20shows=20applicants=20o?= =?UTF-8?q?nly=20once=20(Only=20application=20of=20first=20priority)=20->?= =?UTF-8?q?=20Only=20for=20FHTW!=20New=20function=20getFirstPrioPrestudent?= =?UTF-8?q?RT=20in=20prestudent.class.php=20Link=20to=20pivot-table=20in?= =?UTF-8?q?=20mail=20to=20assistants=20auswertung=5Ffhtw=20ber=C3=BCcksich?= =?UTF-8?q?tigt=20nun=20orgformen=20(studienpl=C3=A4ne)=20aus=20tbl=5Fabla?= =?UTF-8?q?uf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/testtool/login.php | 15 ++++++- include/prestudent.class.php | 56 ++++++++++++++++++++++++++ vilesci/stammdaten/auswertung_fhtw.php | 27 ++++++++++--- 3 files changed, 91 insertions(+), 7 deletions(-) diff --git a/cis/testtool/login.php b/cis/testtool/login.php index fac890bc8..f69065aa0 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -276,7 +276,15 @@ else //$prestudent_id=null; $ps=new prestudent(); $datum=date('Y-m-d'); - $ps->getPrestudentRT($datum); + // 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); + } } @@ -491,7 +499,10 @@ if (isset($prestudent_id)) echo '<tr>'; $stg = new Studiengang($ps_obj->studiengang_kz); - if($ps_obj->lastStatus == "Interessent") + if($ps_obj->lastStatus == "Interessent" + || $ps_obj->lastStatus == "Bewerber" + || $ps_obj->lastStatus == "Wartender" + || $ps_obj->lastStatus == "Aufgenommener") { echo '<td style="width: 50%;">'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). '</td>'; if($ps_obj->ausbildungssemester == '1') diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 4304e5341..923ca81be 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -420,6 +420,62 @@ class prestudent extends person return true; } + /** + * Laden aller Prestudenten, die an $datum zum Reihungstest geladen sind. + * Wenn es mehrere Bewerbungen für ein Person gibt, wird nur die höchste Prestudent_id zurückgeliefert + * @param string $datum Datum in der Form YYYY-MM-DD an dem der Reihungstest stattfindet + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function getFirstPrioPrestudentRT($datum) + { + $sql_query='SELECT DISTINCT + ps.prestudent_id, + pers.vorname, pers.nachname, pers.person_id, pers.titelpre, + pers.titelpost, pers.gebdatum, + tbl_reihungstest.*, + ps.studiengang_kz as studiengang_kz + FROM + public.tbl_prestudent ps + JOIN public.tbl_person pers USING(person_id) + JOIN public.tbl_rt_person USING(person_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + WHERE + tbl_reihungstest.datum='.$this->db_add_param($datum).' + AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=ps.prestudent_id) + AND EXISTS(SELECT * FROM public.tbl_prestudentstatus JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE prestudent_id=ps.prestudent_id AND tbl_studiensemester.ende>'.$this->db_add_param($datum).') + AND priorisierung = (SELECT priorisierung FROM public.tbl_prestudent + WHERE person_id = pers.person_id + AND get_rolle_prestudent (ps.prestudent_id,NULL) IN (\'Interessent\',\'Bewerber\',\'Wartender\',\'Aufgenommener\') + ORDER BY priorisierung ASC LIMIT 1) + ORDER BY nachname,vorname'; + + if(!$this->db_query($sql_query)) + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + + $this->num_rows=0; + + while($row = $this->db_fetch_object()) + { + $ps=new prestudent(); + $ps->prestudent_id = $row->prestudent_id; + $ps->person_id = $row->person_id; + $ps->reihungstest_id = $row->reihungstest_id; + $ps->titelpost = $row->titelpost; + $ps->titelpre = $row->titelpre; + $ps->nachname = $row->nachname; + $ps->vorname = $row->vorname; + $ps->gebdatum = $row->gebdatum; + $ps->studiengang_kz = $row->studiengang_kz; + $this->result[]=$ps; + $this->num_rows++; + } + return true; + } + /** * Laedt über einen Prestudenten alle anderen Prestudenten einer Person, die aktuell an STG interessiert sind. * @integer $prestudent_id Prestudent ID, über die alle weiteren Prestudenten ermittelt werden sollen. diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index a47230087..e38be43bf 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -562,10 +562,9 @@ if ($testende) <tr> <td style="padding-left: 8%; padding-right: 8%; padding-top: 5%; padding-bottom: 5%; font-family: verdana, sans-serif; font-size: 1em; border-bottom: 2px solid #000000;">'; $mailtext .= 'Der Reihungstest vom ' . $datum_obj->convertISODate($reihungstest->datum) . ' um ' . $datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i') . ' Uhr ist beendet.'; - $mailtext .= '<br> Es haben <b>'.$anzahl.'</b> Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen'; - $mailtext .= '<br> Sie finden die Auswertung unter dem folgendem Link:'; + $mailtext .= '<br> Es haben <b>'.$anzahl.'</b> Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen.'; $mailtext .= '<br><br><a href="' . APP_ROOT . 'vilesci/stammdaten/auswertung_fhtw.php?reihungstest=' . $reihungstest->reihungstest_id . '&studiengang=' . $studiengang_kz . '&orgform_kurzbz=' . $orgForm . '">Link zur Auswertung</a>'; - + $mailtext .= '<br><br><a href="' . APP_ROOT . 'addons/reports/cis/vorschau.php?statistik_kurzbz=BewerberReihungstestPriorisierung&debug=true">Link zur Pivot-Tabelle für die Priorisierung</a>'; $mailtext .= '</td> </tr> <tr> @@ -643,7 +642,7 @@ if (isset($_POST['method']) && $_POST['method'] == 'addPerson') if ($row->bewerbung_abgeschicktamum != '' && $row->bestaetigtam != '' && $row->studienplan_id != '') { $studienplan = $row->studienplan_id; - $break; + break; } } @@ -1154,7 +1153,7 @@ if (isset($_REQUEST['reihungstest'])) JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id) JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id) JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.rt_id = rt.reihungstest_id) - JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) + JOIN PUBLIC.tbl_prestudentstatus pss USING (prestudent_id) JOIN public.tbl_studiengang ON (ps.studiengang_kz = tbl_studiengang.studiengang_kz) LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code) LEFT JOIN PUBLIC.tbl_ort ON (tbl_rt_person.ort_kurzbz = tbl_ort.ort_kurzbz) @@ -1196,6 +1195,20 @@ if (isset($_REQUEST['reihungstest'])) { $query .= " AND ps.prestudent_id=" . $db->db_add_param($prestudent_id, FHC_INTEGER); } + if ($orgform_kurzbz != '' && $studiengang != '') + { + $query .= " AND tbl_ablauf.studienplan_id=( + SELECT studienplan_id FROM lehre.tbl_studienplan + JOIN lehre.tbl_studienordnung USING (studienordnung_id) + WHERE studiengang_kz=".$db->db_add_param($studiengang, FHC_INTEGER)." + AND tbl_studienplan.orgform_kurzbz = ".$db->db_add_param($orgform_kurzbz)." + AND tbl_studienplan.aktiv + AND tbl_studienordnung.status_kurzbz='approved' + AND ((SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz=tbl_studienordnung.gueltigvon) <= now() + OR tbl_studienordnung.gueltigvon IS NULL) + AND ((SELECT ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz=tbl_studienordnung.gueltigbis) >= now() OR tbl_studienordnung.gueltigbis IS NULL) + ORDER BY studienplan_id DESC LIMIT 1)"; + } //$query .= " AND nachname='Al-Mafrachi'"; $query .= " ORDER BY tbl_ablauf.studiengang_kz, tbl_ablauf.semester, reihung"; @@ -1403,6 +1416,9 @@ if (isset($_REQUEST['reihungstest'])) } if ($orgform_kurzbz != '') { + //$query .= " AND tbl_prestudentstatus.orgform_kurzbz=" . $db->db_add_param($orgform_kurzbz); + //$query .= " AND tbl_ablauf.studienplan_id = tbl_prestudentstatus.studienplan_id"; + //$query .= " AND tbl_ablauf.studienplan_id = 5"; $query .= " AND tbl_studienplan.orgform_kurzbz=" . $db->db_add_param($orgform_kurzbz); } //$query .= " AND nachname='Al-Mafrachi'"; @@ -1410,6 +1426,7 @@ if (isset($_REQUEST['reihungstest'])) vorname, person_id ";/*print_r($query);*/ + //echo '<pre>', var_dump($query), '</pre>'; if (!($result = $db->db_query($query))) { die($db->db_last_error()); From 9586a3e55121d274ea537d9f5231af6ef32031ab Mon Sep 17 00:00:00 2001 From: Manfred Kindl <kindlm@technikum-wien.at> Date: Mon, 24 Feb 2020 21:01:41 +0100 Subject: [PATCH 07/11] Updated function getFirstPrioPrestudentRT --- include/prestudent.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 923ca81be..16ed8857d 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -441,7 +441,7 @@ class prestudent extends person JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) WHERE tbl_reihungstest.datum='.$this->db_add_param($datum).' - AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=ps.prestudent_id) + /*AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=ps.prestudent_id)*/ AND EXISTS(SELECT * FROM public.tbl_prestudentstatus JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE prestudent_id=ps.prestudent_id AND tbl_studiensemester.ende>'.$this->db_add_param($datum).') AND priorisierung = (SELECT priorisierung FROM public.tbl_prestudent From ed78f7c7af46287f6d28a5d0177a527c856bddb1 Mon Sep 17 00:00:00 2001 From: Manfred Kindl <kindlm@technikum-wien.at> Date: Mon, 24 Feb 2020 22:03:06 +0100 Subject: [PATCH 08/11] frage.php: Fallback auf DEFAULT_LANGUAGE wenn kein Vorschlag in der Sessionsprache vorhanden ist --- cis/testtool/frage.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php index a760d00aa..86ed76252 100644 --- a/cis/testtool/frage.php +++ b/cis/testtool/frage.php @@ -581,6 +581,14 @@ if($frage->frage_id!='') //Vorschlaege laden $vs = new vorschlag(); $vs->getVorschlag($frage->frage_id, $_SESSION['sprache_user'], $gebiet->zufallvorschlag); + + // Fallback auf DEFAULT_LANGUAGE wenn kein Vorschlag in der $_SESSION['sprache_user'] vorhanden ist + if (isset($vs->result[0]) && $vs->result[0]->text == '' && $vs->result[0]->bild == '' && $vs->result[0]->audio == '') + { + $vs = new vorschlag(); + $vs->getVorschlag($frage->frage_id, DEFAULT_LANGUAGE, $gebiet->zufallvorschlag); + } + $letzte = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo); echo "<form action=\"$PHP_SELF?gebiet_id=$gebiet_id&amp;frage_id=$frage->frage_id\" method=\"POST\" ".(!$letzte && !$levelgebiet?"onsubmit=\"letzteFrage()\"":"").">"; echo ' From 34afbe9f63ce69c18b2eb0f2cdcd18512b45e9ec Mon Sep 17 00:00:00 2001 From: alex <karpen_ko@hotmail.com> Date: Wed, 26 Feb 2020 13:53:05 +0100 Subject: [PATCH 09/11] system/dbupdate_3.3: added "Alias Studienassistenz" to check for creation of vs_msg_vars in dbupdate --- system/dbupdate_3.3.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 43be48715..623ea7ac7 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3687,8 +3687,8 @@ if(!$result = @$db->db_query("SELECT orgform_kurzbz FROM public.tbl_bankverbindu echo '<br>public.tbl_bankverbindung: Spalte orgform_kurzbz hinzugefuegt'; } -// iban und bic zu vw_msg_vars hinzufügen -if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang", "Studiengangskennzahl", "Einstiegssemester", "Einstiegsstudiensemester", "Vorname Studiengangsassistenz", "Nachname Studiengangsassistenz", "Durchwahl Studiengangsassistenz", "Relative Prio" FROM public.vw_msg_vars LIMIT 1')) +// iban, bic und weitere Variablen zu vw_msg_vars hinzufügen +if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang", "Studiengangskennzahl", "Einstiegssemester", "Einstiegsstudiensemester", "Vorname Studiengangsassistenz", "Nachname Studiengangsassistenz", "Durchwahl Studiengangsassistenz", "Alias Studiengangsassistenz", "Relative Prio" FROM public.vw_msg_vars LIMIT 1')) { $qry = ' CREATE OR REPLACE VIEW public.vw_msg_vars AS ( From 6509d74f4b4f5c47a3780c8fe006486808d061ba Mon Sep 17 00:00:00 2001 From: Manfred Kindl <kindlm@technikum-wien.at> Date: Wed, 26 Feb 2020 15:20:08 +0100 Subject: [PATCH 10/11] Fix height of Prestudent-Statuslist on smaller Screens --- content/student/studentdetailoverlay.xul.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php index 0a014b20a..7f45342dc 100644 --- a/content/student/studentdetailoverlay.xul.php +++ b/content/student/studentdetailoverlay.xul.php @@ -509,7 +509,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'; <caption label="Status" /> <tree id="student-prestudent-tree-rolle" seltype="single" hidecolumnpicker="false" flex="1" datasources="rdf:null" ref="http://www.technikum-wien.at/prestudentrolle/liste" - style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="200px" enableColumnDrag="true" + style="margin-left:10px;margin-right:10px;margin-bottom:5px;min-height: 200px" height="200px" enableColumnDrag="true" flags="dont-build-content" context="student-prestudent-rolle-tree-popup" ondblclick="StudentRolleBearbeiten()" From 6874408200d5172ff2939482dd42fe35a3013c46 Mon Sep 17 00:00:00 2001 From: Manfred Kindl <kindlm@technikum-wien.at> Date: Wed, 26 Feb 2020 17:11:11 +0100 Subject: [PATCH 11/11] Bugfix Fallback Bild Bugfix Loginliste --- cis/testtool/frage.php | 157 ++++++++++++++++++----------------- cis/testtool/login.php | 6 +- include/prestudent.class.php | 27 ++++-- 3 files changed, 104 insertions(+), 86 deletions(-) diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php index 86ed76252..e2c87ed67 100644 --- a/cis/testtool/frage.php +++ b/cis/testtool/frage.php @@ -16,8 +16,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger <christian.paminger@technikum-wien.at>, - * Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>, - * Rudolf Hangl <rudolf.hangl@technikum-wien.at>, + * Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>, + * Rudolf Hangl <rudolf.hangl@technikum-wien.at>, * Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>, * Manfred Kindl <manfred.kindl@technikum-wien.at> */ @@ -48,8 +48,8 @@ session_start(); // If language is changed by language select menu, reset language variables if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user'])) { - $_SESSION['sprache_user'] = $_GET['sprache_user']; - $sprache_user = $_GET['sprache_user']; + $_SESSION['sprache_user'] = $_GET['sprache_user']; + $sprache_user = $_GET['sprache_user']; } // Set language variable, which impacts the question language @@ -78,10 +78,10 @@ echo ' <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" /> - <link rel="stylesheet" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css" type="text/css"/> + <link rel="stylesheet" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css" type="text/css"/> <link href="../../skin/style.css.php" rel="stylesheet" type="text/css" /> - <script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script> - <script type="text/javascript" src="../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script> + <script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script> + <script type="text/javascript" src="../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script> <script language="Javascript" type="text/javascript"> //<![CDATA[ function killChildNodes(an_element) @@ -132,19 +132,19 @@ echo ' function GebietStarten(bezeichnung,stunde,minute,sekunde,gebiet_id) { var check = confirm(<?php echo "'".$p->t('testtool/okKlickenUmZuStarten')."'"?>+' '+stunde+'h '+minute+'m '+sekunde+'s'); - if (check == true) { + if (check == true) { var sprache_user = <?php echo "'".$sprache_user."'"?>; - document.location.href = 'frage.php?gebiet_id='+gebiet_id+'&start=true'; - } - else { - return false; - } + document.location.href = 'frage.php?gebiet_id='+gebiet_id+'&start=true'; + } + else { + return false; + } } function letzteFrage() { alert(<?php echo "'".$p->t("testtool/alleFragenBeantwortet")."'"?>); - return true; + return true; } //]]> @@ -357,8 +357,8 @@ if($levelgebiet) <tr> <td valign="top" style="height:1px;font-size:2px;"> <table cellpadding="0" cellspacing="0" style="border:0px;height:1px;font-size:2px;"> - <tr> - <td nowrap="nowrap" style="height:1px;font-size:2px;"> + <tr> + <td nowrap="nowrap" style="height:1px;font-size:2px;"> <font size="2" face="Arial, Helvetica, sans-serif"> <img src="../../skin/images/entry.gif" width="'.($psolved*3).'" height="10" alt="" border="1" /> </font> @@ -372,32 +372,32 @@ if($levelgebiet) } //Zeit des Gebietes holen echo ' - <table width="100%"> - <tr> - <td valign="top" width="50%">TeilnehmerIn: '.$info.'</td> - </tr> - <tr> - <td align="center">'.$fortschrittsbalken.'</td> - </tr> - <tr> - <td width="50%"></td> - </tr> - <tr> - <td>'; + <table width="100%"> + <tr> + <td valign="top" width="50%">TeilnehmerIn: '.$info.'</td> + </tr> + <tr> + <td align="center">'.$fortschrittsbalken.'</td> + </tr> + <tr> + <td width="50%"></td> + </tr> + <tr> + <td>'; if($demo) { //Wenn es sich um ein Demobeispiel handelt, dann wird die Maximale Gesamtzeit angezeigt echo - $p->t('testtool/bearbeitungszeit').': '.$stunde.'h '.$minute.'m '.$sekunde.'s'; + $p->t('testtool/bearbeitungszeit').': '.$stunde.'h '.$minute.'m '.$sekunde.'s'; echo ' - </td> - </tr> - <tr> - <td> - '; + </td> + </tr> + <tr> + <td> + '; echo " - <input type=\"button\" class='btn btn-default btn-testtool' value=\"".$p->t("testtool/gebietStarten")."\" onclick=\"GebietStarten('".$db->convert_html_chars($gebiet->bezeichnung)."','".$stunde."','".$minute."','".$sekunde."','".$gebiet_id."')\" /> "; + <input type=\"button\" class='btn btn-default btn-testtool' value=\"".$p->t("testtool/gebietStarten")."\" onclick=\"GebietStarten('".$db->convert_html_chars($gebiet->bezeichnung)."','".$stunde."','".$minute."','".$sekunde."','".$gebiet_id."')\" /> "; } else { @@ -458,12 +458,17 @@ else if($frage->frage_id!='') { $frage_id = $frage->frage_id; + $frage->bild = ''; + $frage->audio = ''; + $frage->text = ''; $frage->getFrageSprache($frage_id, $_SESSION['sprache_user']); + $fallbacksprache = $_SESSION['sprache_user']; // Fallback auf DEFAULT_LANGUAGE wenn keine Frage in der $_SESSION['sprache_user'] vorhanden ist if ($frage->text == '' && $frage->bild == '' && $frage->audio == '') { $frage->getFrageSprache($frage_id, DEFAULT_LANGUAGE); + $fallbacksprache = DEFAULT_LANGUAGE; } if(!$demo) @@ -495,9 +500,9 @@ if($frage->frage_id!='') WHERE gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER)." AND demo=false ORDER BY nummer"; echo " - <table class='table' style='margin-top: 20px; margin-bottom: 40px;'> - <tr class='text-center'> - "; + <table class='table' style='margin-top: 20px; margin-bottom: 40px;'> + <tr class='text-center'> + "; //Nummern der Fragen Anzeigen $result = $db->db_query($qry); while($row = $db->db_fetch_object($result)) @@ -539,46 +544,46 @@ if($frage->frage_id!='') echo " </tr></table>"; echo ' - <br/> - <div class="row"> - <div class="col-xs-12 col-lg-offset-1 col-lg-10"> - '; + <br/> + <div class="row"> + <div class="col-xs-12 col-lg-offset-1 col-lg-10"> + '; //Bild und Text der Frage anzeigen if($frage->bild!='') - { - echo ' - <div class="row text-center"> - <img class="testtoolfrage" src="bild.php?src=frage&amp;frage_id='. $frage->frage_id.'&amp;sprache='. $_SESSION["sprache_user"].'"></img><br/><br/><br/> - </div> - '; - } + { + echo ' + <div class="row text-center"> + <img class="testtoolfrage" src="bild.php?src=frage&amp;frage_id='. $frage->frage_id.'&amp;sprache='.$fallbacksprache.'"></img><br/><br/><br/> + </div> + '; + } $timestamp = time(); //Sound einbinden if($frage->audio!='') { echo ' - <div class="row text-center"> - <audio src="sound.php?src=frage&amp;frage_id='.$frage->frage_id.'&amp;sprache='.$_SESSION['sprache_user'].'&amp;'.$timestamp.'" controls="controls" type="audio/ogg"> - <div> - <p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p> - </div> - </audio> - </div> - '; + <div class="row text-center"> + <audio src="sound.php?src=frage&amp;frage_id='.$frage->frage_id.'&amp;sprache='.$fallbacksprache.'&amp;'.$timestamp.'" controls="controls" type="audio/ogg"> + <div> + <p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p> + </div> + </audio> + </div> + '; } - $display_well = $frage->nummer == 0 ? '' : 'well'; // don't style frage 0 because this is always the introduction to gebiet - echo ' - <div class="row"> - <div class="col-xs-offset-1 col-xs-10 col-sm-offset-2 col-sm-8"> - <div class="'. $display_well. ' text-center">'. $frage->text. '</div> - </div> - </div> - '; + $display_well = $frage->nummer == 0 ? '' : 'well'; // don't style frage 0 because this is always the introduction to gebiet + echo ' + <div class="row"> + <div class="col-xs-offset-1 col-xs-10 col-sm-offset-2 col-sm-8"> + <div class="'. $display_well. ' text-center">'. $frage->text. '</div> + </div> + </div> + '; - //Vorschlaege laden + //Vorschlaege laden $vs = new vorschlag(); $vs->getVorschlag($frage->frage_id, $_SESSION['sprache_user'], $gebiet->zufallvorschlag); @@ -592,14 +597,14 @@ if($frage->frage_id!='') $letzte = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo); echo "<form action=\"$PHP_SELF?gebiet_id=$gebiet_id&amp;frage_id=$frage->frage_id\" method=\"POST\" ".(!$letzte && !$levelgebiet?"onsubmit=\"letzteFrage()\"":"").">"; echo ' - <div class="row text-center"> - <table class="table" style="width: 600px; margin-left: auto; margin-right: auto;"> - <tr> - '; + <div class="row text-center"> + <table class="table" style="width: 600px; margin-left: auto; margin-right: auto;"> + <tr> + '; $anzahl = 1; $beantwortet = false; $cnt = 0; // counter für foreach-Schleife - $len = count($vs->result); + $len = count($vs->result); //Antworten laden falls bereits vorhanden $antwort = new antwort(); @@ -632,10 +637,10 @@ if($frage->frage_id!='') echo '<br/>'; if($vorschlag->bild!='') - echo "<img class='testtoolvorschlag' src='bild.php?src=vorschlag&amp;vorschlag_id=$vorschlag->vorschlag_id&amp;sprache=".$_SESSION['sprache_user']."' /><br/>"; + echo "<img class='testtoolvorschlag' src='bild.php?src=vorschlag&amp;vorschlag_id=$vorschlag->vorschlag_id&amp;sprache=".$fallbacksprache."' /><br/>"; if($vorschlag->audio!='') { - echo ' <audio src="sound.php?src=vorschlag&amp;vorschlag_id='.$vorschlag->vorschlag_id.'&amp;sprache='.$_SESSION['sprache_user'].'" controls="controls"> + echo ' <audio src="sound.php?src=vorschlag&amp;vorschlag_id='.$vorschlag->vorschlag_id.'&amp;sprache='.$fallbacksprache.'" controls="controls"> <div> <p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p> </div> @@ -696,9 +701,9 @@ if($frage->frage_id!='') } } } - echo ' - </div> <!--/.row--> - '; + echo ' + </div> <!--/.row--> + '; echo "</form>"; echo '</div></div>'; echo '<br/><br/><br/><br/><br/>'; diff --git a/cis/testtool/login.php b/cis/testtool/login.php index f69065aa0..122e3cc2a 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -277,11 +277,11 @@ else $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') + /*if (CAMPUS_NAME == 'FH Technikum Wien') { $ps->getFirstPrioPrestudentRT($datum); } - else + else*/ { $ps->getPrestudentRT($datum); } @@ -504,7 +504,7 @@ if (isset($prestudent_id)) || $ps_obj->lastStatus == "Wartender" || $ps_obj->lastStatus == "Aufgenommener") { - echo '<td style="width: 50%;">'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). '</td>'; + echo '<td style="width: 50%;">'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). ' ('.$ps_obj->orgform_bezeichnung[$sprache_user].')</td>'; if($ps_obj->ausbildungssemester == '1') { echo '<td>'. $p->t('testtool/regulaererEinstieg'). ' (1. Semester)</td>'; diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 16ed8857d..22cc06425 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -433,20 +433,27 @@ class prestudent extends person pers.vorname, pers.nachname, pers.person_id, pers.titelpre, pers.titelpost, pers.gebdatum, tbl_reihungstest.*, - ps.studiengang_kz as studiengang_kz + ps.studiengang_kz as studiengang_kz, + tbl_studiengang.typ FROM public.tbl_prestudent ps - JOIN public.tbl_person pers USING(person_id) - JOIN public.tbl_rt_person USING(person_id) - JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + JOIN public.tbl_person pers USING (person_id) + JOIN public.tbl_rt_person USING (person_id) + JOIN public.tbl_reihungstest ON (tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + JOIN public.tbl_studiengang ON (ps.studiengang_kz=tbl_studiengang.studiengang_kz) + JOIN public.tbl_prestudentstatus ON (tbl_prestudentstatus.prestudent_id=ps.prestudent_id + AND status_kurzbz=\'Interessent\' + AND tbl_prestudentstatus.studiensemester_kurzbz=tbl_reihungstest.studiensemester_kurzbz) WHERE tbl_reihungstest.datum='.$this->db_add_param($datum).' /*AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=ps.prestudent_id)*/ + AND tbl_prestudentstatus.studienplan_id IN (SELECT studienplan_id FROM public.tbl_rt_studienplan WHERE reihungstest_id=tbl_rt_person.rt_id) AND EXISTS(SELECT * FROM public.tbl_prestudentstatus JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE prestudent_id=ps.prestudent_id AND tbl_studiensemester.ende>'.$this->db_add_param($datum).') + WHERE prestudent_id=ps.prestudent_id AND tbl_studiensemester.ende > '.$this->db_add_param($datum).') AND priorisierung = (SELECT priorisierung FROM public.tbl_prestudent WHERE person_id = pers.person_id AND get_rolle_prestudent (ps.prestudent_id,NULL) IN (\'Interessent\',\'Bewerber\',\'Wartender\',\'Aufgenommener\') + --AND tbl_prestudent.studiengang_kz=ps.studiengang_kz ORDER BY priorisierung ASC LIMIT 1) ORDER BY nachname,vorname'; @@ -492,11 +499,12 @@ class prestudent extends person SELECT DISTINCT ON (priorisierung, prestudent_id) priorisierung, prestudent_id, - studienplan_id, + tbl_prestudentstatus.studienplan_id, studiengang_kz, typ, tbl_studiengangstyp.bezeichnung AS typ_bz, - ausbildungssemester + ausbildungssemester, + tbl_orgform.bezeichnung_mehrsprachig FROM public.tbl_prestudentstatus JOIN @@ -505,6 +513,10 @@ class prestudent extends person public.tbl_studiengang USING (studiengang_kz) JOIN public.tbl_studiengangstyp USING (typ) + JOIN + lehre.tbl_studienplan ON (tbl_prestudentstatus.studienplan_id = tbl_studienplan.studienplan_id) + JOIN + bis.tbl_orgform ON (tbl_studienplan.orgform_kurzbz = tbl_orgform.orgform_kurzbz) WHERE tbl_prestudent.person_id = ( SELECT @@ -572,6 +584,7 @@ class prestudent extends person $obj->typ = $row->typ; $obj->typ_bz = $row->typ_bz; $obj->ausbildungssemester = $row->ausbildungssemester; + $obj->orgform_bezeichnung = $this->db_parse_lang_array($row->bezeichnung_mehrsprachig); $this->result[] = $obj; }