| Code Coverage | ||||||||||
| Classes and Traits | Functions and Methods | Lines | ||||||||
| Total |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 1 | CRAP |  | 0.00% | 0 / 19 | 
| SendReminder |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 1 | 30 |  | 0.00% | 0 / 19 | 
| run |  | 0.00% | 0 / 1 | 30 |  | 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); | |
| } | |
| } | |
| } | |
| } | |
| } |