• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/calendar/calendarsharingtimeline.php
  • Класс: Bitrix\Crm\Integration\Calendar\CalendarSharingTimeline
  • Вызов: CalendarSharingTimeline::syncBadge
static function syncBadge(EventData $eventData)
{
	$badgeType = null;

	switch ($eventData->getEventType())
	{
		case EventData::SHARING_ON_NOT_VIEWED:
			$badgeType = CalendarSharingStatus::SLOTS_NOT_VIEWED;
			break;
		case EventData::SHARING_ON_VIEWED:
			$badgeType = CalendarSharingStatus::SLOTS_VIEWED;
			break;
		case EventData::SHARING_ON_EVENT_CONFIRMED:
			$badgeType = CalendarSharingStatus::EVENT_CONFIRMED;
			break;
	}

	$badge = Container::getInstance()->getBadge(
		CalendarSharingStatus::CALENDAR_SHARING_STATUS_TYPE,
		$badgeType
	);

	$itemIdentifier = new ItemIdentifier($eventData->getEntityTypeId(), $eventData->getEntityId());
	$sourceIdentifier = new SourceIdentifier(
		SourceIdentifier::CALENDAR_SHARING_TYPE_PROVIDER,
		0,
		$eventData->getLinkId()
	);

	$badge->upsert($itemIdentifier, $sourceIdentifier);

	Monitor::getInstance()->onBadgesSync($itemIdentifier);
}