diff --git a/public/css/tools/auswertung_fhtw.css b/public/css/tools/auswertung_fhtw.css new file mode 100644 index 000000000..d50927ef1 --- /dev/null +++ b/public/css/tools/auswertung_fhtw.css @@ -0,0 +1,178 @@ +.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; +} + +#rtwaehlen +{ + white-space: nowrap; + padding: 10px; +} + +.rtchkbox +{ + float: left; +} + +.rtchkboxlabel:hover +{ + color: white; + background-color: #337ab7; + cursor: pointer; +} + +/*.rtchkbox:hover,.rtchkbox input:hover,.rtchkbox label:hover +{ + cursor: pointer; +}*/ + +.rtchkbox label +{ + font-weight: normal; +} + +#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; +} + +.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/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index 88e7ef4d8..7bcb33323 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)) { @@ -471,63 +481,80 @@ if ($rtFreischalten) $testende = filter_input(INPUT_POST, 'testende', FILTER_VALIDATE_BOOLEAN); if ($testende) { - if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])) + /*if (isset($_POST['reihungstest_ids']) && is_array($_POST['reihungstest_ids'])) { - $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 + $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'])) + if (isset($_POST['prestudents'])) + { + // 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); + continue; + } + // Letzten Interessentenstatus laden + $prestudentrolle->getLastStatus($prestudent_id, $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; - } + if ($prestudentrolle->bewerbung_abgeschicktamum != '' + && $prestudentrolle->bestaetigtam != '' + && $prestudentrolle->bestaetigtvon != '' + && $stg->typ == 'b') + { + $prestudentArray[$reihungstest_id][$prestudentrolle->studiengang_kz][$prestudentrolle->orgform_kurzbz][] = $prestudent_id; + } - // Setzt "teilgenommen" (Zum Reihungstest angetreten) auf TRUE - $teilgenommen = new reihungstest(); - $teilgenommen->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id); + // 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; + $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 (!$teilgenommen->savePersonReihungstest()) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Speichern der Reihungstestteilnahme: '.$teilgenommen->errormsg + )); + exit(); } } + } - $sendError = false; - $empfaengerArray = array(); - foreach ($prestudentArray AS $studiengang_kz => $OrgFormPrestudent) + $sendError = false; + $empfaengerArray = array(); + $rtidArray = array(); + + foreach ($prestudentsrt as $psrt) + { + if (!in_array($psrt['reihungstest_id'], $rtidArray)) + $rtidArray[] = $psrt['reihungstest_id']; + } + + $rtidparams = http_build_query(array('reihungstest' => $rtidArray)); + + foreach ($prestudentArray AS $reihungstest_id => $studiengang) + { + foreach ($studiengang AS $studiengang_kz => $OrgFormPrestudent) { foreach ($OrgFormPrestudent AS $orgForm => $prestudent_id) { + $rtest = new reihungstest($reihungstest_id); $empfaenger = getMailEmpfaenger($studiengang_kz, null, $orgForm); //Pfuschloesung fur BIF Dual if (CAMPUS_NAME == 'FH Technikum Wien' && $studiengang_kz == 257 && $orgForm == 'DUA') @@ -561,12 +588,12 @@ if ($testende)