Skip to content
Snippets Groups Projects
Commit e2884c78 authored by Manuel Schwarz's avatar Manuel Schwarz :headphones:
Browse files

Code improvements and fixes, ref #121

parent 44dd66ad
No related branches found
No related tags found
No related merge requests found
......@@ -5,32 +5,24 @@
* @author Manuel Schwarz <manschwa@uos.de>
* @access public
*/
require_once 'lib/classes/CronJob.class.php';
class ReminderEmail extends CronJob
{
public static function getName()
{
return dgettext('Stundenzettel', 'Stundenzettel - Erinnerungsmail an NutzerInnen verschicken');
return 'Stundenzettel - Erinnerungsmail an NutzerInnen verschicken';
}
public static function getDescription()
{
return dgettext('Stundenzettel', 'Sendet Erinnerungsmail an NutzerInnen welche ihren Stundenzettel noch nicht abgegeben haben.');
return 'Sendet Erinnerungsmail an NutzerInnen welche ihren Stundenzettel noch nicht abgegeben haben.';
}
public function execute($last_result, $parameters = array())
{
$month = (int)date('m'); // format: 5
$year = (int)date('Y'); // format: 2021
$month = $month - 1;
if ($month == 0) { // special case: turn of the year
$month = 12;
$year = $year - 1;
}
$month = (int) date('m', strtotime('last month')); // format: 5
$year = (int) date('Y', strtotime('last month')); // format: 2021
$contracts = StundenzettelContract::getContractsByMonth($month, $year);
foreach ($contracts as $contract) {
......@@ -45,51 +37,39 @@ class ReminderEmail extends CronJob
private static function sendMissingTimesheetMail($user_id)
{
$mailtext = '<html>
<body>
<h2>Erinnerung: Bitte nutzen Sie den digitalen Stundenzettel</h2>
<p>Sie erhalten diese E-Mail, da Sie im letzten Monat beim virtUOS angestellt waren und bisher noch keinen
Stundenzettel im Stundenzettel-Plugin in Stud.IP angelegt haben. Bitte holen Sie dies schnellstmöglich nach
und füllen diesen entsprechend mit Ihren Arbeitszeiten aus. Vielen Dank.</p>
<p>Mit freundlichen Grüßen,</p>
<p>Ihr virtUOS-Team</p>
</body>
</html>
';
sendReminderMail($user_id, $mailtext);
$subject = 'Erinnerung: Bitte nutzen Sie den digitalen virtUOS-Stundenzettel';
$mailtext = "Sie erhalten diese automatisch generierte E-Mail, da Sie im letzten Monat beim virtUOS angestellt waren "
. "und bisher noch keinen Stundenzettel im Stundenzettel-Plugin in Stud.IP angelegt haben.\n"
. "Bitte holen Sie dies schnellstmöglich nach und füllen diesen entsprechend mit Ihren Arbeitszeiten aus.\n"
. "Vielen Dank. \n\n"
. "Mit freundlichen Grüßen,\n"
. "Ihr virtUOS-Team";
sendReminderMail($user_id, $subject, $mailtext);
}
private static function sendOverdueMail($user_id)
{
$mailtext = '<html>
<body>
<h2>Erinnerung: Abgabe Ihres Stundenzettels</h2>
<p>Sie erhalten diese E-Mail, da Sie im letzten Monat beim virtUOS angestellt waren und Ihren Stundenzettel
im Stundenzettel-Plugin in Stud.IP bisher noch nicht abgegeben haben. Bitte holen Sie dies schnellstmöglich nach
sobald Sie Ihre Arbeitszeiten entprechend eingetragen haben. Vielen Dank.</p>
<p>Mit freundlichen Grüßen,</p>
<p>Ihr virtUOS-Team</p>
</body>
</html>
';
sendReminderMail($user_id, $mailtext);
$subject = 'Erinnerung: Abgabe Ihres virtUOS-Stundenzettels';
$mailtext = "Sie erhalten diese automatisch generierte E-Mail, da Sie im letzten Monat beim virtUOS angestellt waren "
. "und Ihren Stundenzettel im Stundenzettel-Plugin in Stud.IP bisher noch nicht abgegeben haben.\n"
. "Bitte holen Sie dies schnellstmöglich nach sobald Sie Ihre Arbeitszeiten entprechend eingetragen haben.\n"
. "Vielen Dank. \n\n"
. "Mit freundlichen Grüßen,\n"
. "Ihr virtUOS-Team";
sendReminderMail($user_id, $subject, $mailtext);
}
private static function sendReminderMail($user_id, $mailtext)
private static function sendReminderMail($user_id, $subject, $mailtext)
{
$recipient = User::find($user_id)->email;
$sender = "sekretariat-virtuos@uni-osnabrueck.de";
$subject = "Erinnerung: Stundenzettel virtUOS";
$mail = new StudipMail();
return $mail->addRecipient($recipient)
->setSenderEmail($sender)
->setSenderName('Sekretariat virtUOS')
->setSubject($subject)
->setBodyHtml($mailtext)
->setBodyText(strip_tags($mailtext))
->setBodyText($mailtext)
->send();
}
}
......@@ -8,7 +8,7 @@
class CronjobReminderEmail extends Migration
{
const FILENAME = 'public/plugins_packages/virtUOS/Stundenzettel/cronjobs/reminder_email.php';
const FILENAME = 'public/plugins_packages/virtUOS/Stundenzettel/cronjobs/ReminderEmail.php';
public function description()
{
......@@ -19,9 +19,9 @@ class CronjobReminderEmail extends Migration
{
$task_id = CronjobScheduler::registerTask(self::FILENAME, true);
// Schedule job to run every day at 23:59
// Schedule job to run every day at 03:00 o'clock
if ($task_id) {
CronjobScheduler::schedulePeriodic($task_id, -1); // negative value means "every x minutes"
CronjobScheduler::schedulePeriodic($task_id, 0, 3);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment