public function createPassForStudiAndMail(Connection $conn, $matrnr, $len) { $len = intval($len); if ($len <= 0) { $len = rand(6, 12); } $count = count($this->alpha); $pass = ""; while ($len >= 0) { $pass .= $this->alpha[rand(0, $count - 1)]; $len = $len - 1; } $email = ""; if ($email = $this->writepass($conn, $matrnr, $pass)) { Mailer::mailit($email, "Neues Passwort", "Dein Passwort lautet \"{$pass}\"\r\n\\Du kannst Dich jetzt unter \r\n " . Config::PRAVER_ROOT_URL . " \r\n mit Deiner Matrikelnummer und diesem Passwort anmelden."); return true; } else { return false; } }
public function notenAbgeben($anfachid, $notenstatus, $termin, ErrorQueue $err, UtilBuffer $notenwerte, UtilBuffer $matrnummer, UtilBuffer $fehlendeVorleistungen) { $anfachid = intval($anfachid); $notenstatus = intval($notenstatus); $freigebenAmEnde = false; // Ob das Fach nach der Notenabgabe freigegeben werden soll. if ($notenwerte->getCount() != $matrnummer->getCount() || $notenwerte->getCount() != $fehlendeVorleistungen->getCount()) { $err->addError("Systemfehler: Funktion 'notenAbgeben' wurde mit fehlerhaften Patametern aufgerufen."); return false; } if ($anfach = AngebotenesFach::readAngebotenesFach($this->conn, $err, $anfachid)) { $fach = $anfach->getFach(); $hatGemeinsame = $fach->hatGemeinsameLeistungen(); $istPruefung = $fach->istPruefung(); if (-1 == $hatGemeinsame) { $err->addError($fach->getLastError()); return false; } if (1 == $hatGemeinsame) { if ($istPruefung) { $notenstatus = $notenstatus == Note::STATUS_TEILNOTE ? Note::STATUS_TEILNOTE : Note::STATUS_ENDNOTE; // Wenn das eine Prüfung ist, die mit gemeinsamen Leistungen verbunden ist // dann wird ersmal überprüft, was überhaupt abgegeben wurde $abgabeStatus = $anfach->getNotenabgabeStatus(); if (-1 == $abgabeStatus) { $err->addError($anfach->getLastError()); return false; } if ($notenstatus == Note::STATUS_TEILNOTE && $abgabeStatus == Note::STATUS_TEILNOTE) { $err->addError("Sie haben die Teilnoten für dieses Fach schon vergeben."); return false; } if ($notenstatus == Note::STATUS_ENDNOTE && $abgabeStatus == Note::STATUS_ENDNOTE) { $err->addError("Sie haben die Endnoten für dieses Fach schon vergeben."); return false; } $endnote = $notenstatus; if ($abgabeStatus == 0) { $freigebenAmEnde = false; } else { $freigebenAmEnde = true; } } else { $endnote = Note::STATUS_TEILNOTE; $freigebenAmEnde = true; } } else { if ($istPruefung) { $endnote = Note::STATUS_ENDNOTE; } else { $endnote = Note::STATUS_TEILNOTE; } $freigebenAmEnde = true; } } else { $err->addError("Das Fach ist nicht mehr angeboten. Sie können nur Noten abgeben, wenn Sie das Fach anbieten."); return false; } if ($endnote == Note::STATUS_TEILNOTE) { $endnoteString = "TEILNOTE"; } else { $endnoteString = "ENDNOTE"; } $dozentmessage = "Hallo " . $this->getName() . ",\r\n"; $dozentmessage .= "Sie haben gerade die folgenden Noten zum Fach " . $anfach->getKennzahl() . " " . $anfach->getName() . " abgegeben.\r\n\r\n"; for ($i = 0; $i < $notenwerte->getCount(); $i++) { $notenwert = $notenwerte->get($i); $matrnr = $matrnummer->get($i); $kennzahl = $anfach->getKennzahl(); $kennziffer = $anfach->getKennziffer(); $termin = addslashes($termin); $fehlende = $fehlendeVorleistungen->get($i); $interpretation = Note::getInterpretation($notenwert); $bestanden = Note::retrBr($interpretation); if (Note::NOTE_BESTANDEN == $interpretation || Note::NOTE_NICHTBESTANDEN == $interpretation) { $note = $notenwert; } else { $note = 0; } $n = new Note($note, $interpretation, $termin); $n->setFehlendeVorleistungen($fehlende); $n->setMatrNr($matrnr); $n->setDozentId($this->getID()); $n->setKennzahl($kennzahl); $n->setKennziffer($kennziffer); if ($endnote == Note::STATUS_ENDNOTE) { $n->setEndnote(true); } else { $n->setEndnote(false); } $fristgerecht = Student::istFristgerechtAngemeldet($this->conn, $err, $matrnr, $anfach); $fristgerechtS = $fristgerecht ? 'JA' : 'NEIN'; $s = "INSERT INTO hatleistung(MatrNr, Kennzahl, Teilkennziffer, Bestanden, Note, Datum, TeilEndNote, PDozentID, FehlendeVorleistungen, FristgerechtAngemeldet) "; $s .= "VALUES({$matrnr}, '{$kennzahl}', {$kennziffer}, '{$bestanden}', {$note}, '{$termin}', '{$endnoteString}', " . $this->getID() . ", {$fehlende}, '{$fristgerechtS}')"; $q = new DBQuery($s); if ($this->conn->executeQuery($q)) { Mailer::mailNote($n, $anfach, $this); $vf = $n->hatFehlendeVorleistungen() ? "(Vorleistungen fehlen)" : ""; $dozentmessage .= $n->getMatrNr() . ": " . $n->getBenotung($anfach->getFach()) . " " . $vf . "\r\n"; if ($freigebenAmEnde) { $q = new DBQuery("DELETE FROM angemeldet WHERE MatrNr={$matrnr} and PAnFachID=" . $anfach->getID()); if (false == $this->conn->executeQuery($q)) { $err->addError("Die Abmeldung von {$matrnr} konnte nicht durchgeführt werden. " . $this->conn->getLastError()); return false; } } } else { $err->addError("Unerwarteter Fehler. Die Note von {$matrnr} konnte nicht abgegeben werden."); return false; } } // for $dozentmessage .= "\r\nTermin der Pruefung: " . $termin . "\r\n"; $dozentmessage .= "Status: " . $endnoteString; Mailer::mailit($this->getEmail(), "Notenabgabe " . $anfach->getKennzahl() . " " . $anfach->getName() . " zum " . $termin, $dozentmessage); // Hier werden (wenn es soweit ist) die Studenten abgemeldet und das Fach freigegeben if ($freigebenAmEnde) { if (false == $this->fachBeenden($anfachid)) { $err->addError($this->getLastError()); } } else { if (false == $anfach->setNotenabgabeStatus($notenstatus)) { $err->addError($anfach->getLastError()); } } return true; }
Mailer::mailit($dozent_daten[1], "Neuer Bericht zum BpS", $student->getNameKomplett() . " hat einen Bericht zum Berufspraktischen Semester abgegeben.\n" . "Dieser wurde bereits erfolgreich von " . $mitarbeiter->getName() . " mit dem Praktikumszeugnis abgeglichen.\n" . "Bitte überprüfen Sie diesen unter \r\n " . Config::PRAVER_ROOT_URL . " \r\n"); echo "Der Bericht wurde erfolgreich überprüft und wurde nun zum zuständigen Sachbearbeiter weitergeleitet."; } else { if ($aktion == "fehlerhaft") { $student = Student::readStudent($conn, $err, $bericht->getMatrNr()); $email = $student->getEmail(); if ($zeugnisvorhanden == "Nein") { $zeugnisproblem = "Das Zeugnis wurde nicht abgegeben\n"; } if ($datenkorrekt == "Nein") { $datenproblem = "Die Daten im Bericht stimmen nicht mit denen im Zeugnis überein\n"; } if ($zeiteingehalten == "Nein") { $zeitproblem = "Die Länge dess Praktikums ist nicht ausreichend.\n"; } Mailer::mailit($email, "Bericht zum BpS fehlerhaft", "Dein Bericht wurde von " . $mitarbeiter->getName() . "überprüft und abgelehnt.\nGrund:\n" . $zeugnisproblem . $datenproblem . $zeitproblem . "Bitte korrigiere Deinen Bericht gegebenfalls unter \r\n " . Config::PRAVER_ROOT_URL . " \r\n"); echo "Der Bericht wurde als fehlerhaft gewertet und der Student wurde benachrichtigt.<br>"; if ($zeugnisvorhanden == "Nein" && $datenkorrekt == "Ja" && $zeiteingehalten == "Ja") { echo "Da das Zeugnis noch nicht abgegeben wurde, verbleibt der Bericht in Ihrer Liste"; } else { echo "Der Bericht wurde zurück zum Studenten geschickt"; } } } } ?> </td>
$bericht->setFreigabe("1"); $freigabe_text = "Der Sachbearbeiter hat jedoch entschieden, diesen nicht für die Datenbank freizugegeben."; break; case "auto": $bericht->setFreigabe("1"); $freigabe_text = "Aufgrund Deines Wunsches, wurde dieser jedoch nicht für die Datenbank freigegeben."; break; } //switch if ($bericht->getUnternehmen()->getStatus() == 1) { $bericht->getUnternehmen()->setStatus(0); $bericht->getUnternehmen()->setInited(true); $bericht->getUnternehmen()->updateDatenbank(); } $email_adresse = $student->getEmail(); Mailer::mailit($email_adresse, "Bericht wurde anerkannt", $dozent->getName() . " hat Deinen Bericht zum Berufspraktischen Semester überprüft und anerkannt.\n" . $freigabe_text . "\n\nDu kannst Dich jederzeit wieder einloggen um Deinen und andere Bericht zu durchstöbern.\r\n " . Config::PRAVER_ROOT_URL . " \r\n"); $bericht->updateDatenbank(); } //else } else { if ($aktion == "zurueck") { $schritt--; } else { if ($aktion == "weiter") { $schritt++; } } } } if ($schritt < 1) { $schritt = 1;
$bericht->initAusDatenbank($berichtid); $student = Student::readStudent($conn, $err, $bericht->getMatrNr()); $aktion = ""; if (isset($_POST['abschicken_x'])) { $aktion = "abschicken"; } if ($aktion == "abschicken") { if (isset($_POST['grund'])) { $text = $_POST['grund']; } $subj = "Bericht zum BpS wurde abgelehnt!"; $email = $student->getEmail(); $bericht->setBearbeitungszustand(Bericht::BEIM_STUDENT); $bericht->updateDatenbank(); $text .= "\n\nBitte korrigiere Deinen Bericht gegebenfalls unter \r\n " . Config::PRAVER_ROOT_URL . " \r\n"; Mailer::mailit($email, $subj, $text); } ?> <html> <head> <title>Dozent</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="../styles/main.css" type="text/css"> <link rel="stylesheet" href="../styles/menu.css" type="text/css"> <link rel="stylesheet" href="../styles/prof.css" type="text/css"> </head> <body leftmargin="0" topmargin="0"> <table height="100%" border="0" cellspacing="0" cellpadding="0" class="hauptbox"><tr><td valign="top" height="100%"> <?php
} echo "</form>"; } else { //sonderseiten switch ($sonderseite) { case 1: echo 'Vielen Dank, Dein Bericht wurde nun zur Überprüfung weitergeleitet.<br>Sobald er beurteilt wurde, erhälst Du eine Ergebnis-Email.'; $bericht->setAbgabeversuch($bericht->getAbgabeversuch() + 1); if (!$student->getStudiengang()->getMitarbeiterID()) { $bericht->setBearbeitungszustand(Bericht::BEIM_PROFESSOR); $dozent_daten = $student->getStudiengang()->getSachbearbeiter(); Mailer::mailit($dozent_daten[1], "Neuer Bericht zum BpS", $student->getNameKomplett() . " hat einen Bericht zum Berufspraktischen Semester abgegeben.\nBitte überprüfen Sie diesen unter \r\n " . Config::PRAVER_ROOT_URL . " \r\n"); } else { $bericht->setBearbeitungszustand(Bericht::BEIM_MITARBEITER); $mitarbeiter_daten = $student->getStudiengang()->getMitarbeiter(); Mailer::mailit($mitarbeiter_daten[1], "Neuer Bericht zum BpS", $student->getNameKomplett() . " hat einen Bericht zum Berufspraktischen Semester abgegeben.\nBitte überprüfen Sie diesen unter \r\n " . Config::PRAVER_ROOT_URL . " \r\n"); } break; case 2: echo 'Deine bisherigen Eingaben wurden gespeichert.<br>Du kannst Deinen Bericht jederzeit unter <i>Bericht einpflegen</i> weiterschreiben.'; break; case 3: echo 'Deine bisherigen Eingaben wurden gelöscht.<br>Unter <i>Bericht einpflegen</i> kannst Du nun jederzeit einen neuen Bericht anfangen.'; $bericht->loescheAusDatenbank(); break; } } ?>
$err->addError("Fehler: Es ist kein E-Mail-Ziel definiert"); } } $aktion = "formular"; if (isset($_POST['aktion']) && $_POST['aktion'] == "senden") { if (isset($_POST['nachricht']) && $_POST['nachricht'] != "" && isset($_POST['absender']) && $_POST['absender'] != "" && Mailer::checkMail($_POST['absender']) && $berichtID > -1) { $bericht = new Bericht($conn); $bericht->initAusDatenbank($berichtID); if ($bericht->getInited()) { if ($student = Student::readStudent($conn, $err, $bericht->getMatrNr())) { $email_adresse = $student->getEmail(); $betreff = ""; if (isset($_POST['betreff'])) { $betreff = $_POST['betreff']; } Mailer::mailit($email_adresse, $betreff, $_POST['nachricht']); $aktion = "senden"; } else { echo $err->addError("Eingaben nicht ausreichend!"); } } else { echo $err->addError("Eingaben nicht ausreichend!"); } } else { echo $err->addError("Eingaben nicht ausreichend!"); } } ?> <html>
public static function neuerStudentAnmelden($matrnr, $name, $vorname, $email, $fhemail, ErrorQueue $err, Connection $conn) { $gen = new PassGenerator(); $pass = $gen->createNewPass(0); $mdpass = md5($pass); // Matrikelnummer überprüfen $matrnr1 = $matrnr; $matrnrlen = strlen($matrnr1); $matrnr = intval($matrnr); if ($matrnrlen != strlen($matrnr) || $matrnr <= 0) { $err->addError("Die Matrikelnummer ist ungültig."); return false; } $name = addslashes($name); $email = addslashes($email); $vorname = addslashes($vorname); $fhemail .= "@stud.fh-luebeck.de"; $fhemail = addslashes($fhemail); if (strcmp($name, "") == 0 || strcmp($vorname, "") == 0 || strcmp($email, "") == 0 || strcmp($fhemail, "") == 0) { $err->addError("Bitte füll alle Felder aus."); return false; } if (!Mailer::checkMail($email)) { $err->addError("Die E-Mail-Adresse hat das falsche Format."); return false; } if (!Mailer::checkMail($fhemail)) { $err->addError("Die FHL-E-Mail-Adresse hat das falsche Format."); return false; } if ($conn->isConnected()) { $q = new DBQuery("INSERT INTO student(MatrNr, Name, EMail, Pass, Vorname) VALUES({$matrnr}, '{$name}', '{$email}', '{$mdpass}', '{$vorname}')"); if ($conn->executeQuery($q)) { Mailer::mailit($fhemail, "Deine Anmeldung", "Hallo {$name},\n danke für Deine Anmeldung. Deine Login-Daten lauten:\n Passwort: \"{$pass}\"\nMatrikelnummer: {$matrnr}\n\n" . Studiengang::getSemsysInfo($conn, $err)); return true; } else { $err->addError("Die Anmeldung konnte nicht durchgeführt werden. Diese Matrikelnummer ist schon registriert."); return false; } // Query executed } else { $err->addError("Keine Verbindung zur Datenbank."); return false; } // Connected }