} else { die('CoodleID fehlt'); } if (isset($_POST['coodle_termin_id'])) { $coodle_termin_id = $_POST['coodle_termin_id']; } else { die('CoodleTerminID fehlt'); } $coodle = new coodle(); if (!$coodle->load($coodle_id)) { die('Fehler: ' . $coodle->errormsg); } if ($coodle->ersteller_uid != $user) { die('Diese Aktion ist nur durch den Ersteller der Umfrage möglich'); } $coodletermin = new coodle(); if (!$coodletermin->loadTermin($coodle_termin_id)) { die('Fehler: ' . $coodletermin->errormsg); } if ($coodle->coodle_id != $coodletermin->coodle_id) { die('Termin und Umfrage passen nicht zusammen!'); } if ($coodletermin->deleteTermin($coodle_termin_id)) { echo 'true'; } else { echo $coodletermin->errormsg; } break; default: die('Invalid Work Parameter'); }
/** * 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')); } }
$termine->getRessourceTermin($umfrage->coodle_id, $ressource_id); foreach ($termine->result as $termin) { //Start und Ende berechnen $date = new DateTime($termin->datum . ' ' . $termin->uhrzeit); $dtstart = $date->format('Ymd\\THis'); $interval = new DateInterval('PT' . $umfrage->dauer . 'M'); $date->add($interval); $uhrzeit_ende = $date->format('H:i:s'); $dtende = $date->format('Ymd\\THis'); echo "\nFREEBUSY;TZID=Europe/Vienna: {$dtstart}/{$dtende}"; } } } elseif ($umfrage->coodle_status_kurzbz == 'abgeschlossen') { // Bei abgeschlossenen Umfragen wird nur mehr der ausgewaehlte Termin zur FreeBusy hinzugefuegt $termin = new coodle(); $coodle_termin_id = $termin->getTerminAuswahl($umfrage->coodle_id); if ($termin->loadTermin($coodle_termin_id)) { //Start und Ende berechnen $date = new DateTime($termin->datum . ' ' . $termin->uhrzeit); $dtstart = $date->format('Ymd\\THis'); $interval = new DateInterval('PT' . $umfrage->dauer . 'M'); $date->add($interval); $uhrzeit_ende = $date->format('H:i:s'); $dtende = $date->format('Ymd\\THis'); echo "\nFREEBUSY;TZID=Europe/Vienna: {$dtstart}/{$dtende}"; } } // stornierte Umfragen werden nicht beruecksichtigt } echo "\nEND:VFREEBUSY"; echo "\nEND:VCALENDAR";