2023-04-25 13:05:19 +02:00

469 lines
16 KiB
PHP
Executable File

<?php
# Fuer debugging
#error_reporting(E_ALL);
#ini_set('display_errors', 1);
session_start();
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 "language/german.inc.php";
require_once("func_verlauf.php");
require_once("func_mail_einstell.php");
require_once("func_htmlclean.php");
if(isset($_GET['id'])){
$_SESSION["edit_id"] = $_GET['id'];
}
$id = $_SESSION["edit_id"];
$action = $_GET['action'];
if($action == ''){
$db = dbconnect();
$query = "SELECT name, mail
FROM imt_gruppenmitglieder
WHERE vid='$id'
ORDER BY name ASC";
$result = $db->query ($query)
or die ("Cannot execute query");
$table_data1 = array();
while ($row = $result->fetch_array()){
array_push($table_data1, array(
'name' => $row[name],
'mail' => $row[mail]
)
);
}
$smarty->assign('table_data1', $table_data1);
$result = $db->query("SELECT vorname, nachname, mail, beziehung, betreff, beschreibung, vorschlag, nutzen, public, kategorie, hinweis_eigen, hinweis_admin
FROM imt_user a, imt_vorschlag b
WHERE a.imtuid=b.imtuid
AND b.vid = '$id'");
$row = $result->fetch_array();
$result_status = $db->query("SELECT max(STATUS) status
FROM imt_vorschlag a, imt_verlauf b
WHERE a.vid = b.vid
AND a.vid ='$id'
GROUP BY a.vid
ORDER BY erfass_dat ASC");
$row_status = $result_status->fetch_array();
switch ($row['beziehung'])
{
case "P":
$beziehung = "ProfessorIn";
break;
case "L":
$beziehung = "Lehrbeauftragte/r";
break;
case "E":
$beziehung = "Externe/r";
break;
case "S":
$beziehung = "StudentIn";
break;
case "V":
$beziehung = "Verwaltungsmitarbeiter";
break;
default:
$beziehung = "$row[beziehung]";
}
$smarty->assign('edit_beziehung', $beziehung);
$smarty->assign('edit_id', "$id");
$smarty->assign('edit_vorname', $row['vorname']);
$smarty->assign('edit_nachname', $row['nachname']);
$smarty->assign('edit_mail', "$row[mail]");
$smarty->assign('edit_betreff', "$row[betreff]");
$smarty->assign('edit_beschreibung', "$row[beschreibung]");
$smarty->assign('edit_vorschlag', "$row[vorschlag]");
$smarty->assign('edit_nutzen', "$row[nutzen]");
if($row['public'] == 'Y'){
$public = "Ja";
}else{
$public = "Nein";
}
$smarty->assign('edit_public', "$public");
$smarty->assign('edit_status', "$row[status]");
$smarty->assign('edit_hinweis_eigen', "$row[hinweis_eigen]");
$smarty->assign('edit_hinweis_admin', "$row[hinweis_admin]");
$query2 = "SELECT kid, kategorie
FROM imt_kategorie
ORDER BY sort_order ASC";
$result2 = $db->query ($query2)
or die ("Cannot execute query2");
$table_data2 = array();
while ($row2 = $result2->fetch_array()){
if($row2['kid'] == $row['kategorie']){
$selected = "1";
}else{
$selected = "0";
}
array_push($table_data2, array(
'kid' => $row2['kid'],
'selected' => $selected,
'kategorie' => $row2['kategorie']
)
);
}
$smarty->assign('table_data2', $table_data2);
# Ablehnbutton ermöglichen, wenn der Status=neu ist
$result2a = $db->query("SELECT status
FROM imt_verlauf
WHERE vid = $id
AND status != 104 #--> Erfasser kann gleich eine Mitteilung erfassen (Status 104). Der Anträg wäre dann immer noch neu
ORDER BY datum DESC
LIMIT 1");
$row2a = $result2a->fetch_array();
if($row2a['status'] == 1){
$smarty->assign('edit_ablehnen_bttn', "1");
$smarty->assign('edit_ablehnen_vid', "$id");
}
# Variable erfassen_eingabe_vid leer setzen, damit wird Doppelspeicherung unten beim Insert verhindert
$_SESSION["erfassen_eingabe_vid"] = "";
if($_GET['error'] == 1){
$smarty->assign('erfassen_eingabe_pflichtfelder', "1");
$smarty->assign('erfassen_eingabe_betreff', $_SESSION["erfassen_eingabe_betreff"]);
if($_SESSION["erfassen_eingabe_betreff"] == ""){$smarty->assign('erfassen_eingabe_betreff_ico', 1);}
$smarty->assign('erfassen_eingabe_beschreibung', $_SESSION["erfassen_eingabe_beschreibung"]);
if($_SESSION["erfassen_eingabe_beschreibung"] == ""){$smarty->assign('erfassen_eingabe_beschreibung_ico', 1);}
$smarty->assign('erfassen_eingabe_vorschlag', $_SESSION["erfassen_eingabe_vorschlag"]);
if($_SESSION["erfassen_eingabe_vorschlag"] == ""){$smarty->assign('erfassen_eingabe_vorschlag_ico', 1);}
$smarty->assign('erfassen_eingabe_nutzen', $_SESSION["erfassen_eingabe_nutzen"]);
if($_SESSION["erfassen_eingabe_nutzen"] == ""){$smarty->assign('erfassen_eingabe_nutzen_ico', 1);}
if($_SESSION["erfassen_eingabe_einwilligung_public"] == 'Y'){
$smarty->assign('erfassen_eingabe_einwilligung_public', $_SESSION["erfassen_eingabe_einwilligung_public"]);
}
}
$query3 = "SELECT date_format(datum, '%d.%m.%Y - %H:%i Uhr') datum1,b.sid, b.status, verlauf
FROM imt_verlauf a, imt_stati b
WHERE a.status = b.sid
AND a.status != 0
AND a.vid='$id'
ORDER BY datum DESC";
$result3 = $db->query ($query3)
or die ("Cannot execute query3");
$table_data3 = array();
$verlauf_dup = array("");
while ($row3 = $result3->fetch_array()){
$status = $row3['status'];
if($row3['sid'] == '103'){
# Da jedes Ausschussmitglied informiert wird, reicht es aus, wenn bei den Statusdetails nur ein Hinweis pro Gutachter genannt wird, nicht 5x pro Person
# Bei der Meldung "Ausschuss (Bernd Fuchsi) &uuml;ber Gutachter Wolf Wursti informiert. Frist: 25.06.2011" wird der Gutachter "Wolf Wursti"
# ausgeschnitten und in ein Array gepackt. Wird der gleiche Gutachter mit dem Status 103 nochamls durchgeschleift, wird in den else Bereich verwiesen
# Im Template werden nur die Statis angezeigt die != "" sind
$pos1 = strpos ($row3[verlauf], 'Gutachter')+9;
$status_103 = trim(substr($row3[verlauf], $pos1));
$pos2 = strpos ($status_103, 'informiert')-1;
$status = trim(substr($status_103, 0,$pos2));
if (!in_array($status, $verlauf_dup)) {
$verlauf_dup[] = "$status";
$status = $row3['status'];
}else{
$status = "";
}
}
if($row3['sid'] == '7' OR $row3['sid'] == '8'){
$info = '1';
}else{
$info = '0';
}
array_push($table_data3, array(
'datum1' => $row3['datum1'],
'info' => $info,
'status' => $status
)
);
}
$smarty->assign('table_data3', $table_data3);
}
if($action == 'save'){
$id = $_SESSION["bearbeiten_id"];
/*
Ändert sich der Hinweis --> Eintrag in Verlauf
Ändert sich Kategorie --> Eintrag in Verlauf
*/
$edit_hinweis_admin = htmlclean($_POST['edit_hinweis_admin']);
$edit_kategorie = $_POST['edit_kategorie'];
$result = $db->query("SELECT kategorie, hinweis_admin
FROM imt_vorschlag
WHERE vid = '$id'");
$row = $result->fetch_array();
if($row[kategorie] != $edit_kategorie){
$result1 = $db->query("SELECT kategorie
FROM imt_kategorie
WHERE kid = '$edit_kategorie'");
$row1 = $result1->fetch_array();
$sql = $db->query("UPDATE imt_vorschlag SET kategorie='$edit_kategorie' WHERE vid='$id'");
if($sql){
verlauf($uid, $id, "Kategorie wurde neu gesetzt: $row1[kategorie]", 101, '');
}
}
if($row[hinweis_admin] != $edit_hinweis_admin){
$sql = $db->query("UPDATE imt_vorschlag SET hinweis_admin='$edit_hinweis_admin' WHERE vid='$id'");
if($sql){
#verlauf($uid, $id, 'Adminhinweis wurde ge&auml;ndert', 102, '');
$query_ga = $db->query("SELECT uid, a.imtuid, passwort, vorname, nachname, betreff
FROM imt_user a, imt_vorschlag b
WHERE a.imtuid=b.imtuid
AND b.vid='$id'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_ga = $query_ga->fetch_array();
$empfaenger = "$row_ga[imtuid]";
$betreff = "Hinweis des Administrators zu Vorschlag $id";
$text = "
<html>
<head>
<title>Hinweis des Administrators</title>
</head>
<body>
<font face='Arial' size='2'>
Guten Tag $row_ga[vorname] $row_ga[nachname]!
<br /><br />
Im Rahmen des Ideenmanagements ist ein Hinweis des Administrators eingegangen.
<br />
<br />
<table>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Vorschlag:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$row_ga[betreff]
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>ID:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$id
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Hinweis:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$edit_hinweis_admin
</font>
</td>
</tr>
</table>
<br />
Um den Hinweis zu kommentieren melden Sie sich bitte am System an und w&auml;hlen den Vorschlag im Erfassungsbereich unter Status aus, um
einen Hinweis zu erfassen!
<br>
Link zum System: <a href='https://www.hs-ludwigsburg.de/kurs/ideenmanagement'>Ideenmanagement</a>
<p>
Diese Mail wurde automatisch generiert!<br />
Antworten Sie daher nicht auf diese Mail.<br />
<br />
Vielen Dank!
</body>
</html>";
mail_einstell($id, $uid, $empfaenger, NULL, NULL, $betreff, $text, 102, NULL);
}
}
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."\">";
}
if($action == 'ablehnung2'){
$id = $_SESSION["bearbeiten_id"];
$aend_dat = date("Y-m-d H:i:s");
$abschluss_bemerkung = $_POST["edit_ablehnung_bemerkung"];
$db = dbconnect();
$sql1 = $db->query("INSERT INTO imt_vorschlag_ende ( erfass_dat
, vid
, annahme
, annahme_bemerkung
)
VALUES
( '$aend_dat'
, '$id'
, 'N'
, '$abschluss_bemerkung'
)
");
verlauf($uid, $id, 'Vorschlag wurde ausgeschlossen', '8', $aend_dat);
$query_ga = $db->query("SELECT uid, a.imtuid, passwort, vorname, nachname, betreff
FROM imt_user a, imt_vorschlag b
WHERE a.imtuid=b.imtuid
AND b.vid='$id'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_ga = $query_ga->fetch_array();
$query_entscheidung = $db->query("SELECT annahme, annahme_bemerkung
FROM imt_vorschlag_ende
WHERE vid='$id'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_entscheidung = $query_entscheidung->fetch_array();
if($row_entscheidung[annahme] == 'J'){
$entscheidung = 'angenommen';
}else{
$entscheidung = 'abgelehnt';
}
$empfaenger = "$row_ga[imtuid]";
$betreff = "Entscheidung Vorschlag $id";
$text = "
<html>
<head>
<title>Entscheidung Vorschlag</title>
</head>
<body>
<font face='Arial' size='2'>
Guten Tag $row_ga[vorname] $row_ga[nachname]!
<br /><br />
Im Rahmen des Ideenmanagements ist ein Verbesserungsvorschlag eingegangen.
Ihr Vorschlag wurde wie folgt entschieden:
<br />
<br />
<table>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Vorschlag:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$row_ga[betreff]
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>ID:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$id
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Entscheidung:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$entscheidung
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Bemerkung:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$row_entscheidung[annahme_bemerkung]
</font>
</td>
</tr>
</table>
<br />
Bei Fragen wenden Sie sich bitte an den <a href=\"mailto:$global_service_mail?subject=Frage zu ID: $id\">Qualit&auml;tsmanagementbeauftragten.</a>
<p>
Diese Mail wurde automatisch generiert!<br />
Antworten Sie daher nicht auf diese Mail.<br />
<br />
Vielen Dank!
</body>
</html>";
mail_einstell($id, $uid, $empfaenger, NULL, NULL, $betreff, $text, 110, NULL);
echo "<meta http-equiv=\"refresh\" content=\"2; URL=".$_SERVER['PHP_SELF']."?\">";
}
$smarty->assign('action', "$action");
$smarty->display("$template/$templatename");
?>