diff --git a/cis/testtool/admin/edit_gebiet.php b/cis/testtool/admin/edit_gebiet.php index 2fe6af39f..405c908cf 100644 --- a/cis/testtool/admin/edit_gebiet.php +++ b/cis/testtool/admin/edit_gebiet.php @@ -265,7 +265,7 @@ if ($gebiet_id != '') { $offsetwarnung = strlen($gebiet->errormsg) > 0 ? ' (HINWEIS: '.$gebiet->errormsg.')' : ''; - $offsethinweis = ' empfohlene Offsetpunkteanzahl: '.round($offsetpunkte).(round($offsetpunkte) != $offsetpunkte ? ' ('.$offsetpunkte.' gerundet)' : '').''; + $offsethinweis = ' empfohlene Offsetpunkteanzahl: '.ceil($offsetpunkte).(ceil($offsetpunkte) != $offsetpunkte ? ' ('.$offsetpunkte.' gerundet)' : '').''; $offsethinweis .= ''.$offsetwarnung.''; } echo 'Offsetpunkte (maximale Negativpunkte)'.$offsethinweis.''; diff --git a/public/css/tools/auswertung_fhtw.css b/public/css/tools/auswertung_fhtw.css new file mode 100644 index 000000000..f72fa4ffb --- /dev/null +++ b/public/css/tools/auswertung_fhtw.css @@ -0,0 +1,189 @@ +.info +{ + color: #0c5460; + background-color: #d1ecf1; + padding: .75rem 1.25rem; + border: 1px solid #bee5eb;; +} +.warning +{ + color: #856404; + background-color: #fff3cd; + padding: .75rem 1.25rem; + border: 1px solid #ffeeba; +} +.error +{ + color: #721c24; + background-color: #f8d7da; + padding: .75rem 1.25rem; + border: 1px solid #f5c6cb; +} +.loaderIcon +{ + border: 8px solid #f3f3f3; /* Light grey */ + border-top: 8px solid #3498db; /* Blue */ + border-radius: 50%; + width: 30px; + height: 30px; + animation: spin 2s linear infinite; + margin-right: auto; + margin-left: auto; +} +@keyframes spin +{ + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} +.alert > .btn +{ + padding: 0 6px; +} +/*** Bootstrap popover ***/ +#popover-target label +{ + margin: 0 5px; + display: block; +} +#popover-target input +{ + margin-right: 5px; +} +#popover-target .disabled +{ + color: #ddd; +} +.glyphicon-remove +{ + font-size: 150%; + margin: -5px 0; + top: 4px; +} +.ui-autocomplete-loading +{ + background: white url("../../../skin/images/spinner.gif") right 5px center no-repeat; +} + +#paramstbl +{ + margin-bottom: 0; +} + +#paramstbl label +{ + font-weight: normal; +} + +#rtcheckboxesbtn +{ + max-width: 390px; +} + +#rtwaehlen +{ + white-space: nowrap; + padding: 10px; +} + +.rtchkbox +{ + float: left; +} + +.rtlabel +{ + width: 100%; +} + +.rtlabel:hover, .rtlabel label:hover +{ + color: white; + background-color: #337ab7; + cursor: pointer; +} + +#rtcheckboxes +{ + height: 100%; + width: 500px; + left: 155px; + position: absolute; + z-index: 9999999; + overflow-y: auto; + border: 1px solid; + padding: 8px; + background-color: white; + display: none +} + +#auswertencell +{ + vertical-align: middle; + padding: 0 5px; + border-right: 1px solid #ddd; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; +} + +#addpers,#toggleDelete,#checkAllResButton,#showUebertragenOptionsButton,#punkteUebertragenButton +{ + margin-left: 10px; +} + +#miscfunctionscol input,#miscfunctionscol button +{ + /*make sure datepicker dropdown is in front*/ + z-index: 0; +} + +.loaderIcon +{ + display: none; + margin-top: 10px; +} + +.hiddenEl +{ + display: none; +} + +.textcentered +{ + text-align: center; +} + +th.smallcol +{ + width: 20px; +} + +th.toggletblchkboxcol +{ + width: 30px; +} + +.rightaligned +{ + text-align: right; + padding-right: 3px; +} + +.redcolor +{ + color: red; +} + +.darkredcolor +{ + color: #c82333; +} + +.darkyellowcolor +{ + color: #e0a800; +} + +.zerovalcolor +{ + color: #C10000; +} diff --git a/vilesci/lehre/abgabe_assistenz_details.php b/vilesci/lehre/abgabe_assistenz_details.php index e0b1beda2..164de5143 100644 --- a/vilesci/lehre/abgabe_assistenz_details.php +++ b/vilesci/lehre/abgabe_assistenz_details.php @@ -261,7 +261,8 @@ if(isset($_POST["schick"])) FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) - WHERE mitarbeiter_uid=".$db->db_add_param($erst); + WHERE mitarbeiter_uid=".$db->db_add_param($erst)." + ORDER BY mitarbeiter_uid NULLS LAST"; if(!$betr=$db->db_query($qry_betr)) { echo "Fehler beim Laden des Erstbegutachters!
"; diff --git a/vilesci/lehre/abgabe_assistenz_multitermin.php b/vilesci/lehre/abgabe_assistenz_multitermin.php index d5854815d..2f62253dc 100644 --- a/vilesci/lehre/abgabe_assistenz_multitermin.php +++ b/vilesci/lehre/abgabe_assistenz_multitermin.php @@ -228,7 +228,8 @@ if(isset($_POST["schick"]) && $error=='') LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL) - AND (tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' OR tbl_projektbetreuer.betreuerart_kurzbz = 'Begutachter')"; + AND (tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' OR tbl_projektbetreuer.betreuerart_kurzbz = 'Begutachter') + ORDER BY mitarbeiter_uid NULLS LAST"; if(!$betr=$db->db_query($qry_betr)) { echo "Fehler beim Laden des Begutachters (Diplomand: $row->nachname)!
 "; diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index 88e7ef4d8..12abe0cda 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -102,7 +102,7 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudent if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudentAdd') { $search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : '')); - $studiensemester_kurzbz = trim((isset($_REQUEST['studiensemester_kurzbz']) ? $_REQUEST['studiensemester_kurzbz'] : '')); + $studiensemester_kurzbz = (isset($_REQUEST['studiensemester_kurzbz']) ? $_REQUEST['studiensemester_kurzbz'] : ''); if (is_null($search) || $search == '') { exit(); @@ -120,11 +120,21 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudent lower(vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR lower(nachname || ' ' || vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR lower(vorname || ' ' || nachname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR - prestudent_id::text like '%" . $db->db_escape(mb_strtolower($search)) . "%') - AND get_rolle_prestudent(prestudent_id, " . $db->db_add_param($studiensemester_kurzbz) . ") IN ('Interessent') - ORDER BY nachname,vorname,stg - LIMIT 10 - "; + prestudent_id::text like '%" . $db->db_escape(mb_strtolower($search)) . "%')"; + $first = true; + if (is_array($studiensemester_kurzbz)) + $qry .= " AND ("; + foreach ($studiensemester_kurzbz as $stsem) { + $stsem = trim($stsem); + if (!$first) + $qry .= 'OR '; + $qry .= "get_rolle_prestudent(prestudent_id, " . $db->db_add_param($stsem) . ") IN ('Interessent')"; + } + if (is_array($studiensemester_kurzbz)) + $qry .= ")"; + $qry .= + " ORDER BY nachname,vorname,stg + LIMIT 10"; if ($result = $db->db_query($qry)) { @@ -451,9 +461,10 @@ if ($rtFreischalten) if ($result = $db->db_query($qry)) { + $msg = $_POST['art'] === 'false' ? 'Reihungstest wurde gesperrt' : 'Reihungstest wurde freigeschaltet'; echo json_encode(array( 'status' => 'ok', - 'msg' => 'Reihungstest wurde freigeschaltet')); + 'msg' => $msg)); exit(); } else @@ -471,149 +482,189 @@ if ($rtFreischalten) $testende = filter_input(INPUT_POST, 'testende', FILTER_VALIDATE_BOOLEAN); if ($testende) { - if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])) + // Alle Bachelor-Studiengänge holen, bei denen der Bewerber Interessent ist, die Bewerbung abgeschickt hat und bestätigt wurde + // Mail an alle diese Studiengänge senden + if (isset($_POST['prestudents'])) { - $reihungstest = new reihungstest($_POST['reihungstest_id']); - // Alle Bachelor-Studiengänge holen, bei denen der Bewerber Interessent ist, die Bewerbung abgeschickt hat und bestätigt wurde - // Mail an alle diese Studiengänge senden - - if (isset($_POST['prestudent_ids'])) + // Array mit allen Prestudenten aufbauen + $prestudentsrt = $_POST['prestudents']; + $prestudentArray = array(); + foreach ($prestudentsrt AS $prestrt) { - // Array mit allen Prestudenten aufbauen - $prestudentArray = array(); - foreach ($_POST['prestudent_ids'] AS $prest) + $prestudent_id = $prestrt['prestudent_id']; + $reihungstest_id = $prestrt['reihungstest_id']; + $prestudentrolle = new prestudent($prestudent_id); + $reihungstest = new reihungstest($reihungstest_id); + // Wenn der letzte Status Abgewiesener ist, wird der Bewerber ignoriert + $prestudentrolle->getLastStatus($prestudent_id, $reihungstest->studiensemester_kurzbz); + if ($prestudentrolle->status_kurzbz == 'Abgewiesener') { - $prestudentrolle = new prestudent($prest); - // Wenn der letzte Status Abgewiesener ist, wird der Bewerber ignoriert - $prestudentrolle->getLastStatus($prest, $reihungstest->studiensemester_kurzbz); - if ($prestudentrolle->status_kurzbz == 'Abgewiesener') - { - continue; - } - // Letzten Interessentenstatus laden - $prestudentrolle->getLastStatus($prest, $reihungstest->studiensemester_kurzbz, 'Interessent'); - $stg = new studiengang($prestudentrolle->studiengang_kz); - - if ($prestudentrolle->bewerbung_abgeschicktamum != '' - && $prestudentrolle->bestaetigtam != '' - && $prestudentrolle->bestaetigtvon != '' - && $stg->typ == 'b') - { - $prestudentArray[$prestudentrolle->studiengang_kz][$prestudentrolle->orgform_kurzbz][] = $prest; - } - - // Setzt "teilgenommen" (Zum Reihungstest angetreten) auf TRUE - $teilgenommen = new reihungstest(); - $teilgenommen->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id); - - $teilgenommen->new = false; - $teilgenommen->teilgenommen = true; - $teilgenommen->updateamum = date('Y-m-d H:i:s'); - $teilgenommen->updatevon = $user; - - if (!$teilgenommen->savePersonReihungstest()) - { - echo json_encode(array( - 'status' => 'fehler', - 'msg' => 'Fehler beim speichern der Reihungstestteilnahme: '.$teilgenommen->errormsg - )); - exit(); - } + continue; } - } + // Letzten Interessentenstatus laden + $prestudentrolle->getLastStatus($prestudent_id, $reihungstest->studiensemester_kurzbz, 'Interessent'); + $stg = new studiengang($prestudentrolle->studiengang_kz); - $sendError = false; - $empfaengerArray = array(); - foreach ($prestudentArray AS $studiengang_kz => $OrgFormPrestudent) - { - foreach ($OrgFormPrestudent AS $orgForm => $prestudent_id) + if ($prestudentrolle->bewerbung_abgeschicktamum != '' + && $prestudentrolle->bestaetigtam != '' + && $prestudentrolle->bestaetigtvon != '' + && $stg->typ == 'b') { - $empfaenger = getMailEmpfaenger($studiengang_kz, null, $orgForm); - //Pfuschloesung fur BIF Dual - if (CAMPUS_NAME == 'FH Technikum Wien' && $studiengang_kz == 257 && $orgForm == 'DUA') - { - $empfaenger = 'info.bid@technikum-wien.at'; - } - elseif (CAMPUS_NAME == 'FH Technikum Wien' && $studiengang_kz == 257 && $orgForm != 'DUA') - { - $empfaenger = 'info.bif@technikum-wien.at'; - } - $empfaengerArray[] = $empfaenger; - $anzahl = count($OrgFormPrestudent[$orgForm]); - $stg = new studiengang($studiengang_kz); - $mailtext = ' - - Sancho Mail - - - - - - - - - - - - -
- - - - -
- sancho_header -
-
'; - $mailtext .= 'Der Reihungstest vom ' . $datum_obj->convertISODate($reihungstest->datum) . ' um ' . $datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i') . ' Uhr ist beendet.'; - $mailtext .= '
Es haben '.$anzahl.' Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen.'; - $mailtext .= '

Link zur Auswertung'; - $mailtext .= '

Link zur Pivot-Tabelle für die Priorisierung'; - $mailtext .= '

Reihung der BewerberInnen: Prio 1 innerhalb von 2 Werktagen, Prio 2 am 3. Werktag und Prio 3 am 4. Werktag'; - $mailtext .= '
- - - - -
- sancho_footer -
-
- - '; - - $mailtext = wordwrap($mailtext, 70); // Bricht den Code um, da es sonst zu Anzeigefehlern im Mail kommen kann - - $mail = new mail($empfaenger, 'no-reply', 'Reihungstest vom '.$datum_obj->convertISODate($reihungstest->datum).' um '.$datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i').' beendet', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); - $mail->setHTMLContent($mailtext); - $mail->addEmbeddedImage(APP_ROOT . 'skin/images/sancho/sancho_header_min_bw.jpg', 'image/jpg', 'header_image', 'sancho_header'); - $mail->addEmbeddedImage(APP_ROOT . 'skin/images/sancho/sancho_footer_min_bw.jpg', 'image/jpg', 'footer_image', 'sancho_footer'); - $mail->setBCCRecievers('kindlm@technikum-wien.at'); - - if (!$mail->send()) - { - $sendError = true; - } + $prestudentArray[$prestudentrolle->studiengang_kz][$prestudentrolle->orgform_kurzbz][] = $prestrt; + } + + // Setzt "teilgenommen" (Zum Reihungstest angetreten) auf TRUE + $teilgenommen = new reihungstest(); + $teilgenommen->getPersonReihungstest($prestudentrolle->person_id, $reihungstest_id, $prestudentrolle->studienplan_id); + + $teilgenommen->new = false; + $teilgenommen->teilgenommen = true; + $teilgenommen->updateamum = date('Y-m-d H:i:s'); + $teilgenommen->updatevon = $user; + + if (!$teilgenommen->savePersonReihungstest()) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Speichern der Reihungstestteilnahme: '.$teilgenommen->errormsg + )); + exit(); } - } - if ($sendError) - { - echo json_encode(array( - 'status' => 'fehler', - 'msg' => '

Fehler beim Senden einer Nachricht

' - )); - exit(); - } - else - { - $empfaengerArray = array_unique($empfaengerArray); - echo json_encode(array( - 'status' => 'ok', - 'msg' => 'Nachricht erfolgreich verschickt an: ' . implode(',',$empfaengerArray))); - exit(); } } + + $sendError = false; + $empfaengerArray = array(); + $rtidArray = array(); + $rtdatumstrArray = array(); + $rtdatumstr = ''; + + foreach ($prestudentsrt as $psrt) + { + if (!in_array($psrt['reihungstest_id'], $rtidArray)) + { + $rtidArray[] = $psrt['reihungstest_id']; + $rt = new reihungstest($psrt['reihungstest_id']); + $idx = 0; + + //sort by date and time for correct order in mailtext + foreach ($rtdatumstrArray as $ds) + { + if ($ds->datum < $rt->datum) + $idx++; + elseif ($ds->datum == $rt->datum) + { + if ($ds->uhrzeit < $rt->uhrzeit) + $idx++; + else + break; + } + else + break; + } + $rtdatum = new stdClass(); + $rtdatum->datum = $rt->datum; + $rtdatum->uhrzeit = $rt->uhrzeit; + array_splice($rtdatumstrArray, $idx, 0, array($rtdatum)); + } + } + + foreach ($rtdatumstrArray as $rtdatumobj) { + $rtdatumstr .= 'Der Reihungstest vom '.$datum_obj->convertISODate($rtdatumobj->datum).' um '.$datum_obj->formatDatum($rtdatumobj->uhrzeit, 'H:i').' Uhr ist beendet.
'; + } + + $rtidparams = http_build_query(array('reihungstest' => $rtidArray)); + + foreach ($prestudentArray AS $studiengang_kz => $OrgFormPrestudent) + { + foreach ($OrgFormPrestudent AS $orgForm => $prestudentrt) + { + $empfaenger = getMailEmpfaenger($studiengang_kz, null, $orgForm); + //Pfuschloesung fur BIF Dual + if (CAMPUS_NAME == 'FH Technikum Wien' && $studiengang_kz == 257 && $orgForm == 'DUA') + { + $empfaenger = 'info.bid@technikum-wien.at'; + } + elseif (CAMPUS_NAME == 'FH Technikum Wien' && $studiengang_kz == 257 && $orgForm != 'DUA') + { + $empfaenger = 'info.bif@technikum-wien.at'; + } + $empfaengerArray[] = $empfaenger; + $anzahl = count($OrgFormPrestudent[$orgForm]); + $stg = new studiengang($studiengang_kz); + $mailtext = ' + + Sancho Mail + + + + + + + + + + + + +
+ + + + +
+ sancho_header +
+
'; + $mailtext .= $rtdatumstr; + $mailtext .= 'Es haben '.$anzahl.' Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen.'; + $mailtext .= '

Link zur Auswertung'; + $mailtext .= '

Link zur Pivot-Tabelle für die Priorisierung'; + $mailtext .= '

Reihung der BewerberInnen: Prio 1 innerhalb von 2 Werktagen, Prio 2 am 3. Werktag und Prio 3 am 4. Werktag'; + $mailtext .= '
+ + + + +
+ sancho_footer +
+
+ + '; + + $mailtext = wordwrap($mailtext, 70); // Bricht den Code um, da es sonst zu Anzeigefehlern im Mail kommen kann + + $mail = new mail($empfaenger, 'no-reply', 'Reihungstest beendet', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); + $mail->setHTMLContent($mailtext); + $mail->addEmbeddedImage(APP_ROOT.'skin/images/sancho/sancho_header_min_bw.jpg', 'image/jpg', 'header_image', 'sancho_header'); + $mail->addEmbeddedImage(APP_ROOT.'skin/images/sancho/sancho_footer_min_bw.jpg', 'image/jpg', 'footer_image', 'sancho_footer'); + $mail->setBCCRecievers('kindlm@technikum-wien.at'); + + if (!$mail->send()) + { + $sendError = true; + } + } + } + if ($sendError) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => '

Fehler beim Senden einer Nachricht

' + )); + exit(); + } + else + { + $empfaengerArray = array_unique($empfaengerArray); + echo json_encode(array( + 'status' => 'ok', + 'msg' => 'Nachricht erfolgreich verschickt an: '.implode(',', $empfaengerArray) + )); + exit(); + } } // Fügt einen Teilnehmer zum Reihungstest hinzu @@ -718,9 +769,9 @@ if (isset($_POST['method']) && $_POST['method'] == 'addPerson') $punkteUebertragen = filter_input(INPUT_POST, 'punkteUebertragen', FILTER_VALIDATE_BOOLEAN); if ($punkteUebertragen) { - if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])) - { - $reihungstest = new reihungstest($_POST['reihungstest_id']); +/* if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])) + {*/ + //$reihungstest = new reihungstest(/*$_POST['reihungstest_id']*/); $msg_warning = ''; $msg_error = ''; $count_success_punkte = 0; @@ -731,6 +782,7 @@ if ($punkteUebertragen) { foreach ($_POST['prestudentPunkteArr'] AS $key => $array) { + $reihungstest = new reihungstest($array['reihungstest_id']); $rtpunkte = number_format(floatval(str_replace(',', '.', $array['ergebnis'])), 4); $prestudentrolle = new prestudent($array['prestudent_id']); $prestudentrolle->getLastStatus($array['prestudent_id'], null, 'Interessent'); @@ -742,10 +794,10 @@ if ($punkteUebertragen) } // Checken, ob Person-Reihungstest-Studienplan zuteilung existiert - if ($reihungstest->checkPersonRtStudienplanExists($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id)) + if ($reihungstest->checkPersonRtStudienplanExists($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id)) { $setRTPunkte = new reihungstest(); - $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id); + $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id); // Check, ob Punkte schon befüllt sind if ($setRTPunkte->punkte == '') @@ -774,20 +826,20 @@ if ($punkteUebertragen) $setRTPunkte = new reihungstest(); $ort_kurzbz = ''; // Checken, ob schon irgendeine Raumzuteilung existiert (Check ohne Studienplan) und diese ggf. übernehmen - $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id']); + $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $array['reihungstest_id']); if ($setRTPunkte->ort_kurzbz != '') { $ort_kurzbz = $setRTPunkte->ort_kurzbz; } $setRTPunkte = new reihungstest(); - $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id); + $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id); // Check, ob Punkte schon befüllt sind if ($setRTPunkte->punkte == '') { $setRTPunkte->new = true; $setRTPunkte->person_id = $prestudentrolle->person_id; - $setRTPunkte->reihungstest_id = $_POST['reihungstest_id']; + $setRTPunkte->reihungstest_id = $array['reihungstest_id']; $setRTPunkte->anmeldedatum = ''; $setRTPunkte->teilgenommen = true; $setRTPunkte->ort_kurzbz = $ort_kurzbz; @@ -934,7 +986,6 @@ if ($punkteUebertragen) 'msg_warning' => $msg_warning, 'msg_error' => $msg_error)); exit(); - } } function sortByField($multArray, $sortField, $desc = true) @@ -1055,14 +1106,23 @@ $orgform_kurzbz = isset($_REQUEST['orgform_kurzbz']) ? $_REQUEST['orgform_kurzbz $format = (isset($_REQUEST['format']) ? $_REQUEST['format'] : ''); $rtStudiensemester = ''; -if ($reihungstest != '' && is_numeric($reihungstest)) +if ($reihungstest != '' && (is_array($reihungstest) || is_numeric($reihungstest))) { - $reihungstestObj = new reihungstest($reihungstest); - $rtStudiensemester = $reihungstestObj->studiensemester_kurzbz; + $rtStudiensemester = array(); + + if (is_numeric($reihungstest)) + $reihungstest = array($reihungstest); + + foreach ($reihungstest as $rt_id) + { + $reihungstestObj = new reihungstest($rt_id); + if (!in_array($reihungstestObj->studiensemester_kurzbz, $rtStudiensemester)) + $rtStudiensemester[] = $reihungstestObj->studiensemester_kurzbz; + } } -elseif ($reihungstest != '' && !is_numeric($reihungstest)) +elseif ($reihungstest != '' && !is_array($reihungstest) && !is_numeric($reihungstest)) { - die('ReihungstestID ist ungueltig'); + die('ReihungstestIDs sind ungueltig'); } if ($studiengang != '' && is_numeric($studiengang)) { @@ -1080,7 +1140,7 @@ if ($prestudent_id != '' && !is_numeric($prestudent_id)) { die('PrestudentID ist ungueltig'); } -if (($reihungstest == '' && isset($_REQUEST['reihungstest'])) && $studiengang == '' && $semester == '' && $prestudent_id == '' && $datum_von == '' && $datum_bis == '') +if (isset($_POST['rtauswsubmit']) && $reihungstest == '' && $studiengang == '' && $semester == '' && $prestudent_id == '' && $datum_von == '' && $datum_bis == '') { die('Waehlen Sie bitte mindestens eine der Optionen aus'); } @@ -1116,7 +1176,7 @@ $sql_query = "SELECT * FROM public.tbl_reihungstest WHERE date_part('year',datum // Wenn Reihungstest ID gesetzt ist, diesen Test zusaetzlich laden, um auch jene außerhalbs des Datumszeitraums zu erwischen if ($reihungstest != '') { - $sql_query .= "UNION SELECT * FROM public.tbl_reihungstest WHERE reihungstest_id=" . $db->db_add_param($reihungstest, FHC_INTEGER); + $sql_query .= "UNION SELECT * FROM public.tbl_reihungstest WHERE reihungstest_id IN (" . $db->implode4SQL($reihungstest) . ")"; } $sql_query .= " ORDER BY datum,uhrzeit"; @@ -1141,7 +1201,7 @@ while ($row = $db->db_fetch_object($result)) $rtest[$row->reihungstest_id]->freigeschaltet = $db->db_parse_bool($row->freigeschaltet); } -if (isset($_REQUEST['reihungstest'])) +if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit'])) { // Vorkommende Gebiete laden $query = " @@ -1171,7 +1231,7 @@ if (isset($_REQUEST['reihungstest'])) AND NOT (testtool.tbl_ablauf.gebiet_id IN ( SELECT testtool.tbl_kategorie.gebiet_id FROM testtool.tbl_kategorie))"; if ($reihungstest != '') { - $query .= " AND rt_id = " . $db->db_add_param($reihungstest, FHC_INTEGER); + $query .= " AND rt_id IN (" . $db->implode4SQL($reihungstest) . ")"; } if ($studiengang != '') { @@ -1343,7 +1403,8 @@ if (isset($_REQUEST['reihungstest'])) AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id ) END AS punkte, - tbl_gebiet.gebiet_id, + rt.reihungstest_id, + tbl_gebiet.gebiet_id, tbl_gebiet.bezeichnung AS gebiet, tbl_pruefling.idnachweis, tbl_pruefling.registriert, @@ -1399,7 +1460,7 @@ if (isset($_REQUEST['reihungstest'])) "; if ($reihungstest != '') { - $query .= " AND rt_id = " . $db->db_add_param($reihungstest, FHC_INTEGER); + $query .= " AND rt_id IN (" . $db->implode4SQL($reihungstest) . ")"; } if ($studiengang != '') { @@ -1451,6 +1512,7 @@ if (isset($_REQUEST['reihungstest'])) $ergebnis[$row->prestudent_id]->prestudent_id = $row->prestudent_id; $ergebnis[$row->prestudent_id]->person_id = $row->person_id; + $ergebnis[$row->prestudent_id]->reihungstest_id = $row->reihungstest_id; //$ergebnis[$row->prestudent_id]->pruefling_id = $row->pruefling_id; $ergebnis[$row->prestudent_id]->nachname = $row->nachname; $ergebnis[$row->prestudent_id]->vorname = $row->vorname; @@ -1598,7 +1660,32 @@ if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls') $workbook = new Spreadsheet_Excel_Writer(); // sending HTTP headers - $workbook->send("Auswertung " . ((isset ($_REQUEST['reihungstest']) && $_REQUEST['reihungstest'] != '') ? $stg_arr[$rtest[$reihungstest]->studiengang_kz] . " " . $datum_obj->formatDatum($rtest[$reihungstest]->datum, 'd.m.Y') : 'aller Reihungstests') . ".xls"); + $stgstr = ''; + if ((isset ($_REQUEST['reihungstest']) && $_REQUEST['reihungstest'] != '')) + { + $rtdates = array(); + foreach ($reihungstest as $index => $rt_id) + { + $rtdate = $datum_obj->formatDatum($rtest[$rt_id]->datum, 'd.m.Y'); + if (!isset($rtdates[$rtdate])) + $rtdates[$rtdate] = array(); + + $rtdates[$rtdate][] = $stg_arr[$rtest[$rt_id]->studiengang_kz]; + /*$stgstr .= " " . $stg_arr[$rtest[$rt_id]->studiengang_kz]; + if (isset($reihungstest[$index + 1]) && $reihungstest[$index + 1] !== ) + $stgstr .= ' ' . $rtdate; + *//*if (!in_array($rtdate, $rtdates)) + $rtdates[] = $rtdate;*//*. " " . $datum_obj->formatDatum($rtest[$rt_id]->datum, 'd.m.Y');*/ + } + foreach ($rtdates as $rtdate => $stgs) + { + $stgstr .= " " . implode("_", $stgs) . "_" . $rtdate; + } + } + else + $stgstr = "aller Reihungstests"; + + $workbook->send("Auswertung" . $stgstr . ".xls"); $workbook->setVersion(8); $workbook->setCustomColor(15, 192, 192, 192); //Setzen der HG-Farbe Hellgrau $workbook->setCustomColor(22, 193, 0, 0); //Setzen der HG-Farbe Dunkelrot @@ -1929,6 +2016,7 @@ else + @@ -1951,11 +2039,38 @@ else -

Auswertung Reihungstest

-
+
- +
- + $btntxt = $selectedrtstr === '' ? '-- keine Auswahl --' : $selectedrtstr; + echo ' +
'; + echo $checkbxstr; + + echo '
'; echo ' -
- Reihungstest wählen: - + Reihungstest wählen: '; + $selectedrtstr = ''; + $checkbxstr = ''; + $first = true; + $noparamsselected = $prestudent_id == '' && $reihungstest == '' && $datum_von == '' && $datum_bis == '' && $studiengang == '' && $semester == ''; + //$maxeachline = 1; foreach ($rtest as $rt) { - if ($rt->reihungstest_id == $reihungstest && !$select) + $rtstr = $rt->datum . ' ' . $datum_obj->formatDatum($rt->uhrzeit,'H:i') . ' ' . (isset($stg_arr[$rt->studiengang_kz]) ? $stg_arr[$rt->studiengang_kz] : '') . ' ' . $rt->ort_kurzbz . ' ' . $rt->anmerkung; + + $checked = ''; + if (isset($reihungstest) && is_array($reihungstest)) { - $selected = 'selected'; - $select = true; + foreach ($reihungstest as $rttest) + { + if ($rttest === $rt->reihungstest_id) + { + $checked = ' checked'; + + if (!$first) + $selectedrtstr .= '
'; + + $selectedrtstr .= $rtstr; + $first = false; + break; + } + } } - elseif ($prestudent_id == '' && $reihungstest == '' && $rt->datum == date('Y-m-d') && $datum_von == '' && $datum_bis == '' && $studiengang == '' && $semester == '' && !$select) + elseif($noparamsselected && $rt->datum == date('Y-m-d')) { - $selected = 'selected'; - $select = true; - } - else - { - $selected = ''; + //wenn nichts ausgewählt, heute Reihungstests vorausgewählt + $checked = ' checked'; + + if (!$first) + $selectedrtstr .= '
'; + + $selectedrtstr .= $rtstr; + $first = false; } - echo '\n"; + $checkbxstr .= '
'; + $checkbxstr .= '
'; } - echo '
- Studiengang: + + + '; - echo 'von Datum:  '; - echo 'bis Datum: '; + echo '  '; + echo ''; echo '
'; - echo 'PrestudentIn: '; + echo 'PrestudentIn: '; echo '
'; - echo '

'; +
'; + echo '

'; echo ' -
'; - echo '
'; + &' . http_build_query(array('reihungstest' => $reihungstest)) . '"> +
'; + echo '
'; + $disabledZuteilen = true; + $disabledTestende = true; + $rt_id_val = ''; if ($reihungstest != '') { - $disabled = false; - } - else - { - $disabled = true; + $disabledTestende = false; + if (count($reihungstest) == 1) + { + $rt_id_val = $reihungstest[0]; + $disabledZuteilen = false; + } } // Button um Assistenz über Testende zu informieren // Nur aktiv, wenn Reihungstest ausgewählt if ($rechte->isBerechtigtMultipleOe('lehre/reihungstestAufsicht', $berechtigteOes, 'su')) { - echo ''; + echo ''; } // Input um Personen hinzuzufügen @@ -2696,13 +2823,13 @@ else if ($rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'sui')) { echo ' -
- +
+ - + - @@ -2711,15 +2838,15 @@ else } if ($rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'suid')) { - echo ''; + echo ''; } echo '

'; echo ''; - echo ''; - echo ''; + echo ''; + echo ''; echo '
'; echo '
-