diff --git a/application/views/organisation/reihungstest/ReihungstestUebersichtData.php b/application/views/organisation/reihungstest/ReihungstestUebersichtData.php
index be41e06c7..961abbfda 100644
--- a/application/views/organisation/reihungstest/ReihungstestUebersichtData.php
+++ b/application/views/organisation/reihungstest/ReihungstestUebersichtData.php
@@ -39,9 +39,66 @@
oeffentlich, studiensemester_kurzbz, anmeldefrist,
- (SELECT count(*)
- FROM public.tbl_rt_person
- WHERE rt_id=tbl_reihungstest.reihungstest_id
+ (
+ SELECT count(DISTINCT(tbl_rt_person.rt_person_id))
+ FROM public.tbl_rt_person
+ JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.rt_id = rt.reihungstest_id)
+ JOIN PUBLIC.tbl_prestudent ON (tbl_rt_person.person_id = tbl_prestudent.person_id)
+ JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
+ WHERE tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id
+ AND CASE WHEN
+ (
+ get_rolle_prestudent (tbl_prestudent.prestudent_id, null) IN ('Abgewiesener')
+ AND
+ rt.datum > (
+ SELECT MAX(insertamum)
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = tbl_prestudent.prestudent_id
+ AND status_kurzbz = 'Abgewiesener'
+ LIMIT 1
+ )
+ )
+ THEN
+ false
+ ELSE
+ true
+ END
+ AND tbl_rt_person.studienplan_id IN (
+ SELECT studienplan_id
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = tbl_prestudent.prestudent_id
+ )
+ AND tbl_prestudentstatus.studiensemester_kurzbz IN (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
+
+ UNION
+
+ (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE ende <= (
+ SELECT start
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
+ )
+ ORDER BY ende DESC LIMIT 1
+ )
+
+ UNION
+
+ (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE start >= (
+ SELECT ende
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
+ )
+ ORDER BY start ASC LIMIT 1
+ )
+ )
) as anzahl_angemeldet,
/* Bezeichnung der Studiengaenge der zugeordneten Personen*/
diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php
index f5cd72b4a..2b5080708 100644
--- a/include/reihungstest.class.php
+++ b/include/reihungstest.class.php
@@ -377,8 +377,64 @@ class reihungstest extends basis_db
$qry = "
SELECT *,
(
- SELECT count(*) FROM public.tbl_prestudent
- WHERE reihungstest_id=a.reihungstest_id
+ SELECT count(DISTINCT(tbl_rt_person.rt_person_id))
+ FROM public.tbl_rt_person
+ JOIN PUBLIC.tbl_prestudent ON (tbl_rt_person.person_id = tbl_prestudent.person_id)
+ JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
+ WHERE tbl_rt_person.rt_id = a.reihungstest_id
+ AND CASE WHEN
+ (
+ get_rolle_prestudent (tbl_prestudent.prestudent_id, a.studiensemester_kurzbz) IN ('Abgewiesener')
+ AND
+ a.datum > (
+ SELECT MAX(insertamum)
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = tbl_prestudent.prestudent_id
+ AND status_kurzbz = 'Abgewiesener'
+ LIMIT 1
+ )
+ )
+ THEN
+ false
+ ELSE
+ true
+ END
+ AND tbl_rt_person.studienplan_id IN (
+ SELECT studienplan_id
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = tbl_prestudent.prestudent_id
+ )
+ AND tbl_prestudentstatus.studiensemester_kurzbz IN (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = a.studiensemester_kurzbz
+
+ UNION
+
+ (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE ende <= (
+ SELECT start
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = a.studiensemester_kurzbz
+ )
+ ORDER BY ende DESC LIMIT 1
+ )
+
+ UNION
+
+ (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE start >= (
+ SELECT ende
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = a.studiensemester_kurzbz
+ )
+ ORDER BY start ASC LIMIT 1
+ )
+ )
) as angemeldete_teilnehmer
FROM
(
@@ -504,13 +560,65 @@ class reihungstest extends basis_db
*/
public function getTeilnehmerAnzahl($reihungstest_id)
{
- $qry = 'SELECT
- count(*) AS anzahl
- FROM
- public.tbl_rt_person
- WHERE
- rt_id = '.$this->db_add_param($reihungstest_id, FHC_INTEGER);
-
+ $qry = 'SELECT count(DISTINCT(tbl_rt_person.rt_person_id)) as anzahl
+ FROM public.tbl_rt_person
+ JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.rt_id = rt.reihungstest_id)
+ JOIN PUBLIC.tbl_prestudent ON (tbl_rt_person.person_id = tbl_prestudent.person_id)
+ JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
+ WHERE tbl_rt_person.rt_id = '.$this->db_add_param($reihungstest_id, FHC_INTEGER).'
+ AND CASE WHEN
+ (
+ get_rolle_prestudent (tbl_prestudent.prestudent_id, rt.studiensemester_kurzbz) IN (\'Abgewiesener\')
+ AND
+ rt.datum > (
+ SELECT MAX(insertamum)
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = tbl_prestudent.prestudent_id
+ AND status_kurzbz = \'Abgewiesener\'
+ LIMIT 1
+ )
+ )
+ THEN
+ false
+ ELSE
+ true
+ END
+ AND tbl_rt_person.studienplan_id IN (
+ SELECT studienplan_id
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = tbl_prestudent.prestudent_id
+ )
+ AND tbl_prestudentstatus.studiensemester_kurzbz IN (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
+
+ UNION
+
+ (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE ende <= (
+ SELECT start
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
+ )
+ ORDER BY ende DESC LIMIT 1
+ )
+
+ UNION
+
+ (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE start >= (
+ SELECT ende
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
+ )
+ ORDER BY start ASC LIMIT 1
+ )
+ )';
if ($result = $this->db_query($qry))
{
if ($row = $this->db_fetch_object($result))
@@ -1126,8 +1234,64 @@ class reihungstest extends basis_db
$qry = "SELECT
distinct a.*,
(
- SELECT count(*) FROM public.tbl_rt_person
- WHERE rt_id=a.reihungstest_id
+ SELECT count(DISTINCT(tbl_rt_person.rt_person_id))
+ FROM public.tbl_rt_person
+ JOIN PUBLIC.tbl_prestudent ON (tbl_rt_person.person_id = tbl_prestudent.person_id)
+ JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
+ WHERE tbl_rt_person.rt_id = a.reihungstest_id
+ AND CASE WHEN
+ (
+ get_rolle_prestudent (tbl_prestudent.prestudent_id, a.studiensemester_kurzbz) IN ('Abgewiesener')
+ AND
+ a.datum > (
+ SELECT MAX(insertamum)
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = tbl_prestudent.prestudent_id
+ AND status_kurzbz = 'Abgewiesener'
+ LIMIT 1
+ )
+ )
+ THEN
+ false
+ ELSE
+ true
+ END
+ AND tbl_rt_person.studienplan_id IN (
+ SELECT studienplan_id
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = tbl_prestudent.prestudent_id
+ )
+ AND tbl_prestudentstatus.studiensemester_kurzbz IN (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = a.studiensemester_kurzbz
+
+ UNION
+
+ (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE ende <= (
+ SELECT start
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = a.studiensemester_kurzbz
+ )
+ ORDER BY ende DESC LIMIT 1
+ )
+
+ UNION
+
+ (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_studiensemester
+ WHERE start >= (
+ SELECT ende
+ FROM PUBLIC.tbl_studiensemester
+ WHERE studiensemester_kurzbz = a.studiensemester_kurzbz
+ )
+ ORDER BY start ASC LIMIT 1
+ )
+ )
) as angemeldete_teilnehmer
FROM
public.tbl_reihungstest a
diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php
index 1acfe1a55..b62bdceac 100644
--- a/vilesci/stammdaten/auswertung_fhtw.php
+++ b/vilesci/stammdaten/auswertung_fhtw.php
@@ -121,19 +121,19 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudent
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)) . "%')";
- $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
+ $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))
@@ -162,7 +162,7 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudent
$item['student_uid'] = '';
$result_obj[] = $item;
}
- echo json_encode($result_obj);
+ echo json_encode($result_obj);
}
exit;
}
@@ -478,6 +478,43 @@ if ($rtFreischalten)
}
}
+// Ajax-Request um einen Reihungstest freizuschalten
+$clearList = filter_input(INPUT_POST, 'clearList', FILTER_VALIDATE_BOOLEAN);
+if ($clearList)
+{
+ if (!$rechte->isBerechtigt('infocenter', null, 'suid'))
+ {
+ echo json_encode(array(
+ 'status' => 'fehler',
+ 'msg' => $rechte->errormsg
+ ));
+ exit();
+ }
+
+ $qry = "DELETE FROM testtool.tbl_pruefling pf
+ WHERE
+ (
+ NOT EXISTS (SELECT 1 FROM testtool.tbl_pruefling_frage WHERE pruefling_id=pf.pruefling_id) AND
+ NOT EXISTS (SELECT 1 FROM testtool.tbl_antwort WHERE pruefling_id=pf.pruefling_id)
+ )";
+
+ if ($result = $db->db_query($qry))
+ {
+ echo json_encode(array(
+ 'status' => 'ok',
+ 'msg' => $db->db_affected_rows($result).' leere Prüflinge wurden gelöscht'));
+ exit();
+ }
+ else
+ {
+ echo json_encode(array(
+ 'status' => 'fehler',
+ 'msg' => 'Fehler beim Löschen der leeren Prüflinge'
+ ));
+ exit();
+ }
+}
+
// Informiert die Studiengangsassistenz über das Ende des Tests
$testende = filter_input(INPUT_POST, 'testende', FILTER_VALIDATE_BOOLEAN);
if ($testende)
@@ -648,23 +685,23 @@ if ($testende)
}
}
}
- 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();
- }
+ 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
@@ -769,223 +806,223 @@ 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']*/);
- $msg_warning = '';
- $msg_error = '';
- $count_success_punkte = 0;
- $count_success_gesamtpunkte = 0;
- $count_success_bewerber = 0;
+ /* if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id']))
+ {*/
+ //$reihungstest = new reihungstest(/*$_POST['reihungstest_id']*/);
+ $msg_warning = '';
+ $msg_error = '';
+ $count_success_punkte = 0;
+ $count_success_gesamtpunkte = 0;
+ $count_success_bewerber = 0;
- if (isset($_POST['prestudentPunkteArr']))
+ if (isset($_POST['prestudentPunkteArr']))
+ {
+ foreach ($_POST['prestudentPunkteArr'] AS $key => $array)
{
- 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');
+
+ if (!$rechte->isBerechtigt('lehre/reihungstest', $prestudentrolle->studiengang_kz, 'sui'))
{
- $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');
+ $msg_error .= '
Sie haben keine Rechte, um für diesen Studiengang Ergebnisse ins FAS zu übertragen';
+ continue;
+ }
- if (!$rechte->isBerechtigt('lehre/reihungstest', $prestudentrolle->studiengang_kz, 'sui'))
+ // Checken, ob Person-Reihungstest-Studienplan zuteilung existiert
+ if ($reihungstest->checkPersonRtStudienplanExists($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id))
+ {
+ $setRTPunkte = new reihungstest();
+ $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id);
+
+ // Check, ob Punkte schon befüllt sind
+ if ($setRTPunkte->punkte == '')
{
- $msg_error .= '
Sie haben keine Rechte, um für diesen Studiengang Ergebnisse ins FAS zu übertragen';
- continue;
- }
+ $setRTPunkte->new = false;
+ $setRTPunkte->punkte = $rtpunkte;
+ $setRTPunkte->updateamum = date('Y-m-d H:i:s');
+ $setRTPunkte->updatevon = $user;
- // Checken, ob Person-Reihungstest-Studienplan zuteilung existiert
- if ($reihungstest->checkPersonRtStudienplanExists($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id))
- {
- $setRTPunkte = new reihungstest();
- $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $array['reihungstest_id'], $prestudentrolle->studienplan_id);
-
- // Check, ob Punkte schon befüllt sind
- if ($setRTPunkte->punkte == '')
+ if (!$setRTPunkte->savePersonReihungstest())
{
- $setRTPunkte->new = false;
- $setRTPunkte->punkte = $rtpunkte;
- $setRTPunkte->updateamum = date('Y-m-d H:i:s');
- $setRTPunkte->updatevon = $user;
-
- if (!$setRTPunkte->savePersonReihungstest())
- {
- $msg_error .= '
Fehler beim speichern der Reihungstestpunkte für Prestudent '.$array['prestudent_id'].': ' . $setRTPunkte->errormsg;
- }
- else
- {
- $count_success_punkte ++;
- }
+ $msg_error .= '
Fehler beim speichern der Reihungstestpunkte für Prestudent '.$array['prestudent_id'].': ' . $setRTPunkte->errormsg;
}
else
{
- $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits Punkte für den Studienplan '.$prestudentrolle->studienplan_id.' eingetragen.';
+ $count_success_punkte ++;
}
}
else
{
- $setRTPunkte = new reihungstest();
- $ort_kurzbz = '';
- // Checken, ob schon irgendeine Raumzuteilung existiert (Check ohne Studienplan) und diese ggf. übernehmen
- $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, $array['reihungstest_id'], $prestudentrolle->studienplan_id);
+ $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits Punkte für den Studienplan '.$prestudentrolle->studienplan_id.' eingetragen.';
+ }
+ }
+ else
+ {
+ $setRTPunkte = new reihungstest();
+ $ort_kurzbz = '';
+ // Checken, ob schon irgendeine Raumzuteilung existiert (Check ohne Studienplan) und diese ggf. übernehmen
+ $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, $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 = $array['reihungstest_id'];
- $setRTPunkte->anmeldedatum = '';
- $setRTPunkte->teilgenommen = true;
- $setRTPunkte->ort_kurzbz = $ort_kurzbz;
- $setRTPunkte->studienplan_id = $prestudentrolle->studienplan_id;
- $setRTPunkte->punkte = $rtpunkte;
- $setRTPunkte->insertamum = date('Y-m-d H:i:s');
- $setRTPunkte->insertvon = $user;
+ // Check, ob Punkte schon befüllt sind
+ if ($setRTPunkte->punkte == '')
+ {
+ $setRTPunkte->new = true;
+ $setRTPunkte->person_id = $prestudentrolle->person_id;
+ $setRTPunkte->reihungstest_id = $array['reihungstest_id'];
+ $setRTPunkte->anmeldedatum = '';
+ $setRTPunkte->teilgenommen = true;
+ $setRTPunkte->ort_kurzbz = $ort_kurzbz;
+ $setRTPunkte->studienplan_id = $prestudentrolle->studienplan_id;
+ $setRTPunkte->punkte = $rtpunkte;
+ $setRTPunkte->insertamum = date('Y-m-d H:i:s');
+ $setRTPunkte->insertvon = $user;
- if (!$setRTPunkte->savePersonReihungstest())
- {
- $msg_error .= '
Fehler beim speichern der Reihungstestpunkte für Prestudent ' . $array['prestudent_id'] . ': ' . $setRTPunkte->errormsg;
- }
- else
- {
- $count_success_punkte ++;
- }
+ if (!$setRTPunkte->savePersonReihungstest())
+ {
+ $msg_error .= '
Fehler beim speichern der Reihungstestpunkte für Prestudent ' . $array['prestudent_id'] . ': ' . $setRTPunkte->errormsg;
}
else
{
- $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits Punkte für den Studienplan '.$prestudentrolle->studienplan_id.' eingetragen.';
+ $count_success_punkte ++;
}
}
-
- $gesamtpunkteSetzen = filter_input(INPUT_POST, 'gesamtpunkteSetzen', FILTER_VALIDATE_BOOLEAN);
- // Wenn gesamtpunkteSetzen true ist, auch die Gesamtpunkte für den Prestudenten setzen
- if ($gesamtpunkteSetzen)
+ else
{
- $prestudent = new prestudent($array['prestudent_id']);
+ $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits Punkte für den Studienplan '.$prestudentrolle->studienplan_id.' eingetragen.';
+ }
+ }
- // Check, ob Punkte schon befüllt sind
- if ($prestudent->punkte == '')
+ $gesamtpunkteSetzen = filter_input(INPUT_POST, 'gesamtpunkteSetzen', FILTER_VALIDATE_BOOLEAN);
+ // Wenn gesamtpunkteSetzen true ist, auch die Gesamtpunkte für den Prestudenten setzen
+ if ($gesamtpunkteSetzen)
+ {
+ $prestudent = new prestudent($array['prestudent_id']);
+
+ // Check, ob Punkte schon befüllt sind
+ if ($prestudent->punkte == '')
+ {
+ $prestudent->new = false;
+ $prestudent->punkte = $rtpunkte;
+ $prestudent->reihungstestangetreten = true;
+ $setRTPunkte->updateamum = date('Y-m-d H:i:s');
+ $setRTPunkte->updatevon = $user;
+
+ if (!$prestudent->save())
{
- $prestudent->new = false;
- $prestudent->punkte = $rtpunkte;
- $prestudent->reihungstestangetreten = true;
- $setRTPunkte->updateamum = date('Y-m-d H:i:s');
- $setRTPunkte->updatevon = $user;
-
- if (!$prestudent->save())
- {
- $msg_error .= '
Fehler beim setzen der Gesamtpunkte für Prestudent '.$array['prestudent_id'].': ' . $prestudent->errormsg;
- }
- else
- {
- $count_success_gesamtpunkte++;
- }
+ $msg_error .= '
Fehler beim setzen der Gesamtpunkte für Prestudent '.$array['prestudent_id'].': ' . $prestudent->errormsg;
}
else
{
- $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits Gesamtpunkte eingetragen.';
+ $count_success_gesamtpunkte++;
}
}
-
- $zuBewerberMachen = filter_input(INPUT_POST, 'zuBewerberMachen', FILTER_VALIDATE_BOOLEAN);
- // Wenn zuBewerberMachen true ist, wird der Prestudent auch zum Bewerber gemacht
- if ($zuBewerberMachen)
+ else
{
- $prestudent = new prestudent($array['prestudent_id']);
+ $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits Gesamtpunkte eingetragen.';
+ }
+ }
- // Checken, ob schon Bewerberstatus vorhanden ist
- if (!$prestudent->load_rolle($array['prestudent_id'], 'Bewerber', $prestudentrolle->studiensemester_kurzbz, $prestudentrolle->ausbildungssemester))
+ $zuBewerberMachen = filter_input(INPUT_POST, 'zuBewerberMachen', FILTER_VALIDATE_BOOLEAN);
+ // Wenn zuBewerberMachen true ist, wird der Prestudent auch zum Bewerber gemacht
+ if ($zuBewerberMachen)
+ {
+ $prestudent = new prestudent($array['prestudent_id']);
+
+ // Checken, ob schon Bewerberstatus vorhanden ist
+ if (!$prestudent->load_rolle($array['prestudent_id'], 'Bewerber', $prestudentrolle->studiensemester_kurzbz, $prestudentrolle->ausbildungssemester))
+ {
+ // Checken, ob Abgewiesener-Status vorhanden ist
+ if (!$prestudent->load_rolle($array['prestudent_id'], 'Abgewiesener', $prestudentrolle->studiensemester_kurzbz, $prestudentrolle->ausbildungssemester))
{
- // Checken, ob Abgewiesener-Status vorhanden ist
- if (!$prestudent->load_rolle($array['prestudent_id'], 'Abgewiesener', $prestudentrolle->studiensemester_kurzbz, $prestudentrolle->ausbildungssemester))
+ // Um einen Bewerberstatus zu setzen, muss "reihungstestangetreten" true sein
+ if ($prestudent->reihungstestangetreten == true)
{
- // Um einen Bewerberstatus zu setzen, muss "reihungstestangetreten" true sein
- if ($prestudent->reihungstestangetreten == true)
+ // Um einen Bewerberstatus zu setzen, muss die ZGV ausgefüllt sein
+ if ($prestudent->zgv_code != '')
{
- // Um einen Bewerberstatus zu setzen, muss die ZGV ausgefüllt sein
- if ($prestudent->zgv_code != '')
+ $studiengang = new studiengang($prestudent->studiengang_kz);
+ // Bei Mastern muss auch die ZGV-Master ausgefüllt sein
+ if ($studiengang->typ == 'm' && $prestudent->zgvmas_code == '')
{
- $studiengang = new studiengang($prestudent->studiengang_kz);
- // Bei Mastern muss auch die ZGV-Master ausgefüllt sein
- if ($studiengang->typ == 'm' && $prestudent->zgvmas_code == '')
- {
- $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es muss zuerst eine Master-ZGV eingetragen sein.';
- }
- else
- {
- $prestudent->new = true;
- $prestudent->prestudent_id = $array['prestudent_id'];
- $prestudent->status_kurzbz = 'Bewerber';
- $prestudent->studiensemester_kurzbz = $prestudentrolle->studiensemester_kurzbz;
- $prestudent->ausbildungssemester = $prestudentrolle->ausbildungssemester;
- $prestudent->datum = date('Y-m-d');
- $prestudent->insertamum = date('Y-m-d H:i:s');
- $prestudent->insertvon = $user;
- $prestudent->orgform_kurzbz = $prestudentrolle->orgform_kurzbz;
- $prestudent->bestaetigtam = '';
- $prestudent->bestaetigtvon = '';
- $prestudent->bewerbung_abgeschicktamum = '';
- $prestudent->studienplan_id = $prestudentrolle->studienplan_id;
-
- if (!$prestudent->save_rolle())
- {
- $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].': '.$prestudent->errormsg;
- }
- else
- {
- $count_success_bewerber++;
- }
- }
+ $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es muss zuerst eine Master-ZGV eingetragen sein.';
}
else
{
- $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es muss zuerst eine ZGV eingetragen sein.';
+ $prestudent->new = true;
+ $prestudent->prestudent_id = $array['prestudent_id'];
+ $prestudent->status_kurzbz = 'Bewerber';
+ $prestudent->studiensemester_kurzbz = $prestudentrolle->studiensemester_kurzbz;
+ $prestudent->ausbildungssemester = $prestudentrolle->ausbildungssemester;
+ $prestudent->datum = date('Y-m-d');
+ $prestudent->insertamum = date('Y-m-d H:i:s');
+ $prestudent->insertvon = $user;
+ $prestudent->orgform_kurzbz = $prestudentrolle->orgform_kurzbz;
+ $prestudent->bestaetigtam = '';
+ $prestudent->bestaetigtvon = '';
+ $prestudent->bewerbung_abgeschicktamum = '';
+ $prestudent->studienplan_id = $prestudentrolle->studienplan_id;
+
+ if (!$prestudent->save_rolle())
+ {
+ $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].': '.$prestudent->errormsg;
+ }
+ else
+ {
+ $count_success_bewerber++;
+ }
}
}
else
{
- $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Zuerst muss "Reihungstestverfahren absolviert" gesetzt sein.';
+ $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es muss zuerst eine ZGV eingetragen sein.';
}
}
else
{
- $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es ist bereits ein Abgewiesener-Status vorhanden';
+ $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Zuerst muss "Reihungstestverfahren absolviert" gesetzt sein.';
}
}
else
{
- $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits einen Bewerberstatus';
+ $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es ist bereits ein Abgewiesener-Status vorhanden';
}
}
+ else
+ {
+ $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits einen Bewerberstatus';
+ }
}
}
+ }
- $msg_success = '';
- if ($count_success_punkte > 0)
- {
- $msg_success .= $count_success_punkte.' Punkte erfolgreich ins FAS übertragen';
- }
- if ($count_success_gesamtpunkte > 0)
- {
- $msg_success .= '
'.$count_success_gesamtpunkte.' Gesamtpunkte erfolgreich gesetzt';
- }
- if ($count_success_bewerber > 0)
- {
- $msg_success .= '
'.$count_success_bewerber.' Prestudenten zu Bewerber gemacht';
- }
+ $msg_success = '';
+ if ($count_success_punkte > 0)
+ {
+ $msg_success .= $count_success_punkte.' Punkte erfolgreich ins FAS übertragen';
+ }
+ if ($count_success_gesamtpunkte > 0)
+ {
+ $msg_success .= '
'.$count_success_gesamtpunkte.' Gesamtpunkte erfolgreich gesetzt';
+ }
+ if ($count_success_bewerber > 0)
+ {
+ $msg_success .= '
'.$count_success_bewerber.' Prestudenten zu Bewerber gemacht';
+ }
- echo json_encode(array(
- 'status' => 'ok',
- 'msg_success' => $msg_success,
- 'msg_warning' => $msg_warning,
- 'msg_error' => $msg_error));
- exit();
+ echo json_encode(array(
+ 'status' => 'ok',
+ 'msg_success' => $msg_success,
+ 'msg_warning' => $msg_warning,
+ 'msg_error' => $msg_error));
+ exit();
}
function sortByField($multArray, $sortField, $desc = true)
@@ -1423,6 +1460,23 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
LEFT JOIN testtool.tbl_gebiet USING (gebiet_id)
WHERE 1 = 1
--AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) NOT IN ('Abgewiesener') /*Wenn einkommentiert, kommen zB bei alten Bewerbungen keine Ergebnisse*/
+ AND CASE WHEN
+ (
+ get_rolle_prestudent (prestudent_id, rt.studiensemester_kurzbz) IN ('Abgewiesener')
+ AND
+ rt.datum > (
+ SELECT MAX(insertamum)
+ FROM PUBLIC.tbl_prestudentstatus spss
+ WHERE spss.prestudent_id = ps.prestudent_id
+ AND status_kurzbz = 'Abgewiesener'
+ LIMIT 1
+ )
+ )
+ THEN
+ false
+ ELSE
+ true
+ END
AND tbl_prestudentstatus.studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_studiensemester
@@ -1897,7 +1951,7 @@ if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls')
$worksheet->write($zeile, ++$spalte, '');
}
}
- $worksheet->writeNumber($zeile, ++$spalte, $erg->gesamtpunkte, $format_punkte);
+ $worksheet->writeNumber($zeile, ++$spalte, 4, $format_punkte);
$worksheet->writeNumber($zeile, ++$spalte, $erg->gesamtoffsetpunkte, $format_punkte);
$worksheet->writeNumber($zeile, ++$spalte, $erg->gesamt / 100, $format_prozent);
}
@@ -2489,6 +2543,38 @@ else
});
window.location.href = "mailto:?bcc="+adresseArray.join(";");
}
+
+ function clearList()
+ {
+ $.ajax({
+ url: "auswertung_fhtw.php",
+ data: {clearList: true},
+ type: "POST",
+ dataType: "json",
+ success: function(data)
+ {
+ if(data.status !== "ok")
+ {
+ $("#msgbox").attr("class","alert alert-danger");
+ $("#msgbox").show();
+ $("#msgbox").html(data["msg"]);
+ }
+ else
+ {
+ $("#freischaltenWarning").show();
+ $("#freischaltenInfo").hide();
+ $("#msgbox").show();
+ $("#msgbox").html(data["msg"]).delay(2000).fadeOut();
+ }
+ },
+ error: function(data)
+ {
+ $("#msgbox").attr("class","alert alert-danger");
+ $("#msgbox").show();
+ $("#msgbox").html(data["msg"]);
+ }
+ });
+ }
function checkAllWithResult()
{
// Schleife ueber die einzelnen Elemente
@@ -2866,13 +2952,17 @@ else
}
else
{
- echo ' Testfortschritt ansehen';
+ echo ' Testfortschritt ansehen';
}
}
else
{
echo ' Testfortschritt ansehen';
}
+ if ($rechte->isBerechtigt('infocenter', null, 'suid'))
+ {
+ echo ' ';
+ }
echo '';
echo '