290 lines
11 KiB
PHP
Executable File
290 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"; # Livedarstellung der Rest LVS wird es nicht geben. Es wird im Jahresabschluss angezeigt
|
|
#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ählen!";
|
|
exit;
|
|
}
|
|
|
|
if (isset($_GET[error])) {
|
|
|
|
$errorno = $_GET[error];
|
|
|
|
$smarty->assign('tz_error', 1);
|
|
|
|
$smarty->assign('tz_value_umfang', $_SESSION["tz_umfang"]);
|
|
$smarty->assign('tz_value_beginn', $_SESSION["tz_beginn"]);
|
|
|
|
if ($errorno == 1) {
|
|
$smarty->assign('tz_error_text', "Es müssen Umfang und Beginndatum ausgewählt werden! ");
|
|
}
|
|
|
|
if ($errorno == 3) {
|
|
# ungültiges Datum
|
|
$smarty->assign('tz_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
|
|
}
|
|
if ($errorno == 4) {
|
|
$smarty->assign('tz_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('tz_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('tz_error_text', "Wenn eine Schwerbehinderung erfasst wurde, darf keine Teilzeit 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["tz_status"] = 'edit';
|
|
$deid = $_GET['edit'];
|
|
$_SESSION["tz_deid"] = $deid;
|
|
} else {
|
|
$_SESSION["tz_status"] = 'neu';
|
|
}
|
|
|
|
# --- Wenn Werte editiert werden ------------
|
|
if ($_SESSION["tz_status"] == 'edit') {
|
|
|
|
$result_edit = $db->query("SELECT deid, date_format(beginn, '%d.%m.%Y') beginn, prozent
|
|
FROM dep_deputat_ermaessigung
|
|
WHERE deid = $deid
|
|
AND art = 'Teilzeit'");
|
|
$row_edit = $result_edit->fetch_array();
|
|
$smarty->assign('tz_value_umfang', "$row_edit[prozent]");
|
|
$smarty->assign('tz_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["tz_status"] = 'neu';
|
|
}
|
|
|
|
|
|
|
|
# Gespeicherte Werte
|
|
# Was ist die Standard LVS
|
|
$query_baselvs = $db->query("SELECT lvs
|
|
FROM dep_kat_lvs
|
|
WHERE jahr <=$jahrgang
|
|
ORDER BY jahr desc
|
|
LIMIT 1");
|
|
$row_baselvs = $query_baselvs->fetch_array();
|
|
$baselvs = $row_baselvs['lvs'];
|
|
$smarty->assign('tz_baselvs', $baselvs);
|
|
|
|
$jahrgang2 = $jahrgang+1;
|
|
$max_dat = $jahrgang2.'-09-01';
|
|
$query2 = "SELECT deid, date_format(beginn, '%d.%m.%Y') beginn_form, prozent, beginn
|
|
FROM dep_deputat_ermaessigung
|
|
WHERE imtuid=$uid
|
|
AND jahr=$jahrgang
|
|
AND beginn < '$max_dat'
|
|
AND art = 'Teilzeit'
|
|
ORDER BY beginn ASC";
|
|
$result2 = $db->query($query2) or die("Cannot execute query2");
|
|
|
|
while ($row2 = $result2->fetch_array()) {
|
|
$prozent = $row2['prozent']*100;
|
|
$row2['prozent'] = $prozent;
|
|
$table_data2[] = $row2;
|
|
}
|
|
$smarty->assign('table_data2', $table_data2);
|
|
|
|
}
|
|
#$lvs= number_format(lvs_teilzeit($uid,$jahrgang), 2, ',', '.');
|
|
#$smarty->assign('tz_value_lvs', $lvs);
|
|
|
|
|
|
if ($action == 'save') {
|
|
$jahrgang2 = $jahrgang+1;
|
|
|
|
$umfang = $_POST['umfang'];
|
|
$beginn = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['beginn_teilzeit']);
|
|
|
|
|
|
$_SESSION["tz_umfang"] = $umfang;
|
|
$_SESSION["tz_beginn"] = $_POST['beginn_teilzeit'];
|
|
|
|
function validateDate($date, $format = 'Y-m-d')
|
|
{
|
|
$d = DateTime::createFromFormat($format, $date);
|
|
return $d && $d->format($format) == $date;
|
|
}
|
|
|
|
if(!validateDate($beginn)){
|
|
if($_SESSION["tz_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[tz_deid]\">";
|
|
}
|
|
exit;
|
|
}
|
|
|
|
|
|
if ($beginn == '' OR $umfang == '') {
|
|
if($_SESSION["tz_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[tz_deid]\">";
|
|
}
|
|
exit;
|
|
}
|
|
|
|
/* Teilzeiten 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 = 'Teilzeit'");
|
|
$row_beginndop = $query_beginndop->fetch_array();
|
|
if($row_beginndop['Anz'] > 0 AND $_SESSION["tz_status"] != 'edit'){
|
|
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?
|
|
4\">";
|
|
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["tz_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[tz_deid]\">";
|
|
}
|
|
exit;
|
|
}
|
|
|
|
$result_tz = $db->query("SELECT count(*) Anz
|
|
FROM dep_deputat_ermaessigung
|
|
WHERE jahr = '$jahrgang'
|
|
AND art = 'Schwerbehinderung'
|
|
AND imtuid=$uid
|
|
AND prozent > 0");
|
|
$row_tz = $result_tz->fetch_array();
|
|
if($row_tz['Anz']>0){
|
|
if($_SESSION["tz_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[tz_deid]\">";
|
|
}
|
|
exit;
|
|
}
|
|
|
|
# Datum vor Schuljahr, dann Schuljahrbeginn
|
|
if($dat_ende >= $dat_max or $ende_funktion == ''){
|
|
$ende_funktion = $jahrgang2."-08-31";
|
|
}
|
|
|
|
# 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 = 'Teilzeit'");
|
|
#$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 100 % 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'
|
|
# , 'Teilzeit'
|
|
# , '1.00'
|
|
# , 4
|
|
# , '$datum'
|
|
# )
|
|
# ");
|
|
#
|
|
#}
|
|
|
|
$datum = date("Y-m-d H:i:s");
|
|
if ($_SESSION["tz_status"] == 'neu') {
|
|
$sql1 = $db->query("INSERT INTO dep_deputat_ermaessigung ( jahr
|
|
, beginn
|
|
, imtuid
|
|
, art
|
|
, prozent
|
|
, sort_order
|
|
, created
|
|
)
|
|
VALUES
|
|
( '$jahrgang'
|
|
, '$save_beginn'
|
|
, '$uid'
|
|
, 'Teilzeit'
|
|
, '$umfang'
|
|
, 4
|
|
, '$datum'
|
|
)
|
|
");
|
|
|
|
|
|
}
|
|
|
|
if ($_SESSION["tz_status"] == 'edit') {
|
|
$deid = $_SESSION["tz_deid"];
|
|
$result = $db->query("UPDATE dep_deputat_ermaessigung
|
|
SET beginn = '$save_beginn'
|
|
, prozent = '$umfang'
|
|
, modify_date = '$datum'
|
|
WHERE deid = $deid
|
|
AND art = 'Teilzeit'
|
|
");
|
|
}
|
|
$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 AND art = 'Teilzeit'");
|
|
|
|
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
|
|
}
|
|
|
|
$smarty->assign('action', "$action");
|
|
$smarty->display("$template/$templatename");
|
|
|
|
?>
|