bpm/func_terminwahl.php
2022-11-28 10:24:23 +01:00

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');
?>