ideenmanagement/gutachterbenennung.php
2023-04-25 13:05:19 +02:00

892 lines
34 KiB
PHP
Executable File

<?php
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 "validation/func_validEmail.php";
require_once "func_genUser.php";
require_once("func_verlauf.php");
require_once("func_gutachter_entscheid.php");
require_once("func_gutachter_status.php");
require_once("func_mail_einstell.php");
require_once("func_rechte_vergabe.php");
$action = $_GET['action'];
if(isset($_GET['id'])){
$_SESSION["edit_id"] = $_GET['id'];
$search_prefix = 'gutachterbenennung_';
$search_len = strlen($search_prefix);
foreach( $_SESSION as $key => $value){
if ( substr( $key, 0, $search_len) == $search_prefix) {
unset( $_SESSION[$key]);
}
}
}
if($action == ''){
if($_GET['error'] == 1){
$smarty->assign('gutachterbenennung_pflichtfelder', "1");
$smarty->assign('gutachterbenennung_error_text', "Es ist zu einem Fehler gekommen. Bitte f&uuml;llen Sie alle Pflichtfelder aus.");
if($_SESSION["gutachterbenennung_user_gutachter"] == ""){$smarty->assign('gutachterbenennung_user_gutachter_ico', 1);}
}
$id = $_SESSION["edit_id"];
$query1 = "SELECT a.gid, vorname, nachname, date_format(frist_datum, '%d.%m.%Y') frist_tag, date_format(frist_datum_abgabe, '%d.%m.%Y') frist_datum_abgabe
FROM imt_gutachter a, imt_user b
WHERE a.imtuid=b.imtuid
AND a.vid='$id'
ORDER BY nachname ASC";
$result1 = $db->query ($query1)
or die ("Cannot execute query");
$table_data1 = array();
### Status des Gutachtens
### Berechnen, ob bereits entschieden ist, da die Mehrzahl der Stimmen bereits abgegeben wurde
$gutachter = new gutachter();
while ($row1 = $result1->fetch_array()){
gutachter_entscheid($uid, $row1[gid], $id);
$status = $gutachter -> gutachter_status($row1[gid]);
$status_klartext = $gutachter -> gutachter_status_klartext($row1[gid], $status);
#/* Gutachter muss nicht mehr vom Ausschuss genehmigt werden
# if($status == '1' OR $status == '2' OR $status == '3' OR $status == '4' OR $status == '5'){
# # Briefsymbol um Gutachter anzuschreiben anzeigen
# $gutachterbrief = 1;
# }else{
# $gutachterbrief = 0;
# }
#*/
# Es kann gleich das Briefsymbol eingeblendet werden ohne Ausschuss
$gutachterbrief = 1;
if($row1[frist_datum_abgabe] == '00.00.0000'){
$abgabefrist = "Gutachter noch nicht angeschrieben";
}else{
$abgabefrist = $row1[frist_datum_abgabe];
}
array_push($table_data1, array(
'gid' => $row1[gid],
'vorname' => $row1[vorname],
'nachname' => $row1[nachname],
'status' => $status,
'status_klartext' => $status_klartext,
'gutachterbrief' => $gutachterbrief,
'frist_tag' => $row1[frist_tag],
'frist_datum_abgabe' => $abgabefrist
)
);
}
$smarty->assign('table_data1', $table_data1);
$query2 = "SELECT imtuid, vorname, nachname
FROM imt_user
ORDER BY nachname ASC";
$result2 = $db->query ($query2)
or die ("Cannot execute query2");
$table_data2 = array();
while ($row2 = $result2->fetch_array()){
$query_dis_gut = $db->query("SELECT count(*) Anz
FROM imt_gutachter
WHERE vid='$id'
AND imtuid='$row2[imtuid]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_dis_gut = $query_dis_gut->fetch_array();
if($row_dis_gut['Anz'] > 0){
$disable_gut = 1;
}else{
$disable_gut = 0;
}
$query_dis_bet = $db->query("SELECT count(*) Anz
FROM imt_beteiligte
WHERE vid='$id'
AND imtuid='$row2[imtuid]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_dis_bet = $query_dis_bet->fetch_array();
if($row_dis_bet['Anz'] > 0){
$disable_bet = 1;
}else{
$disable_bet = 0;
}
if($row2['imtuid'] == $_GET['userid']){
$selected = 1;
}else{
$selected = 0;
}
array_push($table_data2, array(
'imtuid' => $row2['imtuid'],
'vorname' => $row2['vorname'],
'nachname' => $row2['nachname'],
'disable_bet' => $disable_bet,
'disable_gut' => $disable_gut,
'selected' => $selected
)
);
}
$smarty->assign('table_data2', $table_data2);
}
if($action == 'balance'){
if(isset($_POST["user_gutachter"])){
$user_gutachter = $_POST["user_gutachter"];
$_SESSION["gutachterbenennung_user_gutachter"] = $user_gutachter;
}
if($user_gutachter == ""){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?error=1\">";
}elseif($user_gutachter == "S"){
# Gutachter soll ein Student sein
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap1\">";
}elseif($user_gutachter == "P" OR $user_gutachter == "V"){
# Gutachter soll ein Professor oder Verwaltungsmitarbeiter
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap1\">";
}elseif($user_gutachter == "L"){
# Gutachter soll ein Lehrbeauftragter ohne LDAP sein
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3\">";
}elseif($user_gutachter == "R"){
# Beteiligter soll ein Mitarbeiter des Rechenzentrums sein
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap1\">";
}else{
# Wenn ein konkreter Benutzer ausgewählt wurde
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=frist\">";
}
}
if($action == 'ldap2'){
$suchstring=utf8_decode($_POST['suchstring']);
$suchpfad=$_POST['suchpfad'];
$result_ldap = $db->query("SELECT wert1 user, wert2 passwd
FROM imt_parameter
WHERE pid='2'
LIMIT 1");
$row_ldap = $result_ldap->fetch_array();
$_ad_username="$row_ldap[user]";
$_ad_password="$row_ldap[passwd]";
$user_gutachter = $_SESSION["gutachterbenennung_user_gutachter"];
if($user_gutachter == "P" OR $user_gutachter == "V"){
$_ldap_dn = "ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de";
$ds=@ldap_connect("141.10.128.30", "389"); // muss ein g&uuml;ltiger LDAP Server Port 389->3268
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
}
if($user_gutachter == "S"){
$_ldap_dn = "ou=ouStudnet,dc=studnet,dc=hs-ludwigsburg,dc=de";
$ds=@ldap_connect("141.10.144.37", "389"); // muss ein g&uuml;ltiger LDAP Server Port 389->3268
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
}
if($user_gutachter == "R"){
$_ldap_dn = "ou=OURechenzentrum,dc=hsnet,dc=hs-ludwigsburg,dc=de";
$ds=@ldap_connect("141.10.128.30", "389"); // muss ein g&uuml;ltiger LDAP Server Port 389->3268
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
}
if ($ds) {
$r=ldap_bind($ds, $_ad_username, $_ad_password);
// Suchen des Nachnamen-Eintrags
#$suchstring2=$suchstring;
#$sr=ldap_search($ds,"o=fhov", "cn=$suchstring");
$sr=ldap_search($ds, $_ldap_dn, "$suchpfad=$suchstring");
$anzahl = ldap_count_entries($ds,$sr);
$info = ldap_get_entries($ds, $sr);
$table_data3 = array();
for ($i=0; $i<$info["count"]; $i++) {
//$dn enth&auml;lt dn-string ==> 'cn=test,ou=extern,o=fhov': Nachfolgende Zeilen nur ou extrahieren
$uid = $info[$i]['samaccountname'][0];
$vorname = $info[$i]['givenname'][0];
$nachname = $info[$i]['sn'][0];
$dn = $info[$i][dn];
$mail = $info[$i]['mail'][0];
$b = strpos ($dn, "OU=")+3; // Position bestimmen wo ou anf&auml;ngt, +3 damit "ou=" nicht mitangezeigt wird, also Positon um 3 nach recht verschoben wird
if($user_gutachter == "P" OR $user_gutachter == "V"){
# Bei Mitarbeiter: CN=Rieth\, Wolfgang,OU=Verwaltung,OU=Mitarbeiter,OU=OUHochschulnetzwerk,DC=hsnet,DC=hs-ludwigsburg,DC=de
$c = strpos ($dn, ",OU=Mitarbeiter"); // Position bestimmen woe ,o= anf&auml;ngt
if($c == ""){
# Bei externen: CN=Schwarz\, Alexander,OU=Externe Benutzer,OU=OUHochschulnetzwerk,DC=hsnet,DC=hs-ludwigsburg,DC=de
$c = strpos ($dn, ",OU=OUHochschulnetzwerk"); // Position bestimmen woe ,o= anf&auml;ngt
}
}
if($user_gutachter == "S"){
$c = strpos ($dn, ",OU=Benutzer"); // Position bestimmen woe ,o= anf&auml;ngt
}
$d = $c-$b; // beide Werte subrahieren, dann erh&auml;lt man die L&auml;nge von ou
$gruppe = substr($dn, $b, $d);
array_push($table_data3, array(
'uid' => $uid,
'vorname' => $vorname,
'nachname' => $nachname,
'gruppe' => $gruppe,
'mail' => $mail
)
);
$uid = "";
$vorname = "";
$nachname = "";
$dn = "";
$gruppe = "";
$mail = "";
}
$smarty->assign('table_data3', $table_data3);
ldap_close($ds);
}else{
echo "<h4>Verbindung zum LDAP Server nicht m&ouml;glich</h4>";
}
}
if($action == 'ldap3'){
if($_GET['error'] == 1){
$smarty->assign('gutachterbenennung_pflichtfelder', "1");
$smarty->assign('gutachterbenennung_error_text', "Es ist zu einem Fehler gekommen. Bitte f&uuml;llen Sie alle Pflichtfelder aus.");
if($_SESSION["gutachterbenennung_vorname"] == ""){$smarty->assign('gutachterbenennung_vorname_ico', 1);}
if($_SESSION["gutachterbenennung_nachname"] == ""){$smarty->assign('gutachterbenennung_nachname_ico', 1);}
if($_SESSION["gutachterbenennung_mail"] == ""){$smarty->assign('gutachterbenennung_mail_ico', 1);}
if($_SESSION["gutachterbenennung_beziehung"] == ""){$smarty->assign('gutachterbenennung_beziehung_ico', 1);}
if($_SESSION["gutachterbenennung_fakultaet"] == ""){$smarty->assign('gutachterbenennung_fakultaet_ico', 1);}
if($_SESSION["gutachterbenennung_ag"] == ""){$smarty->assign('gutachterbenennung_ag_ico', 1);}
if($_SESSION["gutachterbenennung_jahrgang"] == ""){$smarty->assign('gutachterbenennung_jahrgang_ico', 1);}
}
if($_GET['error'] == 2){
$smarty->assign('gutachterbenennung_pflichtfelder', "1");
$smarty->assign('gutachterbenennung_error_text', "Die Mailadresse ist nicht g&uuml;ltig! Bitte tragen Sie eine g&uuml;ltige Mailadresse ein.");
}
if($_GET['error'] == 3){
$smarty->assign('gutachterbenennung_pflichtfelder', "1");
$smarty->assign('gutachterbenennung_error_text', "Die Mailadresse ist im System bereits vorhanden. Setzen Sie sich bitte mit <a href='mailto:$global_service_mail?subject=Fehler bei Anmeldung Ideenmanagement: Mailadresse bereits vorhanden'>$global_service_admin</a> in Verbindung");
}
$smarty->assign('gutachterbenennung_vorname', $_SESSION["gutachterbenennung_vorname"]);
$smarty->assign('gutachterbenennung_nachname', $_SESSION["gutachterbenennung_nachname"]);
$smarty->assign('gutachterbenennung_mail', $_SESSION["gutachterbenennung_mail"]);
$smarty->assign('gutachterbenennung_beziehung', $_SESSION["gutachterbenennung_beziehung"]);
$smarty->assign('gutachterbenennung_fakultaet', $_SESSION["gutachterbenennung_fakultaet"]);
$smarty->assign('gutachterbenennung_ag', $_SESSION["gutachterbenennung_ag"]);
$smarty->assign('gutachterbenennung_jahrgang', $_SESSION["gutachterbenennung_jahrgang"]);
if(isset($_POST['auswahl'])){
$suchstring=$_POST['auswahl'];
$_SESSION["gutachterbenennung_user_uid"] = $suchstring;
$suchpfad='samaccountname';
$result_ldap = $db->query("SELECT wert1 user, wert2 passwd
FROM imt_parameter
WHERE pid='2'
LIMIT 1");
$row_ldap = $result_ldap->fetch_array();
$_ad_username="$row_ldap[user]";
$_ad_password="$row_ldap[passwd]";
$user_gutachter = $_SESSION["gutachterbenennung_user_gutachter"];
if($user_gutachter == "P" OR $user_gutachter == "V"){
$_ldap_dn = "ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de";
$ds=@ldap_connect("141.10.128.30", "389"); // muss ein g&uuml;ltiger LDAP Server Port 389->3268
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
}
if($user_gutachter == "S"){
$_ldap_dn = "ou=ouStudnet,dc=studnet,dc=hs-ludwigsburg,dc=de";
$ds=@ldap_connect("141.10.144.37", "389"); // muss ein g&uuml;ltiger LDAP Server Port 389->3268
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
}
if($user_gutachter == "R"){
$_ldap_dn = "ou=OURechenzentrum,dc=hsnet,dc=hs-ludwigsburg,dc=de";
$ds=@ldap_connect("141.10.128.30", "389"); // muss ein g&uuml;ltiger LDAP Server Port 389->3268
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
}
if ($ds) {
$r=ldap_bind($ds, $_ad_username, $_ad_password);
// Suchen des Nachnamen-Eintrags
#$suchstring2=$suchstring;
#$sr=ldap_search($ds,"o=fhov", "cn=$suchstring");
$sr=ldap_search($ds, $_ldap_dn, "$suchpfad=$suchstring");
$anzahl = ldap_count_entries($ds,$sr);
$info = ldap_get_entries($ds, $sr);
$table_data3 = array();
for ($i=0; $i<$info["count"]; $i++) {
//$dn enth&auml;lt dn-string ==> 'cn=test,ou=extern,o=fhov': Nachfolgende Zeilen nur ou extrahieren
$vorname = $info[$i]['givenname'][0];
$nachname = $info[$i]['sn'][0];
$mail = $info[$i]['mail'][0];
$dn = $info[$i][dn];
$b = strpos ($dn, "OU=")+3; // Position bestimmen wo ou anf&auml;ngt, +3 damit "ou=" nicht mitangezeigt wird, also Positon um 3 nach recht verschoben wird
$c = strpos ($dn, ",OU=Benutzer"); // Position bestimmen woe ,o= anf&auml;ngt
$d = $c-$b; // beide Werte subrahieren, dann erh&auml;lt man die L&auml;nge von ou
$gruppe = substr($dn, $b, $d);
$gruppe = str_replace ("Stud", "", $gruppe);
}
ldap_close($ds);
if($user_gutachter == "S"){
$db = dbconnect();
$query = "SELECT distinct jahrgang
FROM kurs.stud
WHERE jahrgang <= substr(date_format(now(), '%Y'),3,2)
ORDER BY jahrgang desc
LIMIT 4";
$result = $db->query ($query)
or die ("Cannot execute query1");
$table_data = array();
while ($row = $result->fetch_array()){
if($row[jahrgang] == $gruppe){
$select = 1;
}else{
$select = 0;
}
array_push($table_data, array(
'select' => $select,
'jahrgang' => $row['jahrgang']
)
);
}
$smarty->assign('table_data', $table_data);
}
$smarty->assign('gutachterbenennung_beziehung', "$user_gutachter");
$smarty->assign('gutachterbenennung_vorname', "$vorname");
$smarty->assign('gutachterbenennung_nachname', "$nachname");
$smarty->assign('gutachterbenennung_mail', "$mail");
}else{
echo "<h4>Verbindung zum LDAP Server nicht m&ouml;glich</h4>";
}
}
}
if($action == 'ldap4'){
$vorname = utf8_decode($_POST['vorname']);
$nachname = utf8_decode($_POST['nachname']);
$mail = utf8_decode($_POST['mail']);
$beziehung = utf8_decode($_POST['beziehung']);
$ag = $_POST['ag'];
$jahrgang = $_POST['jahrgang'];
$fakultaet = $_POST['fakultaet'];
$_SESSION["gutachterbenennung_vorname"] = "$vorname";
$_SESSION["gutachterbenennung_nachname"] = "$nachname";
$_SESSION["gutachterbenennung_mail"] = "$mail";
$_SESSION["gutachterbenennung_beziehung"] = "$beziehung";
$_SESSION["gutachterbenennung_ag"] = "$ag";
$_SESSION["gutachterbenennung_jahrgang"] = "$jahrgang";
$_SESSION["gutachterbenennung_fakultaet"] = "$fakultaet";
if(!validEmail($mail)){
$fehler = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=2\">";
}
$db = dbconnect();
$query = $db->query("SELECT count(*) Anz
FROM imt_user
WHERE mail = '$mail'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row = $query->fetch_array();
if($row[Anz] > 0){
# Benutzer vorhanden
$fehler = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=3\">";
}
if($vorname == "" OR $nachname == "" OR $mail == "" OR $beziehung == ""){
# Fehler Pflichtfelder
$fehler = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=1\">";
}
if($beziehung == "P" OR $beziehung == "L" OR $beziehung == ""){
if($fakultaet == ""){
# Fakultaet leer
$fehler = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=1\">";
}
}
if($beziehung == "S"){
if($ag == "" OR $jahrgang == ""){
# AG Jahrgang leer
$fehler = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=1\">";
}
}
if(!isset($fehler )){
if($beziehung == "P" OR $beziehung == "L"){
$ag = "";
$jahrgang = "";
}
if($beziehung == "S"){
$fakultaet = "";
}
# Lehrbeauftragte und Externe Benutzer bekommen eine Benutzerkennung da Sie nicht in der Hochschule erfasst sind, zumindest nicht alle
if($beziehung == "E" or $beziehung == "L"){
$benutzerkennung = genUser($vorname, $nachname);
$datum=date("Y-m-d H:i:s");
#$pw_expire = date("Y-m-d H:i:s", mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")+1)); // ISO-8601 Format
$aktivierungscode = rand(1, 99999999);
#$pool = "qwertzupasdfghkyxcvbnm";
#$pool .= "23456789";
#$pool .= "WERTZUPLKJHGFDSAYXCVBNM";
#
#srand ((double)microtime()*1000000);
#for($index = 0; $index < 7; $index++)
#{
#$pass_word .= substr($pool,(rand()%(strlen ($pool))), 1);
#}
#$new_pw_md5=md5($pass_word);
}else{
# Bei User innerhalb des ADs benötigt man die Original-Benutzerkennung, aber dafür kein Passwort
$benutzerkennung = $_SESSION["gutachterbenennung_user_uid"];
}
$db = dbconnect();
$sql1 = $db->query("INSERT INTO imt_user ( vorname
, nachname
, mail
, beziehung
, ag
, jahrgang
, fakultaet
, uid
, erstell_dat
, aktiv
, akivierungscode
)
VALUES
( '$vorname'
, '$nachname'
, '$mail'
, '$beziehung'
, '$ag'
, '$jahrgang'
, '$fakultaet'
, '$benutzerkennung'
, '$datum'
, '1'
, '$aktivierungscode'
)
");
$imtuid = $db->insert_id;
if($sql1){ // Wenn Insert geklappt hat, dann mail
# Bei erfolgreichem Insert, auf die Startseite gutachterbenennung wechseln und dort den Benutzer vorselektieren
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?userid=$imtuid\">";
}else{
echo "Beim anlegen des Benutzer ist ein unbekannter Fehler aufgetreten!";
}
}
}
if($action == 'frist'){
# START: Da kein Ausschuss mehr benötigt wird, wird der Gutachter gleich erfasst
$imtuid = $_SESSION["gutachterbenennung_user_gutachter"];
$vid = $_SESSION["edit_id"];
$gutachterbemerkung = ""; # Dem Ausschuss muss keine Bemerkung mitgeteilt werden, da er nicht mehr informiert wird.
$aend_dat = date("Y-m-d H:i:s");
$frist = "0000-00-00"; # Dem Ausschuss muss keine Bemerkung mitgeteilt werden, da er nicht mehr informiert wird.
$db = dbconnect();
$sql1 = $db->query("INSERT INTO imt_gutachter ( imtuid
, vid
, bemerkung
, erfass_dat
, frist_datum
)
VALUES
( '$imtuid'
, '$vid'
, '$gutachterbemerkung'
, '$aend_dat'
, '$frist'
)
");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?id=$vid\">";
# ENDE: Da kein Ausschuss mehr benötigt wird, wird der Gutachter gleich erfasst
}
if($action == 'anschreiben'){
# Gutachter anschreiben, ihnen die Frist mitteilen und das Recht für den Gutachterbereich geben.
# GGf muss ein Passwort gesetzt und mitgeteilt werden
$gid = $_GET['gid'];
$_SESSION["gutachterbenennung_gid"] = $gid;
if($_GET['error'] == 1){
$smarty->assign('gutachterbenennung_pflichtfelder', "1");
$smarty->assign('gutachterbenennung_error_text', "Es ist zu einem Fehler gekommen. Bitte f&uuml;llen Sie alle Pflichtfelder aus.");
if($_SESSION["gutachterbenennung_fristtag"] == "" OR $_SESSION["gutachterbenennung_fristmon"] == "" OR $_SESSION["gutachterbenennung_frisjahr"] == ""){$smarty->assign('gutachterbenennung_frist_ico', 1);}
if($_SESSION["gutachterbenennung_fristtag"] == ""){$smarty->assign('gutachterbenennung_fristtag_ico', 1);}
if($_SESSION["gutachterbenennung_fristmon"] == ""){$smarty->assign('gutachterbenennung_fristmon_ico', 1);}
if($_SESSION["gutachterbenennung_fristjahr"] == ""){$smarty->assign('gutachterbenennung_fristjahr_ico', 1);}
$smarty->assign('gutachterbenennung_fristtag', $_SESSION["gutachterbenennung_fristtag"]);
$smarty->assign('gutachterbenennung_fristmon', $_SESSION["gutachterbenennung_fristmon"]);
$smarty->assign('gutachterbenennung_fristjahr', $_SESSION["gutachterbenennung_fristjahr"]);
$smarty->assign('gutachterbenennung_gutachterbemerkung', $_SESSION["gutachterbenennung_gutachterbemerkung"]);
}elseif($_GET['error'] == 2){
$smarty->assign('gutachterbenennung_pflichtfelder', "1");
$smarty->assign('gutachterbenennung_error_text', "Das Fristdatum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
$smarty->assign('gutachterbenennung_fristtag', $_SESSION["gutachterbenennung_fristtag"]);
$smarty->assign('gutachterbenennung_fristmon', $_SESSION["gutachterbenennung_fristmon"]);
$smarty->assign('gutachterbenennung_fristjahr', $_SESSION["gutachterbenennung_fristjahr"]);
$smarty->assign('gutachterbenennung_gutachterbemerkung', $_SESSION["gutachterbenennung_gutachterbemerkung"]);
}else{
$query_ga = $db->query("SELECT date_format(frist_datum_abgabe, '%d') frist_datum_abgabe_tag, date_format(frist_datum_abgabe, '%m') frist_datum_abgabe_mon, date_format(frist_datum_abgabe, '%Y') frist_datum_abgabe_jahr, frist_datum_abgabe
FROM imt_gutachter
WHERE gid = '$gid'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_ga = $query_ga->fetch_array();
if($row_ga[frist_datum_abgabe] == '0000-00-00'){
$smarty->assign('gutachterbenennung_fristtag', date("d",strtotime("+4 week")) );
$smarty->assign('gutachterbenennung_fristmon', date("m",strtotime("+4 week")) );
$smarty->assign('gutachterbenennung_fristjahr', date("Y",strtotime("+4 week")) );
}else{
$smarty->assign('gutachterbenennung_fristtag', $row_ga["frist_datum_abgabe_tag"] );
$smarty->assign('gutachterbenennung_fristmon', $row_ga["frist_datum_abgabe_mon"] );
$smarty->assign('gutachterbenennung_fristjahr', $row_ga["frist_datum_abgabe_jahr"] );
}
}
}
if($action == 'anschreiben1'){
# Gutachter anschreiben, ihnen die Frist mitteilen und das Recht für den Gutachterbereich geben.
# GGf muss ein Passwort gesetzt und mitgeteilt werden
$gid = $_SESSION["gutachterbenennung_gid"];
$tag = $_POST["frist_tag"];
$mon = $_POST["frist_mon"];
$jahr = $_POST["frist_jahr"];
$abgabefrist = "$jahr-$mon-$tag";
$gutachterbemerkung = $_POST["gutachter_bemerkung"];
$beziehung = $_SESSION["gutachterbenennung_beziehung"];
$_SESSION["gutachterbenennung_fristtag"] = $tag;
$_SESSION["gutachterbenennung_fristmon"] = $mon;
$_SESSION["gutachterbenennung_fristjahr"] = $jahr;
$_SESSION["gutachterbenennung_gutachterbemerkung"] = $gutachterbemerkung;
if(!@checkdate($mon, $tag, $jahr)){
# Fehler Datum
$fehler = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=anschreiben&error=2\">";
}
if($tag == "" OR $mon == "" OR $jahr == ""){
# Fehler Pflichtfelder
$fehler = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=anschreiben&error=1\">";
}
if(!isset($fehler )){
# Daten des Gutachters abfragen
$db = dbconnect();
$query_ga = $db->query("SELECT uid, imtuid, passwort, vorname, nachname, beziehung
FROM imt_user
WHERE imtuid IN (SELECT imtuid FROM imt_gutachter WHERE gid='$gid')") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_ga = $query_ga->fetch_array();
# Lehrbeauftragte und Externe Benutzer bekommen eine Benutzerkennung da Sie nicht in der Hochschule erfasst sind, zumindest nicht alle
if($row_ga['beziehung'] == "E" or $row_ga['beziehung'] == "L"){
if($row_ga[passwort] == ''){
# Passwort ggf. setzen
$pw_expire = date("Y-m-d H:i:s", mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")+1)); // ISO-8601 Format
$pool = "qwertzupasdfghkyxcvbnm";
$pool .= "23456789";
$pool .= "WERTZUPLKJHGFDSAYXCVBNM";
srand ((double)microtime()*1000000);
for($index = 0; $index < 7; $index++)
{
$pass_word .= substr($pool,(rand()%(strlen ($pool))), 1);
}
$new_pw_md5=md5($pass_word);
$sql = $db->query ("UPDATE imt_user SET passwort='$new_pw_md5', pw_expire='$pw_expire' WHERE imtuid='$row_ga[imtuid]'");
}
}
# Herausfinden, ob der Gutachter bereits ein Recht für den Gutachterbereicht, ggf setzen
rechte_vergabe($row_ga[imtuid], 2);
# Frist setzen
$sql = $db->query ("UPDATE imt_gutachter SET frist_datum_abgabe='$abgabefrist' WHERE gid='$gid'");
# Herausfinden des Betreffs des Verbesserungsvorschlages
$query_vv = $db->query("SELECT betreff, vid
FROM imt_vorschlag
WHERE vid IN (SELECT vid FROM imt_gutachter WHERE gid='$gid')") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vv = $query_vv->fetch_array();
# Gutachter anschreiben
$empfaenger = "$row_ga[imtuid]";
$betreff = "Gutachteranh&ouml;rung";
$text = "
<html>
<head>
<title>Gutachtenanh&ouml;rung</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.
Zu diesem Vorschlag wurden Sie im System \"Ideenmanagement\" als Gutachter benannt.
Um eine sachliche Entscheidung &uuml;ber die eingereichte Idee treffen zu k&ouml;nnen,
ben&ouml;tigt der Ausschuss Ideenmanagement von Ihnen als Gutachter eine Stellungnahme.
Bitte halten Sie Stillschweigen &uuml;ber die eingereichte Idee ein.
<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_vv[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'>
$row_vv[vid]
</font>
</td>
</tr>
";
$benutzerkennung = $row_ga[uid];
# Bei Benutzer im AD
$benutzerkennung2 = $_SESSION["gutachterbenennung_user_uid"];
if($benutzerkennung != ""){
$text .= "
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Benutzerkennung:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$benutzerkennung
</font>
</td>
</tr>";
}
if($pass_word != ""){
$text .= "
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Passwort:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$pass_word
</font>
</td>
</tr>";
}
if($benutzerkennung2 != ""){
$text .= "
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Benutzerkennung:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$benutzerkennung2
</font>
</td>
</tr>";
}
if($gutachterbemerkung != ""){
$text .= "
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Bemerkung:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$gutachterbemerkung
</font>
</td>
</tr>";
}
$text .="
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Bearbeitungsfrist:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$tag.$mon.$jahr
</font>
</td>
</tr>
</table>
<br />
Um den Vorschlag vollst&auml;ndig zu lesen und Ihre Stellungnahme abzugeben, melden Sie sich am System an und wechseln Sie auf das Register \"Gutachterbereich\".
<p>
Klicken Sie hier um zum <a href='https://www.hs-ludwigsburg.de/kurs/ideenmanagement'>Ideenmanagement</a> zu gelangen.
<p>
Wir k&ouml;nnen die Motivation zum Einreichen der Ideen steigern, indem wir schnelle, aber ausreichend begr&uuml;ndete Antworten geben.
Der Bearbeitungsaufwand soll sich am zu erwartenden Nutzen orientieren.
Sollten Sie die genannte Frist voraussichtlich nicht einhalten k&ouml;nnen, stimmen Sie bitte eine Zeitspanne mit dem/der QMB ab.
<p>
Diese Mail wurde automatisch generiert!<br />
Antworten Sie daher nicht auf diese Mail.<br />
<br />
Vielen Dank!
</body>
</html>";
mail_einstell($row_vv[vid], $uid, $empfaenger, NULL, NULL, $betreff, $text, 108, NULL);
echo "<meta http-equiv=\"refresh\" content=\"2; URL=".$_SERVER['PHP_SELF']."?\">";
}
}
$smarty->assign('action', "$action");
$smarty->display("$template/$templatename");
?>