127 lines
5.3 KiB
PHP
Executable File
127 lines
5.3 KiB
PHP
Executable File
<?php
|
|
#require_once("config.inc.php");
|
|
|
|
function terminwahl($tm_id, $vorname, $nachname, $gebdat_form, $wh_test, $id_wied, $tan_wied)
|
|
{
|
|
$db = dbconnect();
|
|
|
|
# Checken, zu welchem Ausbildungsjahr das gewählte Testdatum gehört:
|
|
$query_curtermin = $db->query("SELECT date_format(tm_datum, '%Y-%m-%d') tm_datum
|
|
FROM bpm_termine
|
|
WHERE tm_id = $tm_id
|
|
");
|
|
$row_curtermin = $query_curtermin->fetch_array();
|
|
|
|
$query_curausbjahr = $db->query("SELECT ausbildungsbeginn
|
|
FROM bpm_stichtage
|
|
WHERE ende >= '$row_curtermin[tm_datum]'
|
|
ORDER BY beginn ASC
|
|
LIMIT 1
|
|
");
|
|
$row_curausbjahr = $query_curausbjahr->fetch_array();
|
|
$curr_jahr = $row_curausbjahr['ausbildungsbeginn'];
|
|
|
|
if ($wh_test == 0) {
|
|
$query_doppelt = $db->query("SELECT id
|
|
FROM bpm_kandidat
|
|
WHERE nachname='$nachname'
|
|
AND vorname ='$vorname'
|
|
AND gebdat='$gebdat_form'
|
|
AND id LIKE '%$curr_jahr'");
|
|
$row_doppelt = $query_doppelt->fetch_array();
|
|
|
|
# Bei Wiederholungskandidat muss hier das übersprungen werden und gewährleistet werden, dass er nicht ein drittes Mal sich bewirbt
|
|
# Außerdem muss das Testergebnis herangezogen werden, ob er nicht bestanden hat
|
|
if ($row_doppelt['id'] != '') {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
if ($wh_test == 1) {
|
|
# Falls jemand mal eine doppelte ID haben sollte, dann liegt das daran, dass er eine WiederholungsID vom Vorjahr eingegeben hat
|
|
# und sich mehrfach in einer neuen Bewerbungsphase eingeloggt hat
|
|
|
|
|
|
# War der Kandidat bereits da mit durchgefallenem Test
|
|
$query_bes = $db->query("SELECT sum(bestanden) bestanden
|
|
FROM bpm_kandidat a, bpm_ergebnisse b, bpm_term_kand c, bpm_tanpool d
|
|
WHERE a.ka_id = b.ka_id
|
|
AND a.ka_id = c.ka_id
|
|
AND c.tp_id = d.tp_id
|
|
AND a.id = '$id_wied'
|
|
AND b.bestanden='1'
|
|
AND id LIKE '%$curr_jahr'");
|
|
|
|
$row_bes = $query_bes->fetch_array();
|
|
|
|
if ($row_bes['bestanden'] > 0) {
|
|
return 3;
|
|
} else {
|
|
|
|
|
|
$query_anz = $db->query("SELECT count(*) Anz
|
|
FROM bpm_kandidat a, bpm_ergebnisse b, bpm_term_kand c, bpm_tanpool d
|
|
WHERE a.ka_id = b.ka_id
|
|
AND a.ka_id = c.ka_id
|
|
AND c.tp_id = d.tp_id
|
|
AND a.id = '$id_wied'
|
|
AND b.bestanden='1'
|
|
AND id LIKE '%$curr_jahr'");
|
|
|
|
$row_anz = $query_anz->fetch_array();
|
|
|
|
if ($row_anz['Anz'] == '1') {
|
|
# Test wurde bereis einmal wiederholt
|
|
return 3;
|
|
} else {
|
|
# Wie oft ist Kandidat schon durchgefallen
|
|
$query_anz2 = $db->query("SELECT count(*) Anz
|
|
FROM bpm_kandidat a, bpm_ergebnisse b, bpm_term_kand c, bpm_tanpool d
|
|
WHERE a.ka_id = b.ka_id
|
|
AND a.ka_id = c.ka_id
|
|
AND c.tp_id = d.tp_id
|
|
AND a.id = '$id_wied'
|
|
AND b.bestanden='0'
|
|
AND d.tan=b.tan
|
|
AND id LIKE '%$curr_jahr'");
|
|
|
|
$row_anz2 = $query_anz2->fetch_array();
|
|
# Wenn Anzahl 0, dann darf er wiederholen. >1 gibts nicht, da es hier geblockt wird
|
|
if ($row_anz2['Anz'] == 2) {
|
|
return 4;
|
|
} else {
|
|
|
|
#ID Kombination prüfen. Stimmen Logindaten aus erstem Test
|
|
$query_anz1 = $db->query("SELECT count(*) Anz
|
|
FROM bpm_kandidat a, bpm_term_kand c, bpm_tanpool d
|
|
WHERE a.ka_id = c.ka_id
|
|
AND c.tp_id = d.tp_id
|
|
AND a.id = '$id_wied'
|
|
AND d.tan = '$tan_wied'");
|
|
$row_anz1 = $query_anz1->fetch_array();
|
|
# wenn hier nichts gefunden wird, dann stimmt TAN Wiederholung
|
|
|
|
# Bei Wiederholungskandidat muss hier das übersprungen werden und gewährleistet werden, dass er nicht ein drittes Mal sich bewirbt
|
|
# Außerdem muss das Testergebnis herangezogen werden, ob er nicht bestanden hat
|
|
if ($row_anz1['Anz'] == '0') {
|
|
return 2;
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
# Kein Wiederholer
|
|
# echo terminwahl(7, 'Alexander', 'Schwarz', '1979-08-15', '0', '', '');
|
|
|
|
#Wiederholer in derselben Bewerbungsphase
|
|
#echo terminwahl(7, 'Alexander', 'Schwarz', '1979-08-15', '1', 'SCHWAL1508197901-2022', 'K3NN');
|
|
|
|
|
|
?>
|