- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/notification.php
- Класс: Bitrix\Crm\Activity\Provider\Notification
- Вызов: Notification::syncBadges
static function syncBadges(int $activityId, array $activityFields, array $bindings): void
{
$messageFields = NotificationsManager::getMessageByInfoId(
$activityFields['ASSOCIATED_ENTITY_ID'],
['needHistory' => false]
)['MESSAGE'];
if (is_null($messageFields))
{
return;
}
$statusId = isset($messageFields['STATUS']) ? (string)$messageFields['STATUS'] : null;
if (is_null($statusId))
{
return;
}
if (in_array($statusId, [MessageStatus::ERROR, MessageStatus::UNDELIVERED, MessageStatus::FAILED], true))
{
static::bindBadge(
$activityId,
Badge\Type\SmsStatus::SENDING_NOTIFICATION_ERROR_VALUE,
$bindings
);
}
else if (in_array($statusId, [MessageStatus::DELIVERED, MessageStatus::READ], true))
{
static::unBindBadge($bindings);
}
}