public static function sendGroupMail(UtilBuffer $anStudenten, Dozent $vonDozent, $sMessage, $subj, $bSendCopyToDozent) { $subj = "[PRA|VER] " . $subj; //$text = "Das ist eine automatische Nachricht vom Studi-Manager-System.\r\n\r\n\r\n".$text; $text = $sMessage; /* To send HTML mail, you can set the Content-type header to text/html. */ $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $headers .= "From: " . $vonDozent->getName() . " <" . $vonDozent->getEmail() . ">\r\n"; // Verschicken der Mails for ($i = 0; $i < $anStudenten->getCount(); $i++) { $studi = $anStudenten->get($i); mail($studi->getEmail(), $subj, $text, $headers); } if ($bSendCopyToDozent) { $text = "Sie haben die folgende Nachricht über das Fächerverwaltungssystem verschickt:\r\n\r\n" . $text; mail($vonDozent->getEmail(), $subj, $text, $headers); } }
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; }