893 lines
53 KiB
PHP
Executable File
893 lines
53 KiB
PHP
Executable File
<?php
|
|
include("kurs/datenbankanbindung.php"); // fü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überprü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\">
|
|
|
|
</td>
|
|
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
|
|
|
|
</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\">
|
|
|
|
</td>
|
|
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
|
|
|
|
</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\">
|
|
|
|
</td>
|
|
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
|
|
|
|
</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\">
|
|
|
|
</td>
|
|
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
|
|
|
|
</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\">
|
|
|
|
</td>
|
|
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
|
|
|
|
</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\">
|
|
|
|
</td>
|
|
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
|
|
|
|
</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\">
|
|
|
|
</td>
|
|
<td align=\"left\" style=\"border-style: none; border-width: medium\" height=\"32\">
|
|
|
|
</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'");
|
|
?>
|