static function sendExpiredSoonMessageForAccomplices(array $taskData, array $parameters): void
{
$createdBy = (int)$taskData['CREATED_BY'];
$responsibleId = (int)$taskData['RESPONSIBLE_ID'];
$accomplices = array_map('intval', $taskData['ACCOMPLICES']->export());
if (empty($accomplices))
{
return;
}
$title = self::formatTaskName($taskData['ID'], $taskData['TITLE'], $taskData['GROUP_ID']);
if ($index = array_search($responsibleId, $accomplices, true))
{
unset($accomplices[$index]);
}
if (in_array($createdBy, $accomplices, true))
{
/** @var BitrixTasksUtilTypeDateTime $deadline */
$deadline = clone $taskData['DEADLINE'];
$deadline->addSecond(CTimeZone::GetOffset($createdBy, true));
$formattedDeadline = $deadline->format(UI::getHumanTimeFormat($deadline->getTimestamp()));
$messageKey = 'TASKS_TASK_EXPIRED_SOON_RESPONSIBLE_SAME_CREATOR_MESSAGE';
$messages = [
'INSTANT' => str_replace(
['#TASK_TITLE#', '#DEADLINE_TIME#'],
[$title, $formattedDeadline],
self::getGenderMessage(0, $messageKey)
),
'EMAIL' => str_replace(
['#TASK_TITLE#', '#DEADLINE_TIME#'],
[strip_tags($title), $formattedDeadline],
self::getGenderMessage(0, $messageKey)
),
'PUSH' => self::makePushMessage($messageKey, $createdBy, $taskData),
];
self::sendMessageEx($taskData['ID'], $createdBy, [$createdBy], $messages, $parameters);
unset($accomplices[array_search($createdBy, $accomplices, true)]);
}
foreach ($accomplices as $userId)
{
/** @var BitrixTasksUtilTypeDateTime $deadline */
$deadline = clone $taskData['DEADLINE'];
$deadline->addSecond(CTimeZone::GetOffset($userId, true));
$formattedDeadline = $deadline->format(UI::getHumanTimeFormat($deadline->getTimestamp()));
$messageKey = 'TASKS_TASK_EXPIRED_SOON_RESPONSIBLE_MESSAGE';
$messages = [
'INSTANT' => str_replace(
['#TASK_TITLE#', '#DEADLINE_TIME#'],
[$title, $formattedDeadline],
self::getGenderMessage(0, $messageKey)
),
'EMAIL' => str_replace(
['#TASK_TITLE#', '#DEADLINE_TIME#'],
[strip_tags($title), $formattedDeadline],
self::getGenderMessage(0, $messageKey)
),
'PUSH' => self::makePushMessage($messageKey, $createdBy, $taskData),
];
self::sendMessageEx($taskData['ID'], $createdBy, [$userId], $messages, $parameters);
}
}