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

724 lines
32 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_exk_mehrtaegig.php";
require_once "func_lvs_exk_eintaegig.php";
# Wenn Seite neu aufgerufen wird, dann alle Sessions, die mit "erf_" beginnen löschen
if (isset($_GET['new']) AND $_GET['new'] == 1) {
;
$search_prefix = 'erf_';
$search_len = strlen($search_prefix);
foreach ($_SESSION as $key => $value) {
if (substr($key, 0, $search_len) == $search_prefix) {
unset($_SESSION[$key]);
}
}
}
#echo "<pre>";
#echo nl2br(print_r($_SESSION,true));
#echo "</pre>";
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;
}
# Prüfen ob der Jahrgang schon abgeschlossen wurde, dann soll der Button "Abschließen und absenden" ausgeblendet werden
$query_closed = $db->query("SELECT count(*) Anz
FROM dep_doz_abschluss
WHERE imtuid=$uid
AND jahr=$jahrgang");
$row_closed = $query_closed->fetch_array();
if ($row_closed['Anz'] > 0) {
$smarty->assign('erf_abschluss', 1);
$smarty->assign('erf_error', 1);
$smarty->assign('erf_error_text', 'Der aktuelle Jahrgang ist bereits abgeschlossen!');
} else {
$smarty->assign('erf_abschluss', 0);
} // Jahrgang abgeschlossen
# Ausgabe Anzahl der max LVS für extracurriculare Klausurenkurs pro Jahr
$query_extracur = $db->query("SELECT wert1, wert2
FROM dep_parameter
WHERE pid =6");
$row_extracur = $query_extracur->fetch_array();
$summe_extracur = number_format($row_extracur['wert1'], 0);
$einheit_extracur = $row_extracur['wert2'];
$smarty->assign('abschluss_value_max_extracur', $summe_extracur);
$smarty->assign('abschluss_einheit_max_extracur', $einheit_extracur);
# -- Fehlermeldungen -- #
if (isset($_GET[error])) {
$errorno = $_GET[error];
$smarty->assign('erf_error', 1);
$smarty->assign('erf_value_titel', $_SESSION["erf_titel"]);
if($_SESSION["erf_titel"] == "" or $_SESSION["erf_module"] == "" or $_SESSION["erf_schwerpunkt"] == ""){ $smarty->assign('erf_titel_hig', 1);}else{$smarty->assign('erf_titel_hig', 0);}
$smarty->assign('erf_value_module', $_SESSION["erf_module"]);
$smarty->assign('erf_value_schwerpunkt', $_SESSION["erf_schwerpunkt"]);
$smarty->assign('erf_value_art', $_SESSION["erf_art"]);
if($_SESSION["erf_art"] == ""){ $smarty->assign('erf_art_hig', 1);}else{$smarty->assign('erf_art_hig', 0);}
$smarty->assign('erf_value_anz_ag', $_SESSION["erf_anz_ag"]);
$smarty->assign('erf_value_studiengang', $_SESSION["erf_studiengang"]);
if($_SESSION["erf_studiengang"] == ""){ $smarty->assign('erf_studiengang_hig', 1);}else{$smarty->assign('erf_studiengang_hig', 0);}
$smarty->assign('erf_value_krankheit', $_SESSION["erf_krankheit"]);
$smarty->assign('erf_value_gemlv', $_SESSION["erf_gemlv"]);
$smarty->assign('erf_value_fachlv', $_SESSION["erf_fachlv"]);
$smarty->assign('erf_value_anzgemlv', $_SESSION["erf_anzgemlv"]);
if($_SESSION["erf_anzgemlv"] == "" AND $_SESSION["erf_gemlv"] == "J"){ $smarty->assign('erf_anzgemlv_hig', 1);}else{$smarty->assign('erf_anzgemlv_hig', 0);}
$smarty->assign('erf_value_namegemlv', $_SESSION["erf_namegemlv"]);
if($_SESSION["erf_namegemlv"] == "" AND $_SESSION["erf_gemlv"] == "J"){ $smarty->assign('erf_namegemlv_hig', 1);}else{$smarty->assign('erf_namegemlv_hig', 0);}
$smarty->assign('erf_value_basislvsgemlv', $_SESSION["erf_basislvsgemlv"]);
if(($_SESSION["erf_basislvsgemlv"] == "" or $_SESSION["erf_basislvsgemlv"] < "0,1") AND $_SESSION["erf_gemlv"] == "J"){ $smarty->assign('erf_basislvsgemlv_hig', 1);}else{$smarty->assign('erf_basislvsgemlv_hig', 0);}
$smarty->assign('erf_value_teamteaching', $_SESSION["erf_teamteaching"]);
if($_SESSION["erf_teamteaching"] == "" AND $_SESSION["erf_gemlv"] == "J"){ $smarty->assign('erf_teamteaching_hig', 1);}else{$smarty->assign('erf_teamteaching_hig', 0);}
$smarty->assign('erf_value_tage_exkursion', $_SESSION["erf_tage_exkursion"]);
if($_SESSION["erf_tage_exkursion"] == "1" AND
($_SESSION["erf_exk_datumvon"] == "" OR
$_SESSION["erf_exk_beschreibung"] == "" OR
$_SESSION["erf_exk_stdanreise"] == "")
){ $smarty->assign('erf_tage_exkursion_hig', 1);}else{$smarty->assign('erf_tage_exkursion_hig', 0);}
if($_SESSION["erf_tage_exkursion"] == "2" AND
($_SESSION["erf_exk_datumvon"] == "" OR
$_SESSION["erf_exk_datumbis"] == "" OR
$_SESSION["erf_exk_beschreibung"] == "" OR
$_SESSION["erf_exk_stdanreise"] == "" OR
$_SESSION["erf_exk_stdabreise"] == "")
){ $smarty->assign('erf_tage_exkursion_hig', 1);}else{$smarty->assign('erf_tage_exkursion_hig', 0);}
$smarty->assign('erf_value_std', $_SESSION["erf_std"]);
if($_SESSION["erf_std"] == "" or $_SESSION["erf_std"] < "0,1"){ $smarty->assign('erf_std_hig', 1);}else{$smarty->assign('erf_std_hig', 0);}
$smarty->assign('erf_value_hinweise', $_SESSION["erf_hinweise"]);
/*Hinweise sind keine Pflichtfelder, daher auch hier keine _hig Variable*/
if ($errorno == 1) {
$smarty->assign('erf_error_text', "Es m&uuml;ssen alle aktiven Felder (ausgenommen dem Hinweisfeld) ausgef&uuml;llt werden! ");
}
if ($errorno == 2) {
# Extracurriculare Stunden wären überschritten
$bisherige_extracurr = number_format($_GET['summecurr'], 2, ',', '.');
$smarty->assign('erf_error_text', "Der eingegebene LVS-Wert würde die maximal zulässige Summe von $summe_extracur LVS überschreiten.<br>Derzeit sind $bisherige_extracurr Std vom Typ \"Extracurricularem Klausurenkurs\" erfasst!");
}
if ($errorno == 3) {
# ungültiges Datum
$smarty->assign('erf_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
}
}
if (isset($_GET['edit'])) {
$_SESSION["erf_status"] = 'edit';
$did = $_GET['edit'];
$_SESSION["erf_did"] = $did;
} else {
$_SESSION["erf_status"] = 'neu';
}
# Defaultwert bei Krankheitsbedingten Merkmale:
$smarty->assign('erf_value_krankheit', "0");
# --- Wenn Werte editiert werden ------------
if ($_SESSION["erf_status"] == 'edit') {
$result_edit = $db->query("SELECT did, titel, module, schwerpunkt, dsgid, verid, anz_ag, krankheitsmerkmal, gemlv, fachlv, anzgemlv, namegemlv, basislvsgemlv, teamteaching, exk_tage, date_format(exk_datumvon, '%d.%m.%Y') exk_datumvon, date_format(exk_datumbis, '%d.%m.%Y') exk_datumbis, exk_beschreibung, exk_stdanreise, exk_stdabreise, std, std_default, hinweise
FROM dep_deputat
WHERE did = $did");
$row_edit = $result_edit->fetch_array();
$smarty->assign('erf_value_titel', "$row_edit[titel]");
$_SESSION["erf_module"] = $row_edit['module'];
$_SESSION["erf_schwerpunkt"] = $row_edit['schwerpunkt'];
$smarty->assign('erf_value_art', "$row_edit[verid]");
$smarty->assign('erf_value_anz_ag', "$row_edit[anz_ag]");
$smarty->assign('erf_value_studiengang', "$row_edit[dsgid]");
$smarty->assign('erf_value_krankheit', "$row_edit[krankheitsmerkmal]");
$smarty->assign('erf_value_gemlv', "$row_edit[gemlv]");
$smarty->assign('erf_value_fachlv', "$row_edit[fachlv]");
$smarty->assign('erf_value_anzgemlv', "$row_edit[anzgemlv]");
$smarty->assign('erf_value_namegemlv', "$row_edit[namegemlv]");
$smarty->assign('erf_value_basislvsgemlv', "$row_edit[basislvsgemlv]");
$smarty->assign('erf_value_teamteaching', "$row_edit[teamteaching]");
$smarty->assign('erf_value_exk_tage', "$row_edit[exk_tage]");
$smarty->assign('erf_value_exk_datumvon', "$row_edit[exk_datumvon]");
$smarty->assign('erf_value_exk_datumbis', "$row_edit[exk_datumbis]");
$smarty->assign('erf_value_exk_beschreibung', "$row_edit[exk_beschreibung]");
$smarty->assign('erf_value_exk_stdanreise', "$row_edit[exk_stdanreise]");
$smarty->assign('erf_value_exk_stdabreise', "$row_edit[exk_stdabreise]");
$smarty->assign('erf_value_std', "$row_edit[std]");
$smarty->assign('erf_value_std_default', "$row_edit[std_default]");
$smarty->assign('erf_value_hinweise', "$row_edit[hinweise]");
}
# --- 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["erf_status"] = 'neu';
}
# Alle Veranstaltungsarten
$query0 = "SELECT dsgid, bezeichnung
FROM dep_kat_studiengang";
$result0 = $db->query($query0) or die("Cannot execute query0");
while ($row0 = $result0->fetch_array()) {
$table_data0[] = $row0;
}
$smarty->assign('table_data0', $table_data0);
# Alle Veranstaltungsarten
$query = "SELECT verid, bezeichnung
FROM dep_kat_veranstaltungsart
WHERE sonstige = 0";
$result = $db->query($query) or die("Cannot execute query");
while ($row = $result->fetch_array()) {
$table_data1[] = $row;
}
$smarty->assign('table_data1', $table_data1);
# Alle Teamteachingfaktoren ausgeben
$query3 = "SELECT tid, bezeichnung
FROM dep_kat_teamteaching";
$result3 = $db->query($query3) or die("Cannot execute query3");
while ($row3 = $result3->fetch_array()) {
$table_data3[] = $row3;
}
$smarty->assign('table_data3', $table_data3);
# Gespeicherte Werte
$query2 = "SELECT did, titel, module, schwerpunkt, dsgid, verid, krankheitsmerkmal, gemlv, anzgemlv, namegemlv, teamteaching, exk_tage, exk_datumvon, exk_datumbis, exk_beschreibung, exk_stdanreise, exk_stdabreise, std, hinweise
FROM dep_deputat
WHERE imtuid=$uid
AND jahr=$jahrgang
ORDER BY created desc";
$result2 = $db->query($query2) or die("Cannot execute query");
while ($row2 = $result2->fetch_array()) {
$query_dsgid = $db->query("SELECT bezeichnung
FROM dep_kat_studiengang
WHERE dsgid='$row2[dsgid]'");
$row_dsgid = $query_dsgid->fetch_array();
$query_verid = $db->query("SELECT bezeichnung
FROM dep_kat_veranstaltungsart
WHERE verid='$row2[verid]'");
$row_verid = $query_verid->fetch_array();
# Wird aktuell nicht mehr im Frontend eingeblendet
$query_tid = $db->query("SELECT bezeichnung
FROM dep_kat_teamteaching
WHERE tid='$row2[teamteaching]'");
$row_tid = $query_tid->fetch_array();
if ($row2['gemlv'] == 'J') {
$gemlv_form = 'Ja';
}
if ($row2['gemlv'] == 'N') {
$gemlv_form = 'Nein';
}
# Krankheitsbedingte Merkmale
# 0=Keine; 1=LV übernommen; 2=LV nachgeholt
if ($row2['krankheitsmerkmal'] == 0) {
$krankheitsmerkmal = "keine";
}
if ($row2['krankheitsmerkmal'] == 1) {
$krankheitsmerkmal = "LV&nbsp;&uuml;bernommen";
}
if ($row2['krankheitsmerkmal'] == 2) {
$krankheitsmerkmal = "LV&nbsp;nachgeholt";
}
/* Marix, wann $modul $schwerpunkt oder $titel verwendet wird
findet sind in Excel "erfassen_eingabe_felder.xlsx" Tab "Matrix Titel"
$titel = $_POST['titel'];
$module = $_POST['module'];
$schwerpunkt = $_POST['schwerpunkt'];
*/
if ($row2['verid'] == "1" AND ($row2['dsgid'] == "1" or $row2['dsgid'] == "2" or $row2['dsgid'] == "3" or $row2['dsgid'] == "4")) {
# In Kombination Vorlesung mit Public Management, Steuer, Rente und Finanz gilt $modul und $titel und $schwerpunkt sind leer
$query_vorl = $db->query("SELECT bezeichnung
FROM dep_kat_studienmodul
WHERE dsmid='$row2[module]'");
$row_vorl = $query_vorl->fetch_array();
$titel = $row_vorl['bezeichnung'];
} elseif ($row2['verid'] == 11) {
# Bei Schwerpunkt gilt immer $schwerpunkt
$query_spt = $db->query("SELECT bezeichnung
FROM dep_kat_schwerpunkt
WHERE dspid='$row2[schwerpunkt]'");
$row_spt = $query_spt->fetch_array();
$titel = $row_spt['bezeichnung'];
} else {
# Bei anderen konstellationen gibt es immer $titel
$titel = $row2['titel'];
}
$std = number_format($row2['std'], 2, ',', '.');
$row2['std'] = $std;
$row2['titel'] = $titel;
$row2['gemlv_form'] = $gemlv_form;
$row2['krankheitsmerkmal'] = $krankheitsmerkmal;
$row2['studiengang'] = $row_dsgid['bezeichnung'];
$row2['veranstaltung'] = $row_verid['bezeichnung'];
$row2['teamteaching_form'] = $row_tid['bezeichnung'];
$table_data2[] = $row2;
}
$smarty->assign('table_data2', $table_data2);
# Jahressumme
$query_jahrsum = $db->query("SELECT sum(std) summe_jahr
FROM dep_deputat
WHERE imtuid=$uid
AND jahr=$jahrgang");
$row_jahrsum = $query_jahrsum->fetch_array();
$summe_jahr = number_format($row_jahrsum['summe_jahr'], 2, ',', '.');
$smarty->assign('erf_value_summe_jahr', $summe_jahr);
# Exkursionen
$query_exkurs = $db->query("SELECT faktor, max_wert FROM `dep_kat_veranstaltungsart` WHERE verid=5");
$row_exkurs = $query_exkurs->fetch_array();
$faktor = number_format($row_exkurs['faktor'], 2, ',', '.');
$max_wert = number_format($row_exkurs['max_wert'], 2, ',', '.');
$smarty->assign('erf_value_exk_faktor', $faktor);
$smarty->assign('erf_value_exk_max_wert', $max_wert);
}
if ($action == 'register') {
#Debug alle get parameter ausgeben
#foreach($_POST as $key=>$value)
#{
# echo $key." -> ".$value."<br>";
#}
#exit;
/* Entweder gibt es Titel, Modul aus DB-Katalog oder Schwerpunkt aus DB-Katalog*/
$art = $_POST['art']; # Vorlesung, Übung, Seminar
$studiengang = $_POST['studiengang']; # Public Management, Steurverwaltung
$anz_ag = $_POST['anz_ag']; # Anzahl der Arbeitsgemeinschaften
$krankheit = $_POST['krankheit']; # keine, Lehrveranstaltung übernommen, Lehrveranstaltung nachgeholt
$tage_exkursion = $_POST['tage_exkursion']; # Exkursionstage
$gemlv = $_POST['gemlv']; # Gemeinsame Lehrveranstaltung J/N
$fachlv = $_POST['fachlv']; # fachübergreifende LV
$anzgemlv = $_POST['anzgemlv']; # Anzahl der Lehrenden
$namegemlv = $_POST['namegemlv']; # Name der Lehrenden
$hinweise = $_POST['hinweise']; # Hinweise des Dozenten
/* Marix, wann $modul $schwerpunkt oder $titel verwendet wird
findet sind in Excel "erfassen_eingabe_felder.xlsx" Tab "Matrix Titel"
$titel = $_POST['titel'];
$module = $_POST['module'];
$schwerpunkt = $_POST['schwerpunkt'];
*/
if ($art == "1" AND ($studiengang == "1" or $studiengang == "2" or $studiengang == "3" or $studiengang == "4")) {
# In Kombination Vorlesung mit Public Management, Steuer, Rente und Finanz gilt $modul und $titel und $schwerpunkt sind leer
$titel = "";
$module = $_POST['module'];
$schwerpunkt = "";
} elseif ($art == 11) {
# Bei Schwerpunkt gilt immer $schwerpunkt
$titel = "";
$module = "";
$schwerpunkt = $_POST['schwerpunkt'];
} else {
# Bei anderen konstellationen gibt es immer $titel
$titel = $_POST['titel'];
$module = "";
$schwerpunkt = "";
}
/* Variablen zu Exkursionen kommen nur bei Exkursionen vor, ansonsten gilt $std
$exk_datumvon = $_POST['exk_datumvon']; # Datum von Exkursion
$exk_datumbis = $_POST['exk_datumbis']; # Datum bis bei mehrtägig
$exk_beschreibung = $_POST['exk_beschreibung']; # Beschreibung/Ort Exkursion
$exk_stdanreise = $_POST['exk_stdanreise']; # Stunden Exkursion Anreisetag
$exk_stdabreise = $_POST['exk_stdabreise']; # Stunden Ankunftstag zu Hause
*/
if ($art == 5) {
if ($tage_exkursion == 1) {
# Eintägige Exkursionen
# Datumsformat von DD.MM.YYYY nach YYYY-MM-DD
$exk_datumvon = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['exk_datumvon']);
$exk_datumbis = ""; # Datum bis bei mehrtägig
$exk_beschreibung = $_POST['exk_beschreibung']; # Beschreibung/Ort Exkursion
$exk_stdanreise = str_replace(',','.',str_replace('.','', $_POST['exk_stdanreise'])); # Stunden Exkursion Anreisetag
$exk_stdabreise = ""; # Stunden Ankunftstag zu Hause bei mehrtögig
}
if ($tage_exkursion == 2) {
# Mehrtägige Exkursionen
# Datumsformat von DD.MM.YYYY nach YYYY-MM-DD
$exk_datumvon = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['exk_datumvon']);
$exk_datumbis = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $_POST['exk_datumbis']);
$exk_beschreibung = $_POST['exk_beschreibung']; # Beschreibung/Ort Exkursion
$exk_stdanreise = str_replace(',','.',str_replace('.','', $_POST['exk_stdanreise'])); # Stunden Exkursion Anreisetag
$exk_stdabreise = str_replace(',','.',str_replace('.','', $_POST['exk_stdabreise'])); # Stunden Ankunftstag zu Hause bei mehrtägig
}
$std = "";
$std_default = "";
} else {
$std = str_replace(',','.',str_replace('.','', $_POST['std'])); # Summe eigene Lehrstunden (LVS)
$std_default = $_POST['std_default']; # Verstecktes Feld: Da wird für das Javascript die Basisstunden Erfasst. Bei der Anzahl der Arbeitsgemeinschaften wird die Basiswert mit Anzahl Ags multipliziert. Im hiddenfeld ist immer der Basiswert aus dem Katalog
# Exkursionen gibts außerhalb art=5 nicht
$exk_datumvon = ""; # Datum von Exkursion
$exk_datumbis = ""; # Datum bis bei mehrtägig
$exk_beschreibung = ""; # Beschreibung/Ort Exkursion
$exk_stdanreise = ""; # Stunden Exkursion Anreisetag
$exk_stdabreise = ""; # Stunden Ankunftstag zu Hause bei mehrtögig
}
/* Variablen zu Teamteching setzen
Bei fachübergreifende LV gibt es kein Teamteaching und kein Basiswert
*/
if ($fachlv == 'J') {
$basislvsgemlv = ""; # Basiswert der gemeinsamen LV bei nicht fächerübergreifende LV. Damit wird die Gesamtsume mit dem Teachingfaktor multipliziert. Bekommt Doz an der Oberfläche angezeigt. Wert wird nachrichtlich übernommen
$teamteaching = ""; # Teachingfaktor
} else {
$basislvsgemlv = $_POST['basislvsgemlv']; # Basiswert der gemeinsamen LV bei nicht fächerübergreifende LV. Damit wird die Gesamtsume mit dem Teachingfaktor multipliziert. Bekommt Doz an der Oberfläche angezeigt. Wert wird nachrichtlich übernommen
$teamteaching = $_POST['teamteaching']; # Teachingfaktor
}
$_SESSION["erf_titel"] = $titel;
$_SESSION["erf_module"] = $module;
$_SESSION["erf_schwerpunkt"] = $schwerpunkt;
$_SESSION["erf_art"] = $art;
$_SESSION["erf_studiengang"] = $studiengang;
$_SESSION["erf_anz_ag"] = $anz_ag;
$_SESSION["erf_krankheit"] = $krankheit;
$_SESSION["erf_gemlv"] = $gemlv;
$_SESSION["erf_fachlv"] = $fachlv;
$_SESSION["erf_anzgemlv"] = $anzgemlv;
$_SESSION["erf_namegemlv"] = $namegemlv;
$_SESSION["erf_basislvsgemlv"] = $basislvsgemlv;
$_SESSION["erf_teamteaching"] = $teamteaching;
$_SESSION["erf_tage_exkursion"] = $tage_exkursion;
$_SESSION["erf_exk_datumvon"] = $_POST['exk_datumvon'];
$_SESSION["erf_exk_datumbis"] = $_POST['exk_datumbis'];
$_SESSION["erf_exk_beschreibung"] = $exk_beschreibung;
$_SESSION["erf_exk_stdanreise"] = $exk_stdanreise;
$_SESSION["erf_exk_stdabreise"] = $exk_stdabreise;
$_SESSION["erf_std"] = $std;
$_SESSION["erf_std_default"] = $std_default;
$_SESSION["erf_hinweise"] = $hinweise;
# Bei Art == 11 (Schwerpunktthema) darf $module nicht leer sein
# Bei Art == 1 (Vorlesung) darf $schwerpunkt nicht leer sein
# Bei allen anderen Darf Titel nicht leer sein
if ($art == 11 AND $schwerpunkt == '') {
# echo "1";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
} elseif ($art == 1 AND $module == '') {
/*Bei Vorlesungen wird normalerweise das Modul eingeblendet, außer bei den Masterstudengaengen, da wird Titel eingeblendet
Bei Master darf Titel nicht leer sein,
Bei allen anderen das Modul nicht leer*/
if($studiengang == "5" or $studiengang == "6"){
if($titel == ''){
# echo "2a";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
}else{
if($module == ''){
# echo "2b";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
}
} elseif (($art != 11 AND $art != 1) AND $titel == '') {
# echo "3";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
} elseif ($studiengang == '' or $art == '' or $gemlv == '' or $studiengang == '' AND ($titel or $module == '' or $schwerpunkt == '')) {
# echo "4";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}elseif ($art != 5 AND $std == ''){
# echo "4a";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
# Konstellationen prüfen:
# Bei fachübergreifende LV müssen zumindest Anzahl und Name der Lehrenden ausgefüllt sein
if ($gemlv == 'J' AND $fachlv == 'J' AND ($anzgemlv == '' or $namegemlv == '')) {
#echo "5";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
# Bei NICHT fachübergreifende LV müssen zumindest Anzahl, Name, Basiswert und Teamteachingfaktor der Lehrenden ausgefüllt sein
if ($gemlv == 'J' AND $fachlv == 'N' AND ($anzgemlv == '' or $namegemlv == '' or $namegemlv == '' or $basislvsgemlv == '' or $teamteaching == '')) {
#echo "6";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
# Fehler bei Exkursion
function validateDate($date, $format = 'Y-m-d'){
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
if ($tage_exkursion == 1 AND $art == 5) {
#Eintägig
if(!validateDate($exk_datumvon)){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
exit;
}
if ($exk_datumvon == '' or $exk_datumvon == '0000-00-00' or $exk_beschreibung == '' or $exk_stdanreise == '') {
# Fehler bei leeren Felder
#echo "7";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
} else {
# LVS berechnen
$std = lvs_exk_eintaegig($exk_stdanreise);
}
}
if ($tage_exkursion == 2 AND $art == 5) {
#Mehrtägig
if(!validateDate($exk_datumvon)){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
exit;
}
if(!validateDate($exk_datumbis)){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
exit;
}
if ($exk_datumvon == '' or $exk_datumvon == '0000-00-00' or $exk_datumbis == '' or $exk_datumbis == '0000-00-00'or $exk_beschreibung == '' or $exk_stdanreise == '' or $exk_stdabreise == '') {
# Fehler bei leeren Felder
#echo "8";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
} else {
# LVS berechnen
$std = lvs_exk_mehrtaegig($exk_stdanreise, $exk_stdabreise, $exk_datumvon, $exk_datumbis);
}
}
# Defaultwert (checked) beim Laden der Seite soll nicht übernommen werden, wenn es keine Exkursion ist
if ($art != 5) {
$tage_exkursion = 0;
}
# Maximaler Anzahl der Extracurricularen Klausurenkurse prüfen. Derzeit 30 LVS -> Parameterwert 6
if ($art == 6) {
# Ausgabe Anzahl der max LVS für extracurriculare Klausurenkurs pro Jahr
$query_extracur = $db->query("SELECT wert1
FROM dep_parameter
WHERE pid =6");
$row_extracur = $query_extracur->fetch_array();
$summe_extracur = number_format($row_extracur['wert1'], 1);
# Wie viele Stunden sind bereits im aktuellen Jahr gebucht
$query_sumcurr = $db->query("SELECT sum(std) summe_jahr
FROM dep_deputat
WHERE imtuid=$uid
AND jahr=$jahrgang
AND verid=6");
$row_sumcurr = $query_sumcurr->fetch_array();
# vorhandene Summe + die aktuell eingegeben Stundenzahl darf Maximalwert nicht überschreiten
$summecurr_neu = $row_sumcurr['summe_jahr'] + $std;
if ($summecurr_neu > $summe_extracur) {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2&summecurr=$row_sumcurr[summe_jahr]\">";
exit;
}
}
## Im Fehlerfall muss ursprüngliche Bildschirm wieder angezeigt weden
# Zu achten auf Studiengang / Vorlesung Kombination
# Bei Art=Schwerpunktthema, müssen die richtigen schwerpunktthemen eingeblendet werden
# Bei Exkursionen müssen die Felder für ein/mehrtägige Exkursionen eingeblendet werden
#echo "alles richtig";
#exit;
$datum = date("Y-m-d H:i:s");
if ($_SESSION["erf_status"] == 'neu') {
$sql1 = $db->query("INSERT INTO dep_deputat ( imtuid
, jahr
, titel
, module
, schwerpunkt
, dsgid
, verid
, anz_ag
, krankheitsmerkmal
, gemlv
, fachlv
, anzgemlv
, namegemlv
, basislvsgemlv
, teamteaching
, exk_tage
, exk_datumvon
, exk_datumbis
, exk_beschreibung
, exk_stdanreise
, exk_stdabreise
, std
, std_default
, hinweise
, created
)
VALUES
( '$uid'
, '$jahrgang'
, '$titel'
, '$module'
, '$schwerpunkt'
, '$studiengang'
, '$art'
, '$anz_ag'
, '$krankheit'
, '$gemlv'
, '$fachlv'
, '$anzgemlv'
, '$namegemlv'
, '$basislvsgemlv'
, '$teamteaching'
, '$tage_exkursion'
, '$exk_datumvon'
, '$exk_datumbis'
, '$exk_beschreibung'
, '$exk_stdanreise'
, '$exk_stdabreise'
, '$std'
, '$std_default'
, '$hinweise'
, '$datum'
)
");
}
if ($_SESSION["erf_status"] == 'edit') {
$did = $_SESSION["erf_did"];
$result = $db->query("UPDATE dep_deputat
SET titel = '$titel'
, module = '$module'
, schwerpunkt = '$schwerpunkt'
, dsgid = '$studiengang'
, verid = '$art'
, anz_ag = '$anz_ag'
, krankheitsmerkmal = '$krankheit'
, gemlv = '$gemlv'
, fachlv = '$fachlv'
, anzgemlv = '$anzgemlv'
, namegemlv = '$namegemlv'
, basislvsgemlv = '$basislvsgemlv'
, teamteaching = '$teamteaching'
, exk_tage = '$tage_exkursion'
, exk_datumvon = '$exk_datumvon'
, exk_datumbis = '$exk_datumbis'
, exk_beschreibung = '$exk_beschreibung'
, exk_stdanreise = '$exk_stdanreise'
, exk_stdabreise = '$exk_stdabreise'
, std = '$std'
, std_default = '$std_default'
, hinweise = '$hinweise'
, modify_date = '$datum'
WHERE did = $did
");
unset($_SESSION['erf_did']);
}
# 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'] . "?editende=$editende&new=1\">";
}
if ($action == 'del') {
$did = $_GET['did'];
## Muss man nochmals überdenken, wenn ein Prof noch Deputate erfasst hat.
$del1 = $db->query("DELETE FROM dep_deputat WHERE did = $did AND imtuid=$uid");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}
$smarty->assign('action', "$action");
$smarty->display("$template/$templatename");
?>