- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/agent.php
- Класс: BitrixTasksInternalsCounterAgent
- Вызов: Agent::expiredSoon
static function expiredSoon($taskId): string
{
$task = Task::getInstance($taskId, User::getAdminId());
$statusesCompleted = [Status::DEFERRED, Status::COMPLETED, Status::SUPPOSEDLY_COMPLETED];
if (!$task || !$task['RESPONSIBLE_ID'] || !($taskData = $task->getData()))
{
return '';
}
if (is_null($taskData['DEADLINE']))
{
self::remove($taskData['ID']);
return '';
}
self::add($taskId, $taskData['DEADLINE'], true);
if (in_array((int)$taskData['STATUS'], $statusesCompleted, true))
{
return '';
}
CounterCounterService::addEvent(CounterEventEventDictionary::EVENT_TASK_EXPIRED_SOON, $taskData);
$commentPoster = CommentPoster::getInstance($taskId, (int)$taskData['CREATED_BY']);
$commentPoster && $commentPoster->postCommentsOnTaskExpiredSoon($taskData);
CTaskNotifications::sendExpiredSoonMessage($taskData);
$event = new Event('tasks', self::EVENT_TASK_EXPIRED_SOON, [
'TASK_ID' => $taskId,
'TASK' => $taskData,
]);
$event->send();
BizprocListener::onTaskExpiredSoon($taskId, $taskData);
return '';
}