prognose_ludwigsburg/prof_bearbeiten.php_20180314
2023-04-26 13:17:21 +02:00

596 lines
22 KiB
Plaintext
Executable File

<?php
/*
# Fuer debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);
#echo __LINE__."<br>";
*/
include_once './classes/TestProjektSmarty.class.php';
$smarty = new Smarty();
require_once("./config.inc.php");
$template = "standard";
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
require_once "./language/german.inc.php";
require_once("func_rollenrechte.php");
// Rechteüberprüfung
#$db = dbconnect();
if ($user_admin == ""){ require("index.php"); exit;} //Wenn man nicht angemeldet ist, darf man nicht auf die Seite
if(!rore($user_admin,'a_profbearb','RE')){echo "Keine Rechte";exit;}
// Rechteüberprüfung ende
session_start();
# Wenn Seite neu aufgerufen wird, dann alle Sessions, die mit "bearbeiten_" beginnen löschen
if(isset($_GET['new']) AND $_GET['new'] == 1){;
$search_prefix = 'bearbeiten_';
$search_len = strlen($search_prefix);
foreach( $_SESSION as $key => $value){
if ( substr( $key, 0, $search_len) == $search_prefix) {
unset( $_SESSION[$key]);
}
}
}
if(isset($_GET['action'])){
$action = $_GET['action'];
}else{
$action = '';
}
if($action == ''){
$query_prof = "SELECT did, doz_titel, doz_vorname, doz_name
FROM prog_professor
ORDER BY doz_name ASC";
$result_prof = $db->query($query_prof)
or die ("Cannot execute query prof");
while ($row_prof = $result_prof->fetch_array()){
$value_prof[] = $row_prof;
}
$smarty->assign('table_data3', $value_prof);
$_SESSION["prof_bearbeiten_status"] = 'neu';
$_SESSION["prof_bearbeiten_vza_status"] = 'neu';
}
if($action == 'auswahl'){
$_SESSION["bearbeiten_did"] = $_POST["prof"];
if(isset($_SESSION["bearbeiten_did"])){
$did = $_SESSION["bearbeiten_did"];
}
if(isset($_GET["did"])){
$did = $_GET["did"];
}
$smarty->assign('prof_bearbeiten_did', $did);
$_SESSION["prof_bearbeiten_did"] = $did;
$result_edit = $db->query("SELECT doz_titel
, doz_vorname
, doz_name
, date_format(geb_dat, '%d') gebtag_tag
, date_format(geb_dat, '%m') gebtag_monat
, date_format(geb_dat, '%Y') gebtag_jahr
, date_format(zugang, '%d') zugang_tag
, date_format(zugang, '%m') zugang_monat
, date_format(zugang, '%Y') zugang_jahr
, date_format(weggang, '%d') weggang_tag
, date_format(weggang, '%m') weggang_mon
, date_format(weggang, '%Y') weggang_jahr
, date_format(nachbesetzung, '%d') nachbes_tag
, date_format(nachbesetzung, '%m') nachbes_mon
, date_format(nachbesetzung, '%Y') nachbes_jahr
, anz_zulagen
FROM prog_professor
WHERE did = $did");
$row_edit = $result_edit->fetch_array();
# Schleife über Besoldungsstufen
$query2 = "SELECT pbid
, date_format(startdat, '%d.%m.%Y') startdat_form
, besoldung
, substr(besoldung,1,1) besform
, stufe
, bzid
FROM prog_professor_besoldung
WHERE did = $did
ORDER BY startdat DESC";
$result2 = $db->query( $query2)
or die ("Cannot execute query2");
while ($row2 = $result2->fetch_array()){
$result_bz = $db->query("SELECT beschreibung
FROM prog_kat_besoldungszuweisung
WHERE bzid = $row2[bzid]");
$row_bz = $result_bz->fetch_array();
if($row2['besform'] == "W"){
$stufeform = "-";
}elseif(($row2['besform'] == "A" or $row2['besform'] == "C") AND $row2['stufe'] == 0){
$stufeform = "unrelevant für Vergaberahmen";
}else{
$stufeform = $row2['stufe'];
}
$row2['stufeform'] = $stufeform;
$row2['zuweisung'] = $row_bz['beschreibung'];
$value_bes[] = $row2;
}
$smarty->assign('table_data2', $value_bes);
# Schleife über Beschäftigungsgrad
$query3 = "SELECT pad
, date_format(startdat, '%d.%m.%Y') startdat_form
, prozent
FROM prog_professor_arbumfang
WHERE did = $did
ORDER BY startdat DESC";
$result3 = $db->query( $query3)
or die ("Cannot execute query3");
while ($row3 = $result3->fetch_array()){
$row3['anz_proz'] = $row3['prozent']*100;
$value_vza[] = $row3;
}
$smarty->assign('table_data3', $value_vza);
# Schleife über Besoldungszuweisung
$query4 = "SELECT bzid
, beschreibung
FROM prog_kat_besoldungszuweisung
ORDER BY bzid ASC";
$result4 = $db->query( $query4)
or die ("Cannot execute query4");
while ($row4 = $result4->fetch_array()){
$value_zuw[] = $row4;
}
$smarty->assign('table_data4', $value_zuw);
# Daten aufbereiten für Zurückbutton
if(isset($_SESSION["bearbeiten_titel"])){
$smarty->assign('prof_bearbeiten_titel', $_SESSION["bearbeiten_titel"]);
}else{
$smarty->assign('prof_bearbeiten_titel', $row_edit["doz_titel"]);
}
if(isset($_SESSION["bearbeiten_vorname"])){
$smarty->assign('prof_bearbeiten_vorname', $_SESSION["bearbeiten_vorname"]);
}else{
$smarty->assign('prof_bearbeiten_vorname', $row_edit["doz_vorname"]);
}
if(isset($_SESSION["bearbeiten_nachname"])){
$smarty->assign('prof_bearbeiten_nachname', $_SESSION["bearbeiten_nachname"]);
}else{
$smarty->assign('prof_bearbeiten_nachname', $row_edit["doz_name"]);
}
if(isset($_SESSION["bearbeiten_gebtag_tag"])){
$smarty->assign('prof_bearbeiten_gebdat_tag', $_SESSION["bearbeiten_gebtag_tag"]);
}else{
$smarty->assign('prof_bearbeiten_gebdat_tag', $row_edit["gebtag_tag"]);
}
if(isset($_SESSION["bearbeiten_gebtag_mon"])){
$smarty->assign('prof_bearbeiten_gebdat_mon', $_SESSION["bearbeiten_gebtag_mon"]);
}else{
$smarty->assign('prof_bearbeiten_gebdat_mon', $row_edit["gebtag_monat"]);
}
if(isset($_SESSION["bearbeiten_gebtag_jahr"])){
$smarty->assign('prof_bearbeiten_gebdat_jahr', $_SESSION["bearbeiten_gebtag_jahr"]);
}else{
$smarty->assign('prof_bearbeiten_gebdat_jahr', $row_edit["gebtag_jahr"]);
}
if(isset($_SESSION["bearbeiten_zugang_tag"])){
$smarty->assign('prof_bearbeiten_zugang_tag', $_SESSION["bearbeiten_zugang_tag"]);
}else{
$smarty->assign('prof_bearbeiten_zugang_tag', $row_edit["zugang_tag"]);
}
if(isset($_SESSION["bearbeiten_zugang_mon"])){
$smarty->assign('prof_bearbeiten_zugang_mon', $_SESSION["bearbeiten_zugang_mon"]);
}else{
$smarty->assign('prof_bearbeiten_zugang_mon', $row_edit["zugang_monat"]);
}
if(isset($_SESSION["bearbeiten_zugang_jahr"])){
$smarty->assign('prof_bearbeiten_zugang_jahr', $_SESSION["bearbeiten_zugang_jahr"]);
}else{
$smarty->assign('prof_bearbeiten_zugang_jahr', $row_edit["zugang_jahr"]);
}
if(isset($_SESSION["bearbeiten_weggang_tag"])){
$smarty->assign('prof_bearbeiten_weggang_tag', $_SESSION["bearbeiten_weggang_tag"]);
}else{
$smarty->assign('prof_bearbeiten_weggang_tag', $row_edit["weggang_tag"]);
}
if(isset($_SESSION["bearbeiten_weggang_mon"])){
$smarty->assign('prof_bearbeiten_weggang_mon', $_SESSION["bearbeiten_weggang_mon"]);
}else{
$smarty->assign('prof_bearbeiten_weggang_mon', $row_edit["weggang_mon"]);
}
if(isset($_SESSION["bearbeiten_weggang_jahr"])){
$smarty->assign('prof_bearbeiten_weggang_jahr', $_SESSION["bearbeiten_weggang_jahr"]);
}else{
$smarty->assign('prof_bearbeiten_weggang_jahr', $row_edit["weggang_jahr"]);
}
if(isset($_SESSION["bearbeiten_nachbes_tag"])){
$smarty->assign('prof_bearbeiten_nachbes_tag', $_SESSION["bearbeiten_nachbes_tag"]);
}else{
$smarty->assign('prof_bearbeiten_nachbes_tag', $row_edit["nachbes_tag"]);
}
if(isset($_SESSION["bearbeiten_nachbes_mon"])){
$smarty->assign('prof_bearbeiten_nachbes_mon', $_SESSION["bearbeiten_nachbes_mon"]);
}else{
$smarty->assign('prof_bearbeiten_nachbes_mon', $row_edit["nachbes_mon"]);
}
if(isset($_SESSION["bearbeiten_nachbes_jahr"])){
$smarty->assign('prof_bearbeiten_nachbes_jahr', $_SESSION["bearbeiten_nachbes_jahr"]);
}else{
$smarty->assign('prof_bearbeiten_nachbes_jahr', $row_edit["nachbes_jahr"]);
}
if(isset($_SESSION["bearbeiten_deltas"])){
$smarty->assign('prof_bearbeiten_deltas', $_SESSION["bearbeiten_deltas"]);
}else{
$smarty->assign('prof_bearbeiten_deltas', $row_edit["anz_zulagen"]);
}
# Daten aufbereiten für Zurückbutton ENDE
# Edit
if(isset($_GET['edit'])){
$_SESSION["prof_bearbeiten_status"] = 'edit';
$pbid = $_GET['edit'];
$_SESSION["prof_bearbeiten_pbid"] = $pbid;
$pad = $_SESSION["prof_bearbeiten_pad"];
}
if(isset($_GET['edit_vza'])){
$_SESSION["prof_bearbeiten_vza_status"] = 'edit';
$pad = $_GET['edit_vza'];
$_SESSION["prof_bearbeiten_pad"] = $pad;
$pbid = $_SESSION["prof_bearbeiten_pbid"];
}
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["prof_bearbeiten_status"] = 'neu';
}
if($_GET['editendevza']==1){
# Editieren von VZA ist beendet, als ein update auf einen Datensatz. Dann ist der status wieder Neu, damit wird wieder ein Insert durchgeführt
$_SESSION["prof_bearbeiten_vza_status"] = 'neu';
}
# --- Wenn Werte editiert werden ------------
if($_SESSION["prof_bearbeiten_status"] == 'edit'){
$result_edit = $db->query("SELECT date_format(startdat, '%d') startdat_tag
, date_format(startdat, '%m') startdat_mon
, date_format(startdat, '%Y') startdat_jahr
, besoldung
, stufe
, bzid
FROM prog_professor_besoldung
WHERE pbid = $pbid");
$row_edit = $result_edit->fetch_array();
$smarty->assign('prof_bearbeiten_startdat_tag', "$row_edit[startdat_tag]");
$smarty->assign('prof_bearbeiten_startdat_mon', "$row_edit[startdat_mon]");
$smarty->assign('prof_bearbeiten_startdat_jahr', "$row_edit[startdat_jahr]");
$smarty->assign('prof_bearbeiten_besoldung', "$row_edit[besoldung]");
$smarty->assign('prof_bearbeiten_stufe', "$row_edit[stufe]");
$smarty->assign('prof_bearbeiten_zuweisung', "$row_edit[bzid]");
}
# --- Wenn Werte editiert werden Ende -------
# --- Wenn Werte VZA editiert werden ------------
if($_SESSION["prof_bearbeiten_vza_status"] == 'edit'){
$result_editvza = $db->query("SELECT date_format(startdat, '%d') startdat_tag
, date_format(startdat, '%m') startdat_mon
, date_format(startdat, '%Y') startdat_jahr
, prozent
FROM prog_professor_arbumfang
WHERE pad = $pad");
$row_editvza = $result_editvza->fetch_array();
$smarty->assign('prof_bearbeiten_vza_startdat_tag', "$row_editvza[startdat_tag]");
$smarty->assign('prof_bearbeiten_vza_startdat_mon', "$row_editvza[startdat_mon]");
$smarty->assign('prof_bearbeiten_vza_startdat_jahr', "$row_editvza[startdat_jahr]");
$smarty->assign('prof_bearbeiten_vza_prozent', "$row_editvza[prozent]");
}
# --- Wenn Werte editiert werden Ende -------
}
if($action == 'save_vza'){
# VZA speichern
$prof = $_SESSION["prof_bearbeiten_did"];
$startdat = $_POST['jahr6']."-".$_POST['mon6']."-".$_POST['tag6'];
$umfang = $_POST['umfang'];
if($_SESSION["prof_bearbeiten_vza_status"] == 'neu'){
$result = $db->query("INSERT INTO prog_professor_arbumfang (startdat, did, prozent) VALUES ('$startdat', $prof, '$umfang')");
}
if($_SESSION["prof_bearbeiten_vza_status"] == 'edit'){
$pad = $_SESSION["prof_bearbeiten_pad"];
$result = $db->query("UPDATE prog_professor_arbumfang
SET startdat = '$startdat'
,prozent = '$umfang'
WHERE pad = $pad
");
unset($_SESSION['prof_bearbeiten_pad']);
}
# Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht
$editendevza=1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=auswahl&did=$prof&editendevza=$editendevza\">";
}
if($action == 'del_vza'){
# Besoldung löschen
$prof = $_SESSION["prof_bearbeiten_did"];
$pad = $_GET['pad'];
$result = $db->query("DELETE FROM prog_professor_arbumfang
WHERE pad=$pad");
# Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht
$editendevza=1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=auswahl&did=$prof&editendevza=$editendevza\">";
}
if($action == 'save_besoldung'){
# Besoldung speichern
$prof = $_SESSION["prof_bearbeiten_did"];
$startdat = $_POST['jahr5']."-".$_POST['mon5']."-".$_POST['tag5'];
$besoldung = $_POST['besoldung'];
$bzid = $_POST['zuweisung'];
if(substr($_POST['besoldung'],0,1) == 'W'){
# Bei W-Besoldung gibt es keine Stufen
$stufe =0;
}
if(substr($_POST['besoldung'],0,1) == 'A'){
$stufe = $_POST['stufeA'];
}
if(substr($_POST['besoldung'],0,1) == 'C'){
$stufe = $_POST['stufeC'];
}
if($_SESSION["prof_bearbeiten_status"] == 'neu'){
$result = $db->query("INSERT INTO prog_professor_besoldung (startdat, did, besoldung, stufe, bzid) VALUES ('$startdat', $prof, '$besoldung', '$stufe', $bzid)");
}
if($_SESSION["prof_bearbeiten_status"] == 'edit'){
$pbid = $_SESSION["prof_bearbeiten_pbid"];
$result = $db->query("UPDATE prog_professor_besoldung
SET startdat = '$startdat'
, besoldung = '$besoldung'
, stufe = '$stufe'
, bzid = $bzid
WHERE pbid = $pbid
");
unset($_SESSION['prof_bearbeiten_pbid']);
}
# Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht
$editende=1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=auswahl&did=$prof&editende=$editende\">";
}
if($action == 'del'){
# Besoldung löschen
$prof = $_SESSION["prof_bearbeiten_did"];
$pbid = $_GET['pbid'];
$result = $db->query("DELETE FROM prog_professor_besoldung
WHERE pbid=$pbid");
# Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht
$editende=1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=auswahl&did=$prof&editende=$editende\">";
}
if($action == 'overview'){
# Daten aus Startseite speichern
if(isset($_POST['titel'])){
$_SESSION["bearbeiten_titel"] = $_POST['titel'];
}
if(isset($_POST['vorname'])){
$_SESSION["bearbeiten_vorname"] = $_POST['vorname'];
}
if(isset($_POST['nachname'])){
$_SESSION["bearbeiten_nachname"] = $_POST['nachname'];
}
if(isset($_POST['besoldung'])){
$_SESSION["bearbeiten_tatsbes"] = $_POST['besoldung'];
}
if(isset($_POST['delta'])){
$_SESSION["bearbeiten_deltas"] = $_POST['delta'];
}
if(isset($_POST['tag1'])){
$_SESSION["bearbeiten_gebtag_tag"] = $_POST['tag1'];
}
if(isset($_POST['mon1'])){
$_SESSION["bearbeiten_gebtag_mon"] = $_POST['mon1'];
}
if(isset($_POST['jahr1'])){
$_SESSION["bearbeiten_gebtag_jahr"] = $_POST['jahr1'];
}
if(isset($_POST['tag2'])){
$_SESSION["bearbeiten_zugang_tag"] = $_POST['tag2'];
}
if(isset($_POST['mon2'])){
$_SESSION["bearbeiten_zugang_mon"] = $_POST['mon2'];
}
if(isset($_POST['jahr2'])){
$_SESSION["bearbeiten_zugang_jahr"] = $_POST['jahr2'];
}
if(isset($_POST['tag3'])){
$_SESSION["bearbeiten_weggang_tag"] = $_POST['tag3'];
}
if(isset($_POST['mon3'])){
$_SESSION["bearbeiten_weggang_mon"] = $_POST['mon3'];
}
if(isset($_POST['jahr3'])){
$_SESSION["bearbeiten_weggang_jahr"] = $_POST['jahr3'];
}
if(isset($_POST['tag4'])){
$_SESSION["bearbeiten_nachbes_tag"] = $_POST['tag4'];
}
if(isset($_POST['mon4'])){
$_SESSION["bearbeiten_nachbes_mon"] = $_POST['mon4'];
}
if(isset($_POST['jahr4'])){
$_SESSION["bearbeiten_nachbes_jahr"] = $_POST['jahr4'];
}
# Daten aus Startseite speichern ENDE
if ($_SESSION["bearbeiten_nachname"] == ""
or $_SESSION["bearbeiten_vorname"] == ""
or $_SESSION["bearbeiten_tatsbes"] == ""
or $_SESSION["bearbeiten_deltas"] == ""
or $_SESSION["bearbeiten_gebtag_tag"] == ""
or $_SESSION["bearbeiten_gebtag_mon"] == ""
or $_SESSION["bearbeiten_gebtag_jahr"] == ""
or $_SESSION["bearbeiten_zugang_tag"] == ""
or $_SESSION["bearbeiten_zugang_mon"] == ""
or $_SESSION["bearbeiten_zugang_jahr"] == ""
or $_SESSION["bearbeiten_weggang_tag"] == ""
or $_SESSION["bearbeiten_weggang_mon"] == ""
or $_SESSION["bearbeiten_weggang_jahr"] == ""
){ // Fehler, falls Pflichtfelder unausgef&uuml;llt
$smarty->assign('prof_bearbeiten_mandatory', "1");
}else{
$smarty->assign('prof_bearbeiten_mandatory', "2");
if(isset($_SESSION['bearbeiten_profil'])){
$profil = $_SESSION['bearbeiten_profil'];
$bezeichnung_profil = "";
for ($i=0;$i<sizeof($profil);$i++) {
$result_profil = $db->query("SELECT bezeichnung FROM prog_admin_rolle WHERE rid='$profil[$i]'");
$row_profil = $result_profil->fetch_array();
$bezeichnung_profil .= "$row_profil[bezeichnung]<br>";
}
}
$gebtag = $_POST['tag1'].".".$_POST['mon1'].".".$_POST['jahr1'];
$zugang = $_POST['tag2'].".".$_POST['mon2'].".".$_POST['jahr2'];
$weggang = $_POST['tag3'].".".$_POST['mon3'].".".$_POST['jahr3'];
if($_POST['tag4'] == ''){$_POST['tag4'] = "00";}
if($_POST['mon4'] == ''){$_POST['mon4'] = "00";}
if($_POST['jahr4'] == ''){$_POST['jahr4'] = "0000";}
$nachbes = $_POST['tag4'].".".$_POST['mon4'].".".$_POST['jahr4'];
$smarty->assign('prof_bearbeiten_titel', $_SESSION["bearbeiten_titel"]);
$smarty->assign('prof_bearbeiten_vorname', $_SESSION["bearbeiten_vorname"]);
$smarty->assign('prof_bearbeiten_nachname', $_SESSION["bearbeiten_nachname"]);
$smarty->assign('prof_bearbeiten_gebtag', $gebtag);
$smarty->assign('prof_bearbeiten_zugang', $zugang);
$smarty->assign('prof_bearbeiten_weggang', $weggang);
$smarty->assign('prof_bearbeiten_nachbes', $nachbes);
$smarty->assign('prof_bearbeiten_tatsbes', $_SESSION["bearbeiten_tatsbes"]);
$smarty->assign('prof_bearbeiten_deltas', $_SESSION["bearbeiten_deltas"]);
}
}
if($action == 'save'){
# dt_patrone
$bearbeiten_titel = trim($_SESSION["bearbeiten_titel"]);
$bearbeiten_vorname = trim($_SESSION["bearbeiten_vorname"]);
$bearbeiten_nachname = trim($_SESSION["bearbeiten_nachname"]);
$bearbeiten_gebtag = trim($_SESSION["bearbeiten_gebtag_jahr"]."-".$_SESSION["bearbeiten_gebtag_mon"]."-".$_SESSION["bearbeiten_gebtag_tag"]);
$bearbeiten_zugang = trim($_SESSION["bearbeiten_zugang_jahr"]."-".$_SESSION["bearbeiten_zugang_mon"]."-".$_SESSION["bearbeiten_zugang_tag"]);
$bearbeiten_weggang = trim($_SESSION["bearbeiten_weggang_jahr"]."-".$_SESSION["bearbeiten_weggang_mon"]."-".$_SESSION["bearbeiten_weggang_tag"]);
$bearbeiten_nachbes = trim($_SESSION["bearbeiten_nachbes_jahr"]."-".$_SESSION["bearbeiten_nachbes_mon"]."-".$_SESSION["bearbeiten_nachbes_tag"]);
$bearbeiten_tatsbes = trim($_SESSION["bearbeiten_tatsbes"]);
$bearbeiten_deltas = trim($_SESSION["bearbeiten_deltas"]);
$did = $_SESSION["bearbeiten_did"];
# Profil
$bearbeiten_profil = $_SESSION["bearbeiten_profil"];
$smarty->assign('prof_bearbeiten_exists', "2");
$sql1 = $db->query( "UPDATE prog_professor
SET doz_titel = '$bearbeiten_titel'
, doz_vorname = '$bearbeiten_vorname'
, doz_name = '$bearbeiten_nachname'
, geb_dat = '$bearbeiten_gebtag'
, zugang = '$bearbeiten_zugang'
, weggang = '$bearbeiten_weggang'
, nachbesetzung = '$bearbeiten_nachbes'
, anz_zulagen = '$bearbeiten_deltas'
WHERE did = $did
" );
if(!$sql1){
$error = TRUE;
$smarty->assign('prof_bearbeiten_inserterr', "1");
$smarty->assign('prof_bearbeiten_reason', "$error_reason"); // Kein Mailversand
$error_reason .= "Fehler beim anlegen von Stammdaten (prog_professor)<br>";
}else{
$error = FALSE;
$smarty->assign('prof_bearbeiten_inserterr', "2");
}
session_destroy();
}
$smarty->assign('action', "$action");
$smarty->display("$template/$templatename");
?>