stellenantrag_neu/admin/daten_pruefen_admin.php
2023-02-17 12:41:01 +01:00

893 lines
53 KiB
PHP
Executable File

<?php
include("kurs/datenbankanbindung.php"); // f&uuml;gt die Datenbankanbindung ein: Sys:\php\includes\kurs\datenbankanbindung.php
$user_admin=$_COOKIE["user_admin"];
$uid1=$_GET['uid'];
// Rechteüberprüfung
$db = dbconnect();
$result = $db->query("SELECT 1 FROM stan_admin_rechte, stan_admin_rechte_zuord , stan_admin where stan_admin_rechte.stan_admin_rolle = stan_admin_rechte_zuord.stan_admin_rolle AND stan_admin_rechte_zuord.said = stan_admin.said AND stan_admin.user = '$user_admin' AND stan_admin_rechte_zuord.stan_admin_rolle = 'a_bearb'");
$row = $result->fetch_array();
if ($row[0] != 1){ include("kurs/rechte.php"); exit;}
// Rechte&uuml;berpr&uuml;fung ende
$db = dbconnect();
$result = $db->query("SELECT nachname, vorname, postrasse, poplz, poort, stgtext, AG, Jahrgang, mail, mail2, mtknr, stg FROM stud where uid=\"$uid1\"");
$row = $result->fetch_array();
echo "
<html>
<head>
<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">
<link rel=\"stylesheet\" href=\"../styles_pc.css\" type=\"text/css\">
<script type=\"text/javascript\" src=\"./overlib/overlibmws.js\"><!-- overLIB (c) Erik Bosrup --></script>
<script type=\"text/javascript\">
<!--
OLregisterPlugins('crossframe','iframe','hide','shadow');
overlib=parent.overlib;
nd=parent.nd;
if (typeof window.createPopup!='undefined') {
var oPopup = window.createPopup();
var oPopupBody = oPopup.document.body;
oPopupBody.style.backgroundColor = \"#ccccff\";
oPopupBody.style.border = \"solid blue 1px\";
}
// -->
</script>
<style type=\"text/css\">
<!--
.text_overlib {font-family:Verdana,Arial,sans-serif; font-size:10px;}
.r{text-decoration: none;font-weight: bold; color: black;}
.text_overlib {font-family:Verdana,Arial,sans-serif; font-size:10px;}
-->
</style>
<script type=\"text/javascript\">
function cursorhand()
{
document.body.style.cursor = 'pointer';
}
</script>
<title>In das Fenster klicken um zu schließen</title>
</head>
<body onMouseover=\"cursorhand()\", onclick=\"window.close();\">
<div id=\"overDiv\" style=\"position: absolute; visibility: hidden; z-index: 1000; left: 10px; top: 0px; background-image: none;\"></div>
";
$res_ausn= $db->query("SELECT 1
FROM stan_ausnahme
WHERE uid ='$uid1'");
$row_ausn = $res_ausn->fetch_array(); // Prüfen ob schon Änderungsanträge vorhanden
if($row_ausn[0] == '1'){
$ausnahme =" - <font color='red'><b>Student hat eine Ausnahmeregelung!</b></font>";
}else{
$ausnahme ="";
}
echo"
<table border=\"0\" style=\"border-collapse: collapse\" width=\"100%\" cellpadding=\"0\" id=\"table1\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_top.gif\" valign=\"top\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<font class=\"hd\">Antragsdaten von $row[vorname] $row[nachname]$ausnahme</font><br>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\"></font></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
<td>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0; border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber1\" height=\"142\">
<tr>
<td style=\"border-style: none; border-width: medium\" height=\"32\">
";
$titel = "Persönliche Daten";
$text = "Ihre persönlichen Daten müssen zu jedem Zeitpunkt während des Praxisjahres aktuell sein.<br><br>Achten Sie darauf, dass im System eine Mailadresse hinterlegt ist, die Sie regelmäßig abrufen";
echo"
<a href=\"javascript:void(0);\" onmouseover=\"return overlib('$text',ABOVE, TEXTFONTCLASS,'text_overlib', WIDTH, 350, CAPTION, '$titel',CAPTIONSIZE, '10px');\" onmouseout=\"nd();\"><b>$titel</b></a>
</td>
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">";
$db = dbconnect();
$res = $db->query("SELECT nachname, vorname, hs, poplz, poOrt, poStrasse, mail
FROM stud
WHERE uid='$uid1'");
$stud = $res->fetch_array();
if($stud['nachname'] == '' or $stud['vorname'] == '' or $stud['hs'] == '' or $stud['poplz'] == '' or $stud['poOrt'] == '' or $stud['poStrasse'] == '' or $stud['mail'] == ''){
echo "<img border=\"0\" src=\"../images/cross.jpg\">";
$fehler = 'X';
}else{
if($stud['hs'] == 'L' or $stud['hs'] == 'K'){
echo "<img border=\"0\" src=\"../images/ok.gif\">";
}else{
echo "<img border=\"0\" src=\"../images/cross.jpg\">";
$fehler = 'X';
}
}
echo"
</td>
</tr>
<tr>
<td style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
</tr>
<tr>
<td valign='top' style=\"border-style: none; border-width: medium\" height=\"32\">
";
$titel = "Anträge";
$text = "Ihre Anträge werden nach Datum aufsteigend aufgelistet.<br><br>Die Zeiträume dürfen keine Lücken und keine Überschneidungen aufweisen.<br><br>Urlaube werden nicht hier im System eingeplant. Diese werden direkt bei der Praxisstelle genommen.";
echo"
<a href=\"javascript:void(0);\" onmouseover=\"return overlib('$text',ABOVE, TEXTFONTCLASS,'text_overlib', WIDTH, 350, CAPTION, '$titel',CAPTIONSIZE, '10px');\" onmouseout=\"nd();\"><b>$titel</b></a>
</td>
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">";
$result3 = $db->query("SELECT DATE_FORMAT(antrag_von, '%d.%m.%Y') antrag_von, DATE_FORMAT(antrag_bis, '%d.%m.%Y') antrag_bis
FROM stan_frist
WHERE jahrgang ='$row[Jahrgang]'");
$row3 = $result3->fetch_array();
$result_tmp1 = $db->query("DELETE FROM stan_tmp_check_data WHERE uid='$uid1'");
$result_tmp1 = $db->query("INSERT INTO stan_tmp_check_data
SELECT t1.saaid
, t1.vert_bereich
, t1.uid
, t1.beginn
, t1.ende
, t1.dst_id
FROM stan_antrag t1
WHERE t1.status = (
SELECT MAX(t2.status)
FROM stan_antrag t2
WHERE t1.aendid = t2.aendid
AND status not in ('-1', '2')
)
AND t1.uid = '$uid1'
AND (t1.zuweisung is NULL OR t1.zuweisung='Z')
");
## PU in tmp Tabelle eintrage
# $result = $db->query("SELECT max(saaid) max_id FROM stan_tmp_check_data WHERE uid='$uid1'");
# $row4 = $result->fetch_array();
# $saaid_neu = $row4[max_id] + 1; // Damit alle Einträge eine ID haben
# $result_tmp1 = $db->query("INSERT INTO stan_tmp_check_data SELECT $saaid_neu, '$uid1', beginn, ende, 'Praxisbegleitender Unterricht' FROM stan_sperrzeit WHERE jahrgang ='$row[Jahrgang]' AND kennung = '$row[stg]'");
$result = $db->query("SELECT max(saaid) max_id FROM stan_tmp_check_data WHERE uid='$uid1'");
$row4 = $result->fetch_array();
$saaid_neu = $row4['max_id'] + 1; // Damit alle Einträge eine ID haben
$result_tmp1 = $db->query("INSERT INTO stan_tmp_check_data SELECT $saaid_neu, NULL, '$uid1', DATE_SUB(antrag_von, INTERVAL 1 DAY), DATE_SUB(antrag_von, INTERVAL 1 DAY), 'Antragszeitraum Beginn' FROM stan_frist WHERE jahrgang ='$row[Jahrgang]'");
$result = $db->query("SELECT max(saaid) max_id FROM stan_tmp_check_data WHERE uid='$uid1'");
$row4 = $result->fetch_array();
$saaid_neu = $row4['max_id'] + 1; // Damit alle Einträge eine ID haben
$result_tmp1 = $db->query("INSERT INTO stan_tmp_check_data SELECT $saaid_neu, NULL, '$uid1', antrag_bis, antrag_bis, 'Antragszeitraum Ende' FROM stan_frist WHERE jahrgang ='$row[Jahrgang]'");
$query = "SELECT ma.saaid, ma.uid, DATE_FORMAT(beginn, '%d.%m.%Y') beginn, DATE_FORMAT(ende, '%d.%m.%Y') ende, bezeichnung, COALESCE( luecke, 'OK' ) AS Luecke
FROM stan_tmp_check_data ma
LEFT JOIN ( SELECT saaid, 'Lücke folgt' AS luecke
FROM stan_tmp_check_data a
WHERE a.ende != (SELECT MAX( ende ) FROM stan_tmp_check_data x WHERE x.uid = a.uid)
AND NOT EXISTS ( SELECT saaid FROM stan_tmp_check_data b
WHERE a.uid = b.uid
AND b.beginn = DATE_ADD( a.ende, INTERVAL 1 DAY )
)
OR ( a.beginn IN (select beginn FROM stan_tmp_check_data d WHERE d.saaid != a.saaid)
AND a.ende IN (select ende FROM stan_tmp_check_data e WHERE e.saaid != a.saaid AND e.uid = '$uid1')
)
) L
ON L.saaid = ma.saaid
WHERE ma.uid = '$uid1'
ORDER BY ma.uid, ma.beginn";
$result = $db->query($query)
or die ("Cannot execute query1");
echo "<table width='100%'>";
while ($row2 = $result->fetch_array()){
$result5 = $db->query("SELECT concat(bezeichnung, ' ',name) name
FROM stan_dienststellen
WHERE dst_id ='$row2[bezeichnung]'");
$row5 = $result5->fetch_array();
$result6 = $db->query("SELECT bez
FROM stan_dienststellen_tmp
WHERE dst_id ='$row2[bezeichnung]'");
$row6 = $result6->fetch_array();
# Stellenart ausgeben
$result7 = $db->query("SELECT bezeichnung
FROM stan_stellenart a, stan_antrag b
WHERE a.artid=b.art
AND b.saaid = $row2[saaid]");
$row7 = $result7->fetch_array();
if($row5['name'] != '' and $row6['bez'] == ''){
$bezeichnung = $row5['name'];
}
if($row5['name'] == '' and $row6['bez'] != ''){
$bezeichnung = $row6['bez'];
}
# Art hinzufügen
$bezeichnung = $bezeichnung."<br><font size=1><i>$row7[bezeichnung]</i></font>";
if($row5['name'] == '' and $row6['bez'] == ''){
if($row2['bezeichnung'] == 'Antragszeitraum Beginn' or $row2['bezeichnung'] == 'Antragszeitraum Ende'){
$bezeichnung = "$row2[bezeichnung]";
}else{
$bezeichnung = '<i>Zeitraum vorgemerkt</i>';
}
}
echo"
<tr>
<td width='35%'>
$bezeichnung
</td>
<td width='35%'>";
if($row2['bezeichnung'] == 'Antragszeitraum Beginn'){
echo"$row3[antrag_von]";
}elseif($row2['bezeichnung'] == 'Antragszeitraum Ende'){
echo"$row3[antrag_bis]";
}else{
echo"$row2[beginn] - $row2[ende]";
}
echo"
</td>
<td width='30%' align='center'>";
if($row2['Luecke'] != 'OK'){
echo "<img border=\"0\" src=\"../images/leerer_zeitraum.gif\">";
$fehler = 'X';
}else{
echo "<img border=\"0\" src=\"../images/gueltig.png\">";
}
echo"
</td>
</tr>
";
}
echo"
</table>
<tr>
<td style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
</tr>
<tr>
<td valign='top' style=\"border-style: none; border-width: medium\" height=\"32\">
";
$titel = "Wurden exakt 4<br>Vertiefungsbereiche abgedeckt?";
$text = "Sie müssen während Ihres Praxisaufenthaltes genau 4 von 5 Vertiefungsbereichen abdecken. Haben Sie zu wenig Bereiche abgedeckt, bekommen Sie hier eine Fehlermeldung ausgegeben.";
echo"
<a href=\"javascript:void(0);\" onmouseover=\"return overlib('$text',ABOVE, TEXTFONTCLASS,'text_overlib', WIDTH, 350, CAPTION, '$titel',CAPTIONSIZE, '10px');\" onmouseout=\"nd();\"><b>$titel</b></a>
</td>
<td valign='top' align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">";
$db = dbconnect();
$res_anz = $db->query("SELECT count(distinct t1.vert_bereich) Anzahl
FROM stan_antrag t1
WHERE t1.status = (
SELECT MAX(t2.status)
FROM stan_antrag t2
WHERE t1.aendid = t2.aendid
AND status not in ('-1', '2')
)
AND t1.uid = '$uid1'
AND (t1.zuweisung is NULL OR t1.zuweisung='Z')
");
$anzahl_bereich = $res_anz->fetch_array();
if($anzahl_bereich['Anzahl'] != 4){
echo "<img border=\"0\" src=\"../images/cross.jpg\"> ($anzahl_bereich[Anzahl] von 4 notwendigen Vertiefungsbereichen wurden abgedeckt)";
echo "<p>";
$fehler = 'X';
$query3 = "SELECT distinct t1.vert_bereich
FROM stan_antrag t1
WHERE t1.status = (
SELECT MAX(t2.status)
FROM stan_antrag t2
WHERE t1.aendid = t2.aendid
AND status not in ('-1', '2')
)
AND t1.uid = '$uid1'
AND (t1.zuweisung is NULL OR t1.zuweisung='Z')
";
$result3 = $db->query($query3)
or die ("Cannot execute query3");
echo "<table><tr><td><b>abgedeckte Vertiefungsbereiche:</b></td></td></tr>";
while ($row5 = $result3->fetch_array()){
$res_bez = $db->query("SELECT bezeichnung
FROM `stan_vertiefungsbereich`
WHERE vbid = '$row5[vert_bereich]'");
$stell_bez = $res_bez->fetch_array();
echo "<tr><td>$stell_bez[bezeichnung]</td></tr>";
}
echo "</table>";
}else{
echo "<img border=\"0\" src=\"../images/ok.gif\">";
}
echo"
</td>
</tr>";
$result6a = $db->query("SELECT distinct 1
FROM stan_ausnahme
WHERE uid ='$uid1'");
$row6a = $result6a->fetch_array();
if($row6a[0] == 1){ # Wenn keine Ausnahme(12er Block entspricht Ausnahme) dann nicht absenden
# Zusammenhängende Zeiträume müssen nur angezeigt werden, wenn man auch den 12er Block hat, sonst machts keinen Sinn
echo"
<tr>
<td style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
</tr>
<tr>
<td valign='top' style=\"border-style: none; border-width: medium\" height=\"32\">
";
$titel = "Zusammenhängende Zeiträume<br>im Vertiefungsbereich?";
$text = "Wenn Sie ein Vertiefungsbereich in mehrere Stellen aufgesplittet haben, müssen die gesplitteten Teilbereiche im direkten Anschluss aneinander folgen.";
echo"
<a href=\"javascript:void(0);\" onmouseover=\"return overlib('$text',ABOVE, TEXTFONTCLASS,'text_overlib', WIDTH, 350, CAPTION, '$titel',CAPTIONSIZE, '10px');\" onmouseout=\"nd();\"><b>$titel</b></a>
</td>
<td valign='top' align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">";
$db = dbconnect();
# echo "<img border=\"0\" src=\"../images/cross.jpg\"> ($anzahl_bereich[Anzahl] von 4 notwendigen Vertiefungsbereichen wurden abgedeckt)";
# echo "<p>";
#
$query3 = "SELECT distinct t1.vert_bereich
FROM stan_antrag t1
WHERE t1.status = (
SELECT MAX(t2.status)
FROM stan_antrag t2
WHERE t1.aendid = t2.aendid
AND status not in ('-1', '2')
)
AND t1.uid = '$uid1'
AND (t1.zuweisung is NULL OR t1.zuweisung='Z')
";
$result3 = $db->query($query3)
or die ("Cannot execute query3");
echo "<table valign='top' width='100%'><tr><td valign='top' width='60%'><b>abgedeckte Vertiefungsbereiche:</b></td><td valign='top' ><b>Status</b></td></tr>";
while ($row5 = $result3->fetch_array()){
$res_bez = $db->query("SELECT bezeichnung
FROM `stan_vertiefungsbereich`
WHERE vbid = '$row5[vert_bereich]'");
$stell_bez = $res_bez->fetch_array();
// Abfrage frägt ab, ob innerhalb eines Vertiefungsbereichs eine Lücke ist. Ausgabe nur 1 Treffer, sobald 1 Lücke gefunden wurde --> Warnung ausgeben
$res_anz = $db->query("SELECT ma.uid, DATE_FORMAT(beginn, '%d.%m.%Y') beginn, DATE_FORMAT(ende, '%d.%m.%Y') ende, bezeichnung, COALESCE( luecke, 'OK' ) AS Luecke, 1 AS Treffer
FROM stan_tmp_check_data ma
LEFT JOIN ( SELECT saaid, 'Lücke folgt' AS luecke
FROM stan_tmp_check_data a
WHERE a.ende != (SELECT MAX( ende ) FROM stan_tmp_check_data x WHERE x.uid = a.uid AND vbid='$row5[vert_bereich]')
AND NOT EXISTS ( SELECT saaid FROM stan_tmp_check_data b
WHERE a.uid = b.uid
AND b.beginn = DATE_ADD( a.ende, INTERVAL 1 DAY )
AND b.vbid='$row5[vert_bereich]'
)
OR ( a.beginn IN (select beginn FROM stan_tmp_check_data d WHERE d.saaid != a.saaid)
AND a.ende IN (select ende FROM stan_tmp_check_data e WHERE e.saaid != a.saaid AND e.uid = '$uid1')
)
) L
ON L.saaid = ma.saaid
WHERE ma.uid = '$uid1'
AND ma.vbid='$row5[vert_bereich]'
AND Luecke !='OK'
ORDER BY ma.uid, ma.beginn
LIMIT 1
");
$anzahl_bereich = $res_anz->fetch_array();
echo "<tr>
<td>$stell_bez[bezeichnung]</td>
<td>";
if($anzahl_bereich['Treffer'] != 1){
echo "<font color=green><b>OK</b></font>";
}else{
echo "<font color=red><b>getrennte Zeiträume</b></font>";
}
echo"
</td>
</tr>";
}
echo "</table>
</td>
</tr>";
}
echo"
<tr>
<td style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
</tr>
<tr>
<td valign='top' style=\"border-style: none; border-width: medium\" height=\"32\">
";
$titel = "Fristen im Vertiefungsbereich";
$text = "Ein Vertiefungsbereich muss üblicherweise zwischen 3 und 5 Monate belegt werden.<br><br> Für die Sonderfälle Ausland, anderes Bundesland, Privatwirtschaft und Verband gelten spezielle Regelungen. Diese werden bei Bedarf separat geprüft.";
echo"
<a href=\"javascript:void(0);\" onmouseover=\"return overlib('$text',ABOVE, TEXTFONTCLASS,'text_overlib', WIDTH, 350, CAPTION, '$titel',CAPTIONSIZE, '10px');\" onmouseout=\"nd();\"><b>$titel</b></a>
</td>
<td valign='top' align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">";
$db = dbconnect();
# Zunächst wird untershchieden, ob die Termine vom VT-Bereich zusammenhängen
# Wenn ja, dann gilt die exakte Berechnung der Monatsfrist (Min. 3Mon - 5Mon),
# Wenn die Termine zum VT-Bereich willkürlich übers Jahr verteilt sind, dann werden die Tage
# jedes Splittpunkts berechnet. Dann muss der Bereich zwischen 88 Tage und 153 Tage liegen (3-5Mon)
$query3 = "SELECT distinct t1.vert_bereich
FROM stan_antrag t1
WHERE t1.status = (
SELECT MAX(t2.status)
FROM stan_antrag t2
WHERE t1.aendid = t2.aendid
AND status not in ('-1', '2')
)
AND t1.uid = '$uid1'
AND (t1.zuweisung is NULL OR t1.zuweisung='Z')
";
$result3 = $db->query($query3)
or die ("Cannot execute query3");
echo "<table valign='top' width='100%'><tr><td valign='top' width='60%'><b>abgedeckte Vertiefungsbereiche:</b></td><td valign='top' ><b>Status</b></td></tr>";
while ($row5 = $result3->fetch_array()){
$res_bez = $db->query("SELECT bezeichnung
FROM `stan_vertiefungsbereich`
WHERE vbid = '$row5[vert_bereich]'");
$stell_bez = $res_bez->fetch_array();
// Abfrage frägt ab, ob innerhalb eines Vertiefungsbereichs eine Lücke ist. Ausgabe nur 1 Treffer, sobald 1 Lücke gefunden wurde --> Warnung ausgeben
$res_anz = $db->query("SELECT ma.uid, DATE_FORMAT(beginn, '%d.%m.%Y') beginn, DATE_FORMAT(ende, '%d.%m.%Y') ende, bezeichnung, COALESCE( luecke, 'OK' ) AS Luecke, 1 AS Treffer
FROM stan_tmp_check_data ma
LEFT JOIN ( SELECT saaid, 'Lücke folgt' AS luecke
FROM stan_tmp_check_data a
WHERE a.ende != (SELECT MAX( ende ) FROM stan_tmp_check_data x WHERE x.uid = a.uid AND vbid='$row5[vert_bereich]')
AND NOT EXISTS ( SELECT saaid FROM stan_tmp_check_data b
WHERE a.uid = b.uid
AND b.beginn = DATE_ADD( a.ende, INTERVAL 1 DAY )
AND b.vbid='$row5[vert_bereich]'
)
OR ( a.beginn IN (select beginn FROM stan_tmp_check_data d WHERE d.saaid != a.saaid)
AND a.ende IN (select ende FROM stan_tmp_check_data e WHERE e.saaid != a.saaid AND e.uid = '$uid1')
)
) L
ON L.saaid = ma.saaid
WHERE ma.uid = '$uid1'
AND ma.vbid='$row5[vert_bereich]'
AND Luecke !='OK'
ORDER BY ma.uid, ma.beginn
LIMIT 1
");
$anzahl_bereich = $res_anz->fetch_array();
echo "<tr>
<td>$stell_bez[bezeichnung]</td>
<td>";
// Abfrage, ob die Einzeltermine der Vertiefungsbereich zusammenhängend sind
if($anzahl_bereich['Treffer'] != 1){
// Wenn der Zeitraum im Vertiefungsbereich zusammenhängend ist,
// dann kann man prüfen, ob beginndatum + 3 Monate >= Enddatum ist
// und ob beginndatum+5Monate <= Enddatum ist.
// Abfrage, wenn Anmeldefrist unterschritten, dann 1 sonst 0
// Abfrage, wenn Anmeldefrist überschritten ist, dann 1 sonst 0
$min_max = $db->query("SELECT max( ende ) < DATE_SUB(DATE_ADD( min( beginn ), INTERVAL 3 MONTH ), INTERVAL 1 DAY) unter # 1Tag abziehen, weil man 3 Monate von 01.07 - 30.11 rechnet und nicht bis 01.12
, max( ende ) > DATE_ADD(min(beginn), INTERVAL 5 MONTH ) ueber
FROM stan_tmp_check_data
WHERE vbid = '$row5[vert_bereich]'
");
$row_minmax = $min_max->fetch_array();
if($row_minmax['unter'] == '1'){
echo "<font color=red><b>Mindestdauer unterschritten</b></font>";
$result6a = $db->query("SELECT distinct 1
FROM stan_ausnahme
WHERE uid ='$uid1'");
$row6a = $result6a->fetch_array();
if($row6a[0] != 1){ # Showstopper bei 4 Blockfeld
$fehler = 'X';
}
}elseif($row_minmax['unter'] == '0'){
echo "<font color=green><b>OK</b></font>";
}elseif($row_minmax['ueber'] == '1'){
echo "<font color=red><b>Mindestdauer überschritten</b></font>";
$result6a = $db->query("SELECT distinct 1
FROM stan_ausnahme
WHERE uid ='$uid1'");
$row6a = $result6a->fetch_array();
if($row6a[0] != 1){ # Showstopper bei 4 Blockfeld
$fehler = 'X';
}
}elseif($row_minmax['ueber'] == '0'){
echo "<font color=green><b>OK</b></font>";
}
}else{# wenn die Zeiträume nicht zusammenhängend sind, dann 88 bzw. 153 Tage
$querydat = "SELECT beginn, ende
FROM stan_tmp_check_data
WHERE vbid = $row5[vert_bereich]
";
$resultdat = $db->query($querydat)
or die ("Cannot execute query3");
$days = 0;
$gestage = 0;
while ($rowdat = $resultdat->fetch_array()){
$days = floor((strtotime($rowdat[ende]) - strtotime($rowdat[beginn]))/86400);
$gestage = $gestage + $days;
}
if($gestage < 88){
echo "<font color=red><b>Mindestdauer unterschritten</b></font>";
$result6a = $db->query("SELECT distinct 1
FROM stan_ausnahme
WHERE uid ='$uid1'");
$row6a = $result6a->fetch_array();
if($row6a[0] != 1){ # Showstopper bei 4 Blockfeld
$fehler = 'X';
}
}elseif($gestage > 153){
echo "<font color=red><b>Mindestdauer überschritten</b></font>";
$result6a = $db->query("SELECT distinct 1
FROM stan_ausnahme
WHERE uid ='$uid1'");
$row6a = $result6a->fetch_array();
if($row6a[0] != 1){ # Showstopper bei 4 Blockfeld
$fehler = 'X';
}
}elseif($gestage >= 88 AND $gestage <= 153){
echo "<font color=green><b>OK</b></font>";
}
}
echo"
</td>
</tr>";
}
echo "</table>
</td>
</tr>
<tr>
<td style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
</tr>
<tr>
<td valign='top' style=\"border-style: none; border-width: medium\" height=\"32\">
";
$titel = "Anzahl Sonderfälle";
$text = "Sie dürfen nur 1 Sonderfall belegen<br><br>Sonderfälle sind:<br>- Ausland<br>- Anderes Bundesland<br>- Privatwirtschaft<br>- Verband";
echo"
<a href=\"javascript:void(0);\" onmouseover=\"return overlib('$text',ABOVE, TEXTFONTCLASS,'text_overlib', WIDTH, 350, CAPTION, '$titel',CAPTIONSIZE, '10px');\" onmouseout=\"nd();\"><b>$titel</b></a>
</td>
<td valign='top' align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">";
$db = dbconnect();
# echo "<img border=\"0\" src=\"../images/cross.jpg\"> ($anzahl_bereich[Anzahl] von 4 notwendigen Vertiefungsbereichen wurden abgedeckt)";
# echo "<p>";
#
$result3 = $db->query("SELECT count(*) Anz
FROM stan_antrag t1, stan_stellenart b
WHERE t1.status = (
SELECT MAX(t2.status)
FROM stan_antrag t2
WHERE t1.aendid = t2.aendid
AND status not in ('-1', '2')
)
AND b.Merkmal LIKE '%S%'
AND b.artid=t1.art
AND uid='$uid1'
and (zuweisung != 'AE'
or zuweisung is null
or zuweisung ='Z'
or zuweisung ='E'
or zuweisung ='EZ'
or zuweisung ='NA')
");
$row5 = $result3->fetch_array();
if($row5[0] > 1){
echo "<font color=red><b>zu viele Sonderfälle (Anzahl: $row5[0])</b></font>";
$result6a = $db->query("SELECT distinct 1
FROM stan_ausnahme
WHERE uid ='$uid1'");
$row6a = $result6a->fetch_array();
if($row6a[0] != 1){ # Showstopper bei 4 Blockfeld
$fehler = 'X';
}
}else{
echo "<font color=green><b>OK (Anzahl: $row5[0])</b></font>";
}
echo "
</td>
</tr>";
if($row5[0] >= 1){ # Wenn man ein Sonderfall hat, dann auch chekcen, ob 3 Monatsfrist exakt eingehalten wurde
echo"
<tr>
<td style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
</tr>
<tr>
<td valign='top' style=\"border-style: none; border-width: medium\" height=\"32\">
";
$titel = "Fristen Sonderfall";
$text = "Für die Fristen in Sonderfällen gilt die 3-5 Monate-Regelung nicht. Es müssen exakt 3 Monate belegt werden.";
echo"
<a href=\"javascript:void(0);\" onmouseover=\"return overlib('$text',ABOVE, TEXTFONTCLASS,'text_overlib', WIDTH, 350, CAPTION, '$titel',CAPTIONSIZE, '10px');\" onmouseout=\"nd();\"><b>$titel</b></a>
</td>
<td valign='top' align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">";
$db = dbconnect();
# Wenn Sonderfälle vorhanden sind, dann Schleife über alle Sonderfälle
# Sonderfälle = 3 Monate
# Bei 4 Blockfeld Showstopper, bei 12 Feld nur Rotwarnung
$query3 = "SELECT distinct t1.saaid, dst_id
FROM stan_antrag t1, stan_stellenart a
WHERE t1.status = (
SELECT MAX(t2.status)
FROM stan_antrag t2
WHERE t1.aendid = t2.aendid
AND status not in ('-1', '2')
)
AND t1.uid = '$uid1'
AND t1.art=a.artid
AND a.Merkmal LIKE '%S%'
AND (t1.zuweisung is NULL OR t1.zuweisung='Z')
";
$result3 = $db->query($query3)
or die ("Cannot execute query3");
echo "<table valign='top' width='100%'><tr><td valign='top' width='60%'><b>Stelle</b></td><td valign='top' ><b>Status</b></td></tr>";
while ($row5 = $result3->fetch_array()){
$min_max = $db->query("SELECT max( ende ) < DATE_SUB(DATE_ADD( min( beginn ), INTERVAL 3 MONTH ), INTERVAL 1 DAY) unter
,max( ende ) > DATE_ADD(min(beginn), INTERVAL 5 MONTH ) ueber
,date_format(DATE_SUB(DATE_ADD( min( beginn ), INTERVAL 5 MONTH ), INTERVAL 1 DAY),'%d.%m.%Y') frist_dat
FROM stan_tmp_check_data
WHERE saaid = '$row5[saaid]'
");
$row_minmax = $min_max->fetch_array();
$result5 = $db->query("SELECT concat(bezeichnung, ' ',name) name
FROM stan_dienststellen
WHERE dst_id ='$row5[dst_id]'");
$row5a = $result5->fetch_array();
$result6 = $db->query("SELECT bez
FROM stan_dienststellen_tmp
WHERE dst_id ='$row5[dst_id]'");
$row6 = $result6->fetch_array();
if($row5a['name'] != '' and $row6['bez'] == ''){
$bezeichnung = $row5a['name'];
}
if($row5a['name'] == '' and $row6['bez'] != ''){
$bezeichnung = $row6['bez'];
}
echo "<tr>
<td>$bezeichnung</td>
<td>";
// Abfrage, ob die Einzeltermine der Vertiefungsbereich zusammenhängend sind
if($row_minmax['unter'] == 0 AND $row_minmax['ueber'] == 0){
// Wenn das Ausland gleich 3 Monate erbibt. Select ergibt 1 bei exakt 3 Monaten bzw. 0 bei ungleich 3 Monaten
echo "<img border=\"0\" src=\"../images/ok.gif\">";
}else{
if($row_minmax['unter'] != 0){
$error_text = "Mindestzeit unterschritten!";
}
if($row_minmax['ueber'] != 0){
$error_text = "5 Monatsfrist endet am $row_minmax[frist_dat]";
}
echo "<img border=\"0\" src=\"../images/cross.jpg\"> ($error_text)<br>";
$result6a = $db->query("SELECT distinct 1
FROM stan_ausnahme
WHERE uid ='$uid1'");
$row6a = $result6a->fetch_array();
if($row6a[0] != 1){ # Showstopper bei 4 Blockfeld
$fehler = 'X';
}
}
echo"
</td>
</tr>";
}
echo "</table>
</td>
</tr>";
} // Ende ob Sonderfall vorhanden
if($row['Jahrgang'] >= '17'){
# Pflichtmodul ab jahrgang 17
echo "
<tr>
<td style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
&nbsp;
</td>
</tr>
<tr>
<td valign='top' style=\"border-style: none; border-width: medium\" height=\"32\">
";
$titel = "Anzahl Pflichtmodul";
$text = "Sie müssen das Pflichtmodul belegen<br><br>Pflichtmodul ist:<br>- Gemeinden bis zu 10.000 Einwohner";
echo"
<a href=\"javascript:void(0);\" onmouseover=\"return overlib('$text',ABOVE, TEXTFONTCLASS,'text_overlib', WIDTH, 350, CAPTION, '$titel',CAPTIONSIZE, '10px');\" onmouseout=\"nd();\"><b>$titel</b></a>
</td>
<td valign='top' align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">";
$db = dbconnect();
# echo "<img border=\"0\" src=\"../images/cross.jpg\"> ($anzahl_bereich[Anzahl] von 4 notwendigen Vertiefungsbereichen wurden abgedeckt)";
# echo "<p>";
#
$result3 = $db->query("SELECT count(*) Anz
FROM stan_antrag t1, stan_stellenart b
WHERE t1.status = (
SELECT MAX(t2.status)
FROM stan_antrag t2
WHERE t1.aendid = t2.aendid
AND status not in ('-1', '2')
)
AND b.Merkmal LIKE '%P%'
AND b.artid=t1.art
AND uid='$uid1'
AND (t1.zuweisung is NULL OR t1.zuweisung='Z')
");
$row5 = $result3->fetch_array();
if($row5[0] > 1 or $row5[0] < 1){
echo "<font color=red><b>Anzahl Pflichtmodule falsch: (Anzahl: $row5[0] von 1)</b></font>";
$result6a = $db->query("SELECT distinct 1
FROM stan_ausnahme
WHERE uid ='$uid1'");
$row6a = $result6a->fetch_array();
if($row6a[0] != 1){ # Showstopper bei 4 Blockfeld
$fehler = 'X';
}
}else{
echo "<font color=green><b>OK (Anzahl: $row5[0])</b></font>";
}
echo "
</td>
</tr>";
# Pflichtmodul Ende
} // Ende > jahrgang 17
echo"
</td>
</tr>
</table>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"> </td>
</tr>
</table>
<br>
</div>
</td>
</tr>
</table>
</body>
</html>";
$result_tmp1 = $db->query("DELETE FROM stan_tmp_check_data WHERE uid='$uid1'");
?>