Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 19
SendReminder
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
30
0.00% covered (danger)
0.00%
0 / 19
 run
0.00% covered (danger)
0.00%
0 / 1
30
0.00% covered (danger)
0.00%
0 / 19
<?php
/**
 * @link https://www.humhub.org/
 * @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
 * @license https://www.humhub.com/licences
 *
 */
namespace humhub\modules\tasks\jobs;
use DateTime;
use humhub\modules\queue\ActiveJob;
use humhub\modules\tasks\models\Task;
class SendReminder extends ActiveJob
{
    public function run()
    {
        $now = new DateTime('now');
        /** @var $tasks Task[] */
        $tasks = Task::find()
            ->innerJoinWith('taskReminder')
            ->where(['task.scheduling' => 1])
            ->andWhere(['!=', 'task.status', Task::STATUS_COMPLETED])
            ->all();
        foreach ($tasks as $task) {
            if ($task->schedule->hasTaskReminder()) {
                $reminderSent = false;  // only send one reminder per run per task
                foreach ($task->taskReminder as $reminder) {
                    if ($reminderSent) {
                        continue;
                    }
                    $reminderSent = $reminder->handleRemind($now);
                }
            }
        }
    }
}