Exemple #1
0
/**
 * Funktion sendet den ausgewählten Termin an alle Ressourcen aus der übergebenen Coodleumfrage
 * @global phrasen $p
 * @param type $coodle_id
 * @param type $auswahl 
 */
function sendEmail($coodle_id)
{
    global $mailMessage;
    global $p;
    $coodle_help = new coodle();
    $termin_id = $coodle_help->getTerminAuswahl($coodle_id);
    $coodle_help->loadTermin($termin_id);
    $coodle_ressource = new coodle();
    $coodle_ressource->getRessourcen($coodle_id);
    $coodle = new coodle();
    $coodle->load($coodle_id);
    $ort = '';
    $teilnehmer = '';
    foreach ($coodle_ressource->result as $row) {
        if ($row->ort_kurzbz != '') {
            if ($ort != '') {
                $ort .= ', ';
            }
            $ort .= "{$row->ort_kurzbz}";
        } else {
            if ($row->uid != '') {
                $benutzer = new benutzer();
                $benutzer->load($row->uid);
                $name = trim($benutzer->titelpre . ' ' . $benutzer->vorname . ' ' . $benutzer->nachname . ' ' . $benutzer->titelpost);
                $mail = $row->uid . '@' . DOMAIN;
            } else {
                $mail = $row->email;
                $name = $row->name;
            }
            $coodle_ressource_termin = new coodle();
            $partstat = '';
            if ($coodle_ressource_termin->checkTermin($termin_id, $row->coodle_ressource_id)) {
                $partstat = 'ACCEPTED';
            } else {
                $partstat = 'TENTATIVE';
            }
            $teilnehmer .= 'ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=' . $partstat . ';CN=' . $name . "\n :MAILTO:" . $mail . "\n";
        }
    }
    $date = new DateTime($coodle_help->datum . ' ' . $coodle_help->uhrzeit);
    //Datum des Termins ins richtige Format bringen
    $dtstart = $date->format('Ymd\\THis');
    //Ende Datum berechnen
    $interval = new DateInterval('PT' . $coodle->dauer . 'M');
    $date->add($interval);
    $dtend = $date->format('Ymd\\THis');
    $date = new DateTime();
    $dtstamp = $date->format('Ymd\\THis');
    $benutzer = new benutzer();
    $benutzer->load($coodle->ersteller_uid);
    $erstellername = trim($benutzer->titelpre . ' ' . $benutzer->vorname . ' ' . $benutzer->nachname . ' ' . $benutzer->titelpost);
    //Ical File erstellen
    $ical = "BEGIN:VCALENDAR\nPRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN\nVERSION:2.0\nMETHOD:PUBLISH\nBEGIN:VTIMEZONE\nTZID:Europe/Vienna\nBEGIN:DAYLIGHT\nTZOFFSETFROM:+0100\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\nDTSTART:19810329T020000\nTZNAME:GMT+02:00\nTZOFFSETTO:+0200\nEND:DAYLIGHT\nBEGIN:STANDARD\nTZOFFSETFROM:+0200\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\nDTSTART:19961027T030000\nTZNAME:GMT+01:00\nTZOFFSETTO:+0100\nEND:STANDARD\nEND:VTIMEZONE\nBEGIN:VEVENT\nORGANIZER:MAILTO:" . $erstellername . " <" . $coodle->ersteller_uid . "@" . DOMAIN . "\n" . $teilnehmer . "\nDTSTART;TZID=Europe/Vienna:" . $dtstart . "\nDTEND;TZID=Europe/Vienna:" . $dtend . "\nLOCATION:" . $ort . "\nTRANSP:OPAQUE\nSEQUENCE:0\nUID:FHCompleteCoodle" . $coodle_id . "\nDTSTAMP;TZID=Europe/Vienna:" . $dtstamp . "\nDESCRIPTION:" . strip_tags(html_entity_decode($coodle->beschreibung, ENT_QUOTES, 'UTF-8')) . "\nSUMMARY:" . strip_tags($coodle->titel) . "\nPRIORITY:5\nCLASS:PUBLIC\nEND:VEVENT\nEND:VCALENDAR";
    if (count($coodle_ressource->result) > 0) {
        foreach ($coodle_ressource->result as $row) {
            if ($row->uid != '') {
                $benutzer = new benutzer();
                if (!$benutzer->load($row->uid)) {
                    $mailMessage .= "Fehler beim Laden des Benutzers " . $coodle_ressource->convert_html_chars($row->uid);
                    continue;
                }
                if ($benutzer->geschlecht == 'w') {
                    $anrede = "Sehr geehrte Frau ";
                } else {
                    $anrede = "Sehr geehrter Herr ";
                }
                $anrede .= $benutzer->titelpre . ' ' . $benutzer->vorname . ' ' . $benutzer->nachname . ' ' . $benutzer->titelpost;
                // Interner Teilnehmer
                $email = $row->uid . '@' . DOMAIN;
            } elseif ($row->email != '') {
                // Externe Teilnehmer
                $email = $row->email;
                $anrede = 'Sehr geehrte(r) Herr/Frau ' . $row->name;
            } else {
                // Raueme bekommen kein Mail
                continue;
            }
            $anrede = trim($anrede);
            $sign = $p->t('mail/signatur');
            $datum = new datum();
            $html = $anrede . '!<br><br>
                Die Terminumfrage zum Thema "' . $coodle_ressource->convert_html_chars($coodle->titel) . '" ist beendet.
                <br>
                Der Termin wurde auf den <b>' . $datum->formatDatum($coodle_help->datum, 'd.m.Y') . ' ' . $coodle_help->uhrzeit . '</b> festgelegt.
                <br><br>' . nl2br($sign);
            $text = $anrede . "!\n\nDie Terminumfrage zum Thema \"" . $coodle_help->convert_html_chars($coodle->titel) . '"\\" ist beendet.\\n
                Der Termin wurde auf den <b>' . $datum->formatDatum($coodle_help->datum, 'd.m.Y') . ' ' . $coodle_help->uhrzeit . "</b> festgelegt\n.\n                \n\n{$sign}";
            $mail = new mail($email, 'no-reply@' . DOMAIN, 'Terminbestätigung - ' . $coodle->titel, $text);
            $mail->setHTMLContent($html);
            //ICal Termineinladung hinzufuegen
            $mail->addAttachmentPlain($ical, 'text/calendar', 'meeting.ics');
            if ($mail->send()) {
                $mailMessage .= $p->t('coodle/mailVersandtAn', array($email)) . "<br>";
            }
        }
    } else {
        die($p->t('coodle/keineRessourcenVorhanden'));
    }
}