• Модуль: 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);
	}
}