deputat/erm_behinderung.php
2023-04-25 13:25:59 +02:00

285 lines
11 KiB
PHP
Executable File

<?php
session_start();
$jahrgang = $_SESSION["jahrgang"];
include_once 'classes/TestProjektSmarty.class.php';
require_once("config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
$smarty = new Smarty();
require_once "functions.php";
require_once "language/german.inc.php";
#require_once "func_lvs_teilzeit.php";
#require_once "func_lvs_exk_eintaegig.php";
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
if ($jahrgang == "") {
echo "Bitte zuerst <a href='jahrgang.php'>Jahrgang</a> w&auml;hlen!";
exit;
}
if (isset($_GET[error])) {
$errorno = $_GET[error];
$smarty->assign('beh_error', 1);
$smarty->assign('beh_value_behinderungsgrad', $_SESSION["beh_behinderungsgrad"]*100);
if ($errorno == 1) {
$smarty->assign('beh_error_text', "Es muß die prozentuale Ermäßigung angegeben werden! ");
}
if ($errorno == 2) {
$smarty->assign('beh_error_text', "Der Behinderungsgrad muss zwischen 0 und 100% liegen! ");
}
if ($errorno == 3) {
$smarty->assign('beh_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
}
if ($errorno == 4) {
$smarty->assign('beh_error_text', "Das Datum ist bereits vorhanden!<br>Bearbeiten Sie ggf. das vorhandene Datum mit dem Bleistiftsymbol.");
}
$jahrgang2 = $jahrgang+1;
if ($errorno == 5) {
$smarty->assign('beh_error_text', "Das Datum ist außerhalb des Jahrgangs!<br>Datum muss im Bereich 01.09.$jahrgang - 31.08.$jahrgang2 liegen.");
}
if ($errorno == 6) {
$smarty->assign('beh_error_text', "Wenn eine Teilzeit erfasst wurde, darf keine Schwerbehinderung erfasst werden.<br> Setzen Sie sich mit dem Administrator in Verbindung, <b>sobald Sie das aktuelle Jahr abgeschlossen haben.</b>");
}
}
if (isset($_GET['edit'])) {
$_SESSION["beh_status"] = 'edit';
$deid = $_GET['edit'];
$_SESSION["beh_deid"] = $deid;
} else {
$_SESSION["beh_status"] = 'neu';
}
# --- Wenn Werte editiert werden ------------
if ($_SESSION["beh_status"] == 'edit') {
$result_edit = $db->query("SELECT deid, date_format(beginn, '%d.%m.%Y') beginn, prozent*100 behinderungsgrad
FROM dep_deputat_ermaessigung
WHERE deid = $deid");
$row_edit = $result_edit->fetch_array();
$smarty->assign('beh_value_behinderungsgrad', "$row_edit[behinderungsgrad]");
$smarty->assign('beh_value_beginn', "$row_edit[beginn]");
}
# --- Wenn Werte editiert werden Ende -------
if ($_GET['editende'] == 1) {
# Editieren ist beendet, als ein update auf einen Datensatz. Dann ist der status wieder Neu, damit wird wieder ein Insert durchgeführt
$_SESSION["beh_status"] = 'neu';
}
# Gespeicherte Werte
$query2 = "SELECT deid, date_format(beginn, '%d.%m.%Y') beginn_form, prozent behinderungsgrad, beginn
FROM dep_deputat_ermaessigung
WHERE imtuid=$uid
AND art = 'Schwerbehinderung'
AND jahr=$jahrgang
ORDER BY beginn ASC";
$result2 = $db->query($query2) or die("Cannot execute query2:<br>$query2<br>");
while ($row2 = $result2->fetch_array()) {
$behinderungsgrad = number_format($row2['behinderungsgrad']*100, 1, ',', '.');
$row2['behinderungsgrad'] = $behinderungsgrad;
$table_data2[] = $row2;
}
$smarty->assign('table_data2', $table_data2);
}
if ($action == 'save') {
$jahrgang2 = $jahrgang+1;
$behinderungsgrad = str_replace(',','.',str_replace('.','', $_POST['behinderung']))/100;
$beginn = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['beginn_behinderung']);
$_SESSION["beh_behinderungsgrad"] = $behinderungsgrad;
$_SESSION["beh_beginn"] = $_POST['beginn_behinderung'];
function validateDate($date, $format = 'Y-m-d')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
if ($_POST['behinderung'] == "" ) {
if($_SESSION["beh_status"] == 'neu'){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
}else{
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1&edit=$_SESSION[beh_deid]\">";
}
exit;
}
if ($behinderungsgrad < 0 or $behinderungsgrad > 1 ) {
# Außerhalb den Werten
if($_SESSION["beh_status"] == 'neu'){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2\">";
}else{
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2&edit=$_SESSION[beh_deid]\">";
}
exit;
}
if(!validateDate($beginn)){
if($_SESSION["beh_status"] == 'neu'){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
}else{
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3&edit=$_SESSION[beh_deid]\">";
}
exit;
}
/* Schwerbehinderungen werden immer nur ganze Monate vergeben*/
$year_start = substr($beginn,0,4);
$mon_start = substr($beginn,5,2);
$day_start = '01'; #substr($beginn,8,2);
$save_beginn = "$year_start-$mon_start-$day_start";
# Doppeltes Datum prüfen
$query_beginndop = $db->query("SELECT count(*) Anz
FROM dep_deputat_ermaessigung
WHERE beginn = '$save_beginn'
AND imtuid = $uid
AND art = 'Schwerbehinderung'");
$row_beginndop = $query_beginndop->fetch_array();
if($row_beginndop['Anz'] > 0 AND $_SESSION["beh_status"] != 'edit'){
if($_SESSION["beh_status"] == 'neu'){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=4\">";
}else{
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=4&edit=$_SESSION[beh_deid]\">";
}
exit;
}
# Datum außerhalb des Jahrgangs 01.09.-31.08
if(strtotime($save_beginn) > strtotime("$jahrgang2-08-31") OR strtotime($save_beginn) < strtotime("$jahrgang-09-01")){
if($_SESSION["beh_status"] == 'neu'){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=5\">";
}else{
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=5&edit=$_SESSION[beh_deid]\">";
}
exit;
}
$result_beh = $db->query("SELECT count(*) Anz
FROM dep_deputat_ermaessigung
WHERE jahr = '$jahrgang'
AND art = 'Teilzeit'
AND imtuid=$uid
AND prozent < 1");
$row_beh = $result_beh->fetch_array();
if($row_beh['Anz']>0){
if($_SESSION["beh_status"] == 'neu'){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=6\">";
}else{
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=6&edit=$_SESSION[beh_deid]\">";
}
exit;
}
# Datum nach Schulnahrbeginn > 01.09, dann wird 100% zugrunde gelegt ab 01.09
# Prüfen, ob ein Datum ab 01.09. vorliegt
#$beginn = $jahrgang."-09-01";
#$query_beginn = $db->query("SELECT count(*) Anz
# FROM dep_deputat_ermaessigung
# WHERE beginn = '$beginn'
# AND imtuid = $uid
# AND art = 'Schwerbehinderung'");
#$row_beginn = $query_beginn->fetch_array();
#if($row_beginn['Anz'] == 0 AND $beginn != $save_beginn){
## Wenn er zu kein beginn erfasst hat und dies auch aktuell nicht vor hat, dann Startwert auf 0 % setzen. Prof kann den Wert nachträglich bearbeiten
# $sql1 = $db->query("INSERT INTO dep_deputat_ermaessigung ( jahr
# , beginn
# , imtuid
# , art
# , prozent
# , sort_order
# , created
# )
# VALUES
# ( '$jahrgang'
# , '$beginn'
# , '$uid'
# , 'Schwerbehinderung'
# , '0'
# , 3
# , '$datum'
# )
# ");
#
#}
$datum = date("Y-m-d H:i:s");
if ($_SESSION["beh_status"] == 'neu') {
$sql1 = $db->query("INSERT INTO dep_deputat_ermaessigung ( jahr
, imtuid
, art
, beginn
, prozent
, sort_order
, created
)
VALUES
( '$jahrgang'
, '$uid'
, 'Schwerbehinderung'
, '$save_beginn'
, '$behinderungsgrad'
, 3
, '$datum'
)
");
}
if ($_SESSION["beh_status"] == 'edit') {
$deid = $_SESSION["beh_deid"];
$result = $db->query("UPDATE dep_deputat_ermaessigung
SET beginn = '$save_beginn'
, prozent = '$behinderungsgrad'
, modify_date = '$datum'
WHERE deid = $deid
");
}
$editende = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende\">";
}
if ($action == 'del') {
$deid = $_GET['deid'];
## Muss man nochmals überdenken, wenn ein Prof noch Deputate erfasst hat.
$del1 = $db->query("DELETE FROM dep_deputat_ermaessigung WHERE deid = $deid AND imtuid=$uid");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}
$smarty->assign('action', "$action");
$smarty->display("$template/$templatename");
?>