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

333 lines
12 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";
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('erfs_abschluss', 1);
$smarty->assign('erfs_error', 1);
$smarty->assign('erfs_error_text', 'Der aktuelle Jahrgang ist bereits abgeschlossen!');
} else {
$smarty->assign('erfs_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('erfs_error', 1);
$smarty->assign('erfs_value_titel', $_SESSION["erfs_titel"]);
$smarty->assign('erfs_value_art', $_SESSION["erfs_art"]);
$smarty->assign('erfs_value_std', $_SESSION["erfs_std"]);
$smarty->assign('erfs_value_hinweise', $_SESSION["erfs_hinweise"]);
if ($errorno == 1) {
$smarty->assign('erfs_error_text', "Es m&uuml;ssen alle aktiven Felder (ausgenommen dem Hinweisfeld) ausgef&uuml;llt werden! ");
}
}
if (isset($_GET['edit'])) {
$_SESSION["erfs_status"] = 'edit';
$dsid = $_GET['edit'];
$_SESSION["erfs_dsid"] = $dsid;
} else {
$_SESSION["erfs_status"] = 'neu';
}
# Defaultwert bei Krankheitsbedingten Merkmale:
$smarty->assign('erfs_value_krankheit', "0");
# --- Wenn Werte editiert werden ------------
if ($_SESSION["erfs_status"] == 'edit') {
$result_edit = $db->query("SELECT dsid, titel, verid, lvs, hinweise
FROM dep_deputat_sonstige
WHERE dsid = $dsid");
$row_edit = $result_edit->fetch_array();
$smarty->assign('erfs_value_titel', "$row_edit[titel]");
$smarty->assign('erfs_value_art', "$row_edit[verid]");
$smarty->assign('erfs_value_std', "$row_edit[lvs]");
$smarty->assign('erfs_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["erfs_status"] = 'neu';
}
# Alle Veranstaltungsarten
$query = "SELECT verid, bezeichnung
FROM dep_kat_veranstaltungsart
WHERE sonstige = 1";
$result = $db->query($query) or die("Cannot execute query1");
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 dsid, titel, verid, lvs, hinweise
FROM dep_deputat_sonstige
WHERE imtuid=$uid
AND jahr=$jahrgang
ORDER BY verid ASC";
$result2 = $db->query($query2) or die("Cannot execute query2");
while ($row2 = $result2->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";
}
$lvs = number_format($row2['lvs'], 2, ',', '.');
$row2['lvs'] = $lvs;
$row2['gemlv_form'] = $gemlv_form;
$row2['krankheitsmerkmal'] = $krankheitsmerkmal;
$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(lvs) summe_jahr
FROM dep_deputat_sonstige
WHERE imtuid=$uid
AND jahr=$jahrgang");
$row_jahrsum = $query_jahrsum->fetch_array();
$summe_jahr = number_format($row_jahrsum['summe_jahr'], 2, ',', '.');
$smarty->assign('erfs_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('erfs_value_exk_faktor', $faktor);
$smarty->assign('erfs_value_exk_max_wert', $max_wert);
}
if ($action == 'register') {
$titel = $_POST['titel'];
$art = $_POST['art'];
$std = str_replace(',','.',str_replace('.','', $_POST['std']));
$hinweise = $_POST['hinweise'];
$_SESSION["erfs_titel"] = $titel;
$_SESSION["erfs_art"] = $art;
$_SESSION["erfs_std"] = $std;
$_SESSION["erfs_hinweise"] = $hinweise;
# if ($art != 5 AND ($titel == '' or $art == '' or $gemlv == '' or $std == '')) {
if ($titel == '' or $art == '' or $std == '') {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
/*
if ($gemlv == 'J' AND ($anzgemlv == '' or $massgemlv == '' or $namegemlv == '' or $teamteaching == '')) {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
# Fehler bei Exkursion
if ($tage_exkursion == 1 AND $art == 5) {
#Eintägig
if ($exk_datumvon == '' or $exk_beschreibung == '' or $exk_stdanreise == '') {
# Fehler bei leeren Felder
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 ($exk_datumvon == '' or $exk_datumbis == '' or $exk_beschreibung == '' or $exk_stdanreise == '' or $exk_stdabreise == '') {
# Fehler bei leeren Felder
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(lvs) summe_jahr
FROM dep_deputat_sonstige
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;
}
}
*/
$datum = date("Y-m-d H:i:s");
if ($_SESSION["erfs_status"] == 'neu') {
$sql1 = $db->query("INSERT INTO dep_deputat_sonstige ( imtuid
, jahr
, titel
, verid
, lvs
, hinweise
, created
)
VALUES
( '$uid'
, '$jahrgang'
, '$titel'
, '$art'
, '$std'
, '$hinweise'
, '$datum'
)
");
}
if ($_SESSION["erfs_status"] == 'edit') {
$dsid = $_SESSION["erfs_dsid"];
$result = $db->query("UPDATE dep_deputat_sonstige
SET titel = '$titel'
, verid = '$art'
, lvs = '$std'
, hinweise = '$hinweise'
, modify_date = '$datum'
WHERE dsid = $dsid
");
unset($_SESSION['erfs_dsid']);
}
# 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\">";
}
if ($action == 'del') {
$dsid = $_GET['dsid'];
## Muss man nochmals überdenken, wenn ein Prof noch Deputate erfasst hat.
$del1 = $db->query("DELETE FROM dep_deputat_sonstige WHERE dsid = $dsid AND imtuid=$uid");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}
$smarty->assign('action', "$action");
$smarty->display("$template/$templatename");
?>