abfragen bzgl rt gleichgezogen

abegewiesene vor dem rt werden nicht mehr angezeigt
This commit is contained in:
ma0048
2021-11-23 15:01:48 +01:00
parent d996e3ad31
commit 3354634b97
4 changed files with 536 additions and 209 deletions
@@ -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*/
+175 -11
View File
@@ -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
+284 -195
View File
@@ -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' => '<p>Fehler beim Senden einer Nachricht</p>'
));
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' => '<p>Fehler beim Senden einer Nachricht</p>'
));
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 .= '<br>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 .= '<br>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 .= '<br>Fehler beim speichern der Reihungstestpunkte für Prestudent '.$array['prestudent_id'].': ' . $setRTPunkte->errormsg;
}
else
{
$count_success_punkte ++;
}
$msg_error .= '<br>Fehler beim speichern der Reihungstestpunkte für Prestudent '.$array['prestudent_id'].': ' . $setRTPunkte->errormsg;
}
else
{
$msg_warning .= '<br>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 .= '<br>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 .= '<br>Fehler beim speichern der Reihungstestpunkte für Prestudent ' . $array['prestudent_id'] . ': ' . $setRTPunkte->errormsg;
}
else
{
$count_success_punkte ++;
}
if (!$setRTPunkte->savePersonReihungstest())
{
$msg_error .= '<br>Fehler beim speichern der Reihungstestpunkte für Prestudent ' . $array['prestudent_id'] . ': ' . $setRTPunkte->errormsg;
}
else
{
$msg_warning .= '<br>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 .= '<br>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 .= '<br>Fehler beim setzen der Gesamtpunkte für Prestudent '.$array['prestudent_id'].': ' . $prestudent->errormsg;
}
else
{
$count_success_gesamtpunkte++;
}
$msg_error .= '<br>Fehler beim setzen der Gesamtpunkte für Prestudent '.$array['prestudent_id'].': ' . $prestudent->errormsg;
}
else
{
$msg_warning .= '<br>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 .= '<br>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 .= '<br>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 .= '<br>Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].': '.$prestudent->errormsg;
}
else
{
$count_success_bewerber++;
}
}
$msg_error .= '<br>Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es muss zuerst eine Master-ZGV eingetragen sein.';
}
else
{
$msg_error .= '<br>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 .= '<br>Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].': '.$prestudent->errormsg;
}
else
{
$count_success_bewerber++;
}
}
}
else
{
$msg_error .= '<br>Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Zuerst muss "Reihungstestverfahren absolviert" gesetzt sein.';
$msg_error .= '<br>Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es muss zuerst eine ZGV eingetragen sein.';
}
}
else
{
$msg_error .= '<br>Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es ist bereits ein Abgewiesener-Status vorhanden';
$msg_error .= '<br>Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Zuerst muss "Reihungstestverfahren absolviert" gesetzt sein.';
}
}
else
{
$msg_warning .= '<br>Der Prestudent '.$array['prestudent_id'].' hat bereits einen Bewerberstatus';
$msg_error .= '<br>Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].'. Es ist bereits ein Abgewiesener-Status vorhanden';
}
}
else
{
$msg_warning .= '<br>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 .= '<br>'.$count_success_gesamtpunkte.' Gesamtpunkte erfolgreich gesetzt';
}
if ($count_success_bewerber > 0)
{
$msg_success .= '<br>'.$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 .= '<br>'.$count_success_gesamtpunkte.' Gesamtpunkte erfolgreich gesetzt';
}
if ($count_success_bewerber > 0)
{
$msg_success .= '<br>'.$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 '&nbsp;&nbsp;<a href="'.APP_ROOT.'/addons/reports/cis/vorschau.php?statistik_kurzbz=TesttoolFortschritt&debug=true&ReihungstestID='.$_GET['reihungstest'].'" class="btn btn-default btn-xs" role="button" target="_blank">Testfortschritt ansehen</a>';
echo '&nbsp;&nbsp;<a href="'.APP_ROOT.'/addons/reports/cis/vorschau.php?statistik_kurzbz=TesttoolFortschritt&debug=true&ReihungstestID='.$_GET['reihungstest'][0].'" class="btn btn-default btn-xs" role="button" target="_blank">Testfortschritt ansehen</a>';
}
}
else
{
echo '&nbsp;&nbsp;<a href="#" class="btn btn-default btn-xs" disabled="" role="button" title="Aktiv nur bei Einzelterminauswahl">Testfortschritt ansehen</a>';
}
if ($rechte->isBerechtigt('infocenter', null, 'suid'))
{
echo '&nbsp;&nbsp;<button type="button" class="btn btn-default btn-xs" onclick="clearList()" id="mailSendButton">Liste aufräumen</button>';
}
echo '</div></div></form>';
echo ' <form class="form" role="form">
<div class="panel panel-default hiddenEl" id="uebertragenOptions">
@@ -3002,7 +3092,6 @@ else
if ($erg->letzter_status == 'Abgewiesener')
{
$inaktiv = 'text-muted';
$erg->prioritaet = 0;
}
echo "<tr id='row_".$erg->prestudent_id."'>
<td class='textcentered ".$inaktiv."'>
@@ -2624,6 +2624,23 @@ if($reihungstest_id!='')
JOIN PUBLIC.tbl_prestudent ON (tbl_rt_person.person_id = tbl_prestudent.person_id)
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
WHERE rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)."
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