ideenmanagement/func_mail_versand.php
2023-03-09 11:22:13 +01:00

487 lines
27 KiB
PHP
Executable File

<?php
function mail_versand(){
global $db;
#---------------------------------------------------------------------------------------------------------------------------------------
#require_once("config.inc.php"); // f&uuml;gt die Datenbankanbindung ein: Sys:\php\includes\kurs\datenbankanbindung.php
session_start();
require_once("config/datenbankanbindung.php"); // f&uuml;gt die Datenbankanbindung ein: Sys:\php\includes\kurs\datenbankanbindung.php
# Domäne wird simuliert in der Programmierumgebung
#$_SESSION["global_domain"] = "hsnet";
#$_SESSION["global_uid"] = "1";
#$_SESSION["global_username"] = "SCHWARAL";
require_once("class_idee.php");
#---------------------------------------------------------------------------------------------------------------------------------------
# Ermittlung der Globalen Einstellungen
$db = dbconnect();
$result_ansprech_global = $db->query("SELECT wert1, wert2 FROM imt_parameter WHERE pid='1'");
$row_ansprech_global = $result_ansprech_global->fetch_array();
$result_ansprech_global1 = $db->query("SELECT wert1 FROM imt_parameter WHERE pid='3'");
$row_ansprech_global1 = $result_ansprech_global1->fetch_array();
$result_ansprech_uid = $db->query("SELECT imtuid FROM imt_user WHERE mail IN (SELECT wert2 FROM imt_parameter WHERE pid='1')");
$row_ansprech_uid = $result_ansprech_uid->fetch_array();
$global_service_admin = "$row_ansprech_global[wert1]";
$global_service_mail = "$row_ansprech_global[wert2]";
$global_service_admin_uid = "$row_ansprech_global1[wert1]";
$global_service_uid = "$row_ansprech_uid[imtuid]";
#---------------------------------------------------------------------------------------------------------------------------------------
# $username = $_SESSION["global_username"];
#$uid = $_SESSION["global_uid"];
$login_dateiname = basename($_SERVER['PHP_SELF']);
$template = "modern";
#---------------------------------------------------------------------------------------------------------------------------------------
require_once("func_verlauf.php");
$db = dbconnect();
$result_mail_notw = $db->query("SELECT count(*) Anz
FROM imt_mail
WHERE status IN ('N', 'F')");
$row_mail_notw = $result_mail_notw->fetch_array();
if($row_mail_notw["Anz"] >0){
$aend_dat = date("Y-m-d H:i:s");
$query_versand = "SELECT mid, vid, imtuid, an, cc, bcc, betreff, body, verlauf_status, verlauf_body, einstell_dat
FROM imt_mail
WHERE status IN ('N', 'F')
ORDER BY einstell_dat ASC";
$result_versand = $db->query ($query_versand)
or die ("Cannot execute query_versand");
while ($row_versand = $result_versand->fetch_array()){
$query_an = $db->query("SELECT mail
FROM imt_user
WHERE imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_an = $query_an->fetch_array();
$query_cc = $db->query("SELECT mail
FROM imt_user
WHERE imtuid = '$row_versand[cc]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_cc = $query_cc->fetch_array();
$query_bcc = $db->query("SELECT mail
FROM imt_user
WHERE imtuid = '$row_versand[bcc]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_bcc = $query_bcc->fetch_array();
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=utf-8\n";
$headers .= "From: Ideenwettbewerb HS Ludwigsburg <$global_service_mail>\n";
$headers .= "Cc: $row_cc[mail]\n";
$headers .= "Bcc: $row_bcc[mail]\n";
$betreff = str_replace (array("&auml;", "&ouml;", "&uuml;", "&szlig;", "&Auml;", "&Ouml;", "&Uuml;"), array("ä", "ö", "ü", "ß", "Ä", "Ö", "Ü"), $row_versand[betreff]);
$return = @mail($row_an[mail], $betreff, $row_versand[body], $headers);
if($return){
$sql_versand = $db->query("UPDATE imt_mail SET status='V', versand_dat='$aend_dat' WHERE mid='$row_versand[mid]'");
}else{
$sql_versandfehler = $db->query("UPDATE imt_mail SET status='F', versand_dat='$aend_dat' WHERE mid='$row_versand[mid]'");
}
# Beteiligter benennen
if($row_versand[verlauf_status] == '100'){
if($return){
$query_vorp = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$row_versand[vid]'
AND verlauf = 'Status&auml;nderung: Vorpr&uuml;fung bestanden'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorp = $query_vorp->fetch_array();
if($row_vorp[Anz] < 1){
verlauf($row_versand[imtuid], $row_versand[vid], "Status&auml;nderung: Vorpr&uuml;fung bestanden", 2, '');
}
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_beteiligte b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
verlauf($row_versand[imtuid], $row_versand[vid], "Beteiligter $row_data[vorname] $row_data[nachname] informiert. Frist: $row_data[frist_datum_form]", $row_versand[verlauf_status], $row_versand[einstell_dat]);
}else{
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_beteiligte b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
$query_vorperr = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$row_versand[vid]'
AND verlauf = 'Mailfehler: Beteiligter $row_data[vorname] $row_data[nachname] nicht infomiert. Frist: $row_data[frist_datum_form]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorperr = $query_vorperr->fetch_array();
if($row_vorperr[Anz] < 1){
verlauf($row_versand[imtuid], $row_versand[vid], "Mailfehler: Beteiligter $row_data[vorname] $row_data[nachname] nicht infomiert. Frist: $row_data[frist_datum_form]", 0, '');
}else{
$sql_verlauf_err = $db->query("UPDATE imt_verlauf SET datum='$aend_dat' WHERE vid='$row_versand[vid]' AND verlauf = 'Mailfehler: Beteiligter $row_data[vorname] $row_data[nachname] nicht infomiert. Frist: $row_data[frist_datum_form]'");
}
}
}
# Gutachter informiert
if($row_versand[verlauf_status] == '108'){
if($return){
$query_vorp = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$row_versand[vid]'
AND verlauf = 'Status&auml;nderung: Vorpr&uuml;fung bestanden'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorp = $query_vorp->fetch_array();
if($row_vorp[Anz] < 1){
verlauf($row_versand[imtuid], $row_versand[vid], "Status&auml;nderung: Vorpr&uuml;fung bestanden", 2, '');
}
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum_abgabe, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_gutachter b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
verlauf($row_versand[imtuid], $row_versand[vid], "Gutachter $row_data[vorname] $row_data[nachname] informiert. Frist: $row_data[frist_datum_form]", $row_versand[verlauf_status], $row_versand[einstell_dat]);
}else{
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum_abgabe, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_gutachter b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
$query_vorperr = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$row_versand[vid]'
AND verlauf = 'Mailfehler: Gutachter $row_data[vorname] $row_data[nachname] nicht infomiert. Frist: $row_data[frist_datum_form]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorperr = $query_vorperr->fetch_array();
if($row_vorperr[Anz] < 1){
verlauf($row_versand[imtuid], $row_versand[vid], "Mailfehler: Gutachter $row_data[vorname] $row_data[nachname] nicht infomiert. Frist: $row_data[frist_datum_form]", 0, '');
}else{
$sql_verlauf_err = $db->query("UPDATE imt_verlauf SET datum='$aend_dat' WHERE vid='$row_versand[vid]' AND verlauf = 'Mailfehler: Gutachter $row_data[vorname] $row_data[nachname] nicht infomiert. Frist: $row_data[frist_datum_form]'");
}
}
}
# Adminhinweis gesendeet
if($row_versand[verlauf_status] == '102'){
if($return){
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum_abgabe, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_gutachter b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
verlauf($row_versand[imtuid], $row_versand[vid], 'Adminhinweis wurde ge&auml;ndert', 102, $row_versand[einstell_dat]);
}else{
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum_abgabe, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_gutachter b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
$query_vorperr = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$row_versand[vid]'
AND verlauf = 'Mailfehler: Adminhinweis konnte nicht zugestellt werden.'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorperr = $query_vorperr->fetch_array();
if($row_vorperr[Anz] < 1){
verlauf($row_versand[imtuid], $row_versand[vid], "Mailfehler: Adminhinweis konnte nicht zugestellt werden.", 0, '');
}else{
$sql_verlauf_err = $db->query("UPDATE imt_verlauf SET datum='$aend_dat' WHERE vid='$row_versand[vid]' AND verlauf = 'Mailfehler: Adminhinweis konnte nicht zugestellt werden.'");
}
}
}
# Erfasserhinweis gesendeet
if($row_versand[verlauf_status] == '104'){
if($return){
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum_abgabe, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_gutachter b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
verlauf($row_versand[imtuid], $row_versand[vid], 'Hinweis des Erfassers', 104, $row_versand[einstell_dat]);
}else{
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum_abgabe, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_gutachter b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
$query_vorperr = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$row_versand[vid]'
AND verlauf = 'Mailfehler: Erfasserhinweis konnte nicht zugestellt werden.'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorperr = $query_vorperr->fetch_array();
if($row_vorperr[Anz] < 1){
verlauf($row_versand[imtuid], $row_versand[vid], "Mailfehler: Erfasserhinweis konnte nicht zugestellt werden.", 0, '');
}else{
$sql_verlauf_err = $db->query("UPDATE imt_verlauf SET datum='$aend_dat' WHERE vid='$row_versand[vid]' AND verlauf = 'Mailfehler: Erfasserhinweis konnte nicht zugestellt werden.'");
}
}
}
# Sitzung terminieren
if($row_versand[verlauf_status] == '109'){
if($return){
$query_get_data = $db->query("SELECT vorname, nachname
FROM imt_user
WHERE imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
# Im verlauf_body kommen zwei Werte an: 1) Das Datum der Sitzung 2) die VID, die für eine Sitzung terminiert wurden
# Datum und VIDs sind durch | getrennt. Die einzelnen VIDs sind durch Komma getrennt.
$verlauf_body = preg_split('/\|/', $row_versand[verlauf_body]);
$datum = $verlauf_body[0];
$vids = preg_split('/\,/', $verlauf_body[1]);
for($i=0;$i<sizeof($vids);$i++){
# Für jede VID wird ein entsprechender Verlauf gesetzt
$query_get_data2 = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE status = '109'
AND vid = '$vids[$i]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data2 = $query_get_data2->fetch_array();
if($row_data2[Anz] == 0){
# Bei Sitzungstermin verwalten können gleiche Vids nochmals kommen, wenn diese eben nicht verändert wurden.
# Um zu verhindern, dass diese nochmals in Verlauf gesetzt werden, diese if-Anweisung
verlauf($row_versand[imtuid], $vids[$i], "Ausschuss ($row_data[vorname] $row_data[nachname]) &uuml;ber Sitzung am $datum informiert.", $row_versand[verlauf_status], $row_versand[einstell_dat]);
}
}
}else{
$query_get_data = $db->query("SELECT vorname, nachname
FROM imt_user
WHERE imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
# Im verlauf_body kommen zwei Werte an: 1) Das Datum der Sitzung 2) die VID, die für eine Sitzung terminiert wurden
# Datum und VIDs sind durch | getrennt. Die einzelnen VIDs sind durch Komma getrennt.
$verlauf_body = preg_split('/\|/', $row_versand[verlauf_body]);
$datum = $verlauf_body[0];
$vids = preg_split('/\,/', $verlauf_body[1]);
for($i=0;$i<sizeof($vids);$i++){
$query_vorperr = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$vids[$i]'
AND verlauf = 'Mailfehler: Ausschuss ($row_data[vorname] $row_data[nachname]) nicht &uuml;ber Sitzung am $datum infomiert.'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorperr = $query_vorperr->fetch_array();
if($row_vorperr[Anz] < 1){
verlauf($row_versand[imtuid], $vids[$i], "Mailfehler: Ausschuss ($row_data[vorname] $row_data[nachname]) nicht &uuml;ber Sitzung am $datum infomiert.", 0, '');
}else{
$sql_verlauf_err = $db->query("UPDATE imt_verlauf SET datum='$aend_dat' WHERE vid='$vids[$i]' AND verlauf = 'Mailfehler: Ausschuss ($row_data[vorname] $row_data[nachname]) nicht &uuml;ber Sitzung am $datum infomiert.'");
}
}
}
}
# Vorschlag entschieden (Nachricht an Einreicher)
if($row_versand[verlauf_status] == '110'){
if($return){
$query_get_data = $db->query("SELECT vorname, nachname
FROM imt_user
WHERE imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
$query_get_data2 = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE status = '110'
AND vid = '$row_versand[vid]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data2 = $query_get_data2->fetch_array();
if($row_data2[Anz] == 0){
# Bei Sitzungstermin verwalten können gleiche Vids nochmals kommen, wenn diese eben nicht verändert wurden.
# Um zu verhindern, dass diese nochmals in Verlauf gesetzt werden, diese if-Anweisung
verlauf($row_versand[imtuid], $row_versand[vid], "$row_data[vorname] $row_data[nachname] &uuml;ber Entscheidung informiert.", $row_versand[verlauf_status], $row_versand[einstell_dat]);
}
}else{
$query_get_data = $db->query("SELECT vorname, nachname
FROM imt_user
WHERE imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
$query_vorperr = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$row_versand[vid]'
AND verlauf = 'Mailfehler: $row_data[vorname] $row_data[nachname] nicht &uuml;ber Entscheidung infomiert.'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorperr = $query_vorperr->fetch_array();
if($row_vorperr[Anz] < 1){
verlauf($row_versand[imtuid], $row_versand[vid], "Mailfehler: $row_data[vorname] $row_data[nachname] nicht &uuml;ber Entscheidung infomiert.", 0, '');
}else{
$sql_verlauf_err = $db->query("UPDATE imt_verlauf SET datum='$aend_dat' WHERE vid='$row_versand[vid]' AND verlauf = 'Mailfehler: $row_data[vorname] $row_data[nachname] nicht &uuml;ber Entscheidung infomiert.'");
}
}
}
# Ausschuss benachrichtigen
if($row_versand[verlauf_status] == '103'){
if($return){
$query_vorp = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$row_versand[vid]'
AND verlauf = 'Status&auml;nderung: Vorpr&uuml;fung bestanden'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorp = $query_vorp->fetch_array();
if($row_vorp[Anz] < 1){
verlauf($row_versand[imtuid], $row_versand[vid], "Status&auml;nderung: Vorpr&uuml;fung bestanden", 2, '');
}
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_gutachter b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[verlauf_body]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
$query_get_data1 = $db->query("SELECT vorname, nachname
FROM imt_user a
WHERE a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data1 = $query_get_data1->fetch_array();
verlauf($row_versand[imtuid], $row_versand[vid], "Ausschuss ($row_data1[vorname] $row_data1[nachname]) &uuml;ber Gutachter $row_data[vorname] $row_data[nachname] informiert. Frist: $row_data[frist_datum_form]", $row_versand[verlauf_status], $row_versand[einstell_dat]);
}else{
$query_get_data = $db->query("SELECT vorname, nachname, date_format(frist_datum, '%d.%m.%Y') frist_datum_form
FROM imt_user a, imt_gutachter b
WHERE a.imtuid = b.imtuid
AND b.vid = '$row_versand[vid]'
AND a.imtuid = '$row_versand[verlauf_body]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data = $query_get_data->fetch_array();
$query_get_data1 = $db->query("SELECT vorname, nachname
FROM imt_user a
WHERE a.imtuid = '$row_versand[an]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_data1 = $query_get_data1->fetch_array();
$query_vorperr = $db->query("SELECT count(*) Anz
FROM imt_verlauf
WHERE vid='$row_versand[vid]'
AND verlauf = 'Mailfehler: $row_data1[vorname] $row_data1[nachname] &uuml;ber Bestellung von Gutachter $row_data[vorname] $row_data[nachname]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username
$row_vorperr = $query_vorperr->fetch_array();
if($row_vorperr[Anz] < 1){
verlauf($row_versand[imtuid], $row_versand[vid], "Mailfehler: $row_data1[vorname] $row_data1[nachname] &uuml;ber Bestellung von Gutachter $row_data[vorname] $row_data[nachname]", 0, '');
}else{
$sql_verlauf_err = $db->query("UPDATE imt_verlauf SET datum='$aend_dat' WHERE vid='$row_versand[vid]' AND verlauf = 'Mailfehler: $row_data1[vorname] $row_data1[nachname] &uuml;ber Bestellung von Gutachter $row_data[vorname] $row_data[nachname]'");
}
}
}
# Ausschuss benachrichtigen
if($row_versand[verlauf_status] == '1'){
if($return){
verlauf($row_versand[imtuid], $row_versand[vid], 'Verbesserungsvorschlag erstellt', $row_versand[verlauf_status], $row_versand[einstell_dat]);
}
}
}
}else{
echo "keine Mails zu senden!";
}
}
echo mail_versand();
?>