Jahrgang wählen!"; exit; } if (isset($_GET['edit'])) { $_SESSION["ruhestand_status"] = 'edit'; $deid = $_GET['edit']; $_SESSION["ruhestand_deid"] = $deid; } else { $_SESSION["ruhestand_status"] = 'neu'; } # -- Fehlermeldungen -- # if (isset($_GET[error])) { $errorno = $_GET[error]; $smarty->assign('ruhestand_error', 1); $smarty->assign('ruhestand_value_funktion', $_SESSION["ruhestand_value_funktion"]); $smarty->assign('ruhestand_value_std', $_SESSION["ruhestand_value_sws"]); $smarty->assign('ruhestand_value_datumvon', $_SESSION["ruhestand_value_beginn_lastday"]); $smarty->assign('ruhestand_value_datumbis', $_SESSION["ruhestand_value_ende_funktion"]); if ($errorno == 2) { # mehrere Ruhestandsdaten $smarty->assign('ruhestand_error_text', "Es kann nur ein Ruhestandsdatum eingegeben werden!"); } if ($errorno == 3) { # ungültiges Datum $smarty->assign('ruhestand_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!"); } $jahrgang2 = $jahrgang+1; if ($errorno == 5) { $smarty->assign('ruhestand_error_text', "Das Datum ist außerhalb des Jahrgangs!
Datum muss im Bereich 01.09.$jahrgang - 31.08.$jahrgang2 liegen."); } } # --- Wenn Werte editiert werden ------------ if ($_SESSION["ruhestand_status"] == 'edit') { $result_edit = $db->query("SELECT deid, funktion, date_format(beginn, '%d.%m.%Y') beginn, date_format(ende, '%d.%m.%Y') ende, sws, lvs FROM dep_deputat_ermaessigung WHERE deid = $deid"); $row_edit = $result_edit->fetch_array(); $smarty->assign('ruhestand_status', $_SESSION["ruhestand_status"]); $smarty->assign('ruhestand_value_funktion', "$row_edit[funktion]"); $smarty->assign('ruhestand_value_datumvon', "$row_edit[beginn]"); $smarty->assign('ruhestand_value_datumbis', "$row_edit[ende]"); $smarty->assign('ruhestand_value_std', "$row_edit[sws]"); $smarty->assign('ruhestand_value_hinweise', "$row_edit[lvs]"); } # --- 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["ruhestand_status"] = 'neu'; } # Gespeicherte Werte $query2 = "SELECT deid, funktion, date_format(beginn, '%d.%m.%Y') beginn, date_format(ende, '%d.%m.%Y') ende, sws, lvs FROM dep_deputat_ermaessigung WHERE imtuid=$uid AND jahr=$jahrgang AND art LIKE '%Ruhestand%' ORDER BY deid ASC"; $result2 = $db->query($query2) or die("Cannot execute query2"); while ($row2 = $result2->fetch_array()) { $query_funktion = $db->query("SELECT bezeichnung FROM dep_kat_ermaessigung WHERE dkeid = '$row2[funktion]'"); $row_funktion = $query_funktion->fetch_array(); $lvs = number_format($row2['lvs'], 2, ',', '.'); $row2['lvs'] = $lvs; $row2['funktion'] = $row_funktion['bezeichnung']; $sws = number_format($row2['sws'], 2, ',', '.'); $row2['sws'] = $sws; $table_data2[] = $row2; } $smarty->assign('table_data2', $table_data2); # Jahressumme $query_jahrsum = $db->query("SELECT sum(lvs) summe_jahr FROM dep_deputat_ermaessigung WHERE imtuid=$uid AND art LIKE '%Ruhestand%' AND jahr=$jahrgang"); $row_jahrsum = $query_jahrsum->fetch_array(); $summe_jahr = number_format($row_jahrsum['summe_jahr'], 2, ',', '.'); $smarty->assign('ruhestand_value_summe_jahr', $summe_jahr); } if ($action == 'save') { $jahrgang2 = $jahrgang+1; $lastday = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['beginn_lastday']); if($lastday == ''){ $lastday = $jahrgang."-09-01"; } $_SESSION["ruhestand_value_beginn_lastday"] = $_POST['beginn_lastday']; $query_anz = $db->query("SELECT count(*) Anz FROM dep_deputat_ermaessigung WHERE imtuid=$uid AND art LIKE '%Ruhestand%' AND jahr=$jahrgang"); $row_anz = $query_anz->fetch_array(); if($row_anz['Anz' > 1] AND $_SESSION["ruhestand_status"] == 'neu'){ if($_SESSION["ruhestand_status"] == 'neu'){ echo ""; }else{ echo ""; } exit; } function validateDate($date, $format = 'Y-m-d') { $d = DateTime::createFromFormat($format, $date); return $d && $d->format($format) == $date; } if(!validateDate($lastday)){ if($_SESSION["ruhestand_status"] == 'neu'){ echo ""; }else{ echo ""; } exit; } # Ende ist immer Monatsletzter des angegebenen Monats $year_ende = substr($lastday,0,4); $mon_ende = substr($lastday,5,2); $day_ende = '01'; #substr($lastday,8,2); # Hier gibt man monatsersten an, die Funktion Y-m-t macht Monatsende draus $save_ende = "$year_ende-$mon_ende-$day_ende"; $L = new DateTime( $save_ende); $save_ende = $L->format( 'Y-m-t' ); # Datum außerhalb des Jahrgangs 01.09.-31.08 #echo strtotime($save_ende) ." > ". strtotime("$jahrgang2-08-31")."
"; #echo strtotime($save_ende) ." < ". strtotime("$jahrgang-09-01")."
"; #exit; if(strtotime($save_ende) > strtotime("$jahrgang2-08-31") OR strtotime($save_ende) < strtotime("$jahrgang-09-01") ){ if($_SESSION["ruhestand_status"] == 'neu'){ echo ""; }else{ echo ""; } exit; } $lvs = $_POST['lvs']; $datum = date("Y-m-d H:i:s"); if ($_SESSION["ruhestand_status"] == 'neu') { $sql1 = $db->query("INSERT INTO dep_deputat_ermaessigung ( imtuid , jahr , art , beginn , sort_order , created ) VALUES ( '$uid' , '$jahrgang' , 'Ermäßigung: Ruhestand während des Studienjahrs' , '$save_ende' , 1 , '$datum' ) "); } if ($_SESSION["ruhestand_status"] == 'edit') { $deid = $_SESSION["ruhestand_deid"]; $result = $db->query("UPDATE dep_deputat_ermaessigung SET beginn = '$save_ende' , modify_date = '$datum' WHERE deid = $deid "); unset($_SESSION['ruhestand_deid']); } # Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht $editende = 1; echo ""; } 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 ""; } $smarty->assign('action', "$action"); $smarty->display("$template/$templatename"); ?>