- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/call.php
- Класс: Bitrix\Crm\Activity\Provider\Call
- Вызов: Call::syncBadges
static function syncBadges(int $activityId, array $activityFields, array $bindings): void { $badge = Container::getInstance()->getBadge( Badge\Type\CallStatus::CALL_STATUS_TYPE, Badge\Type\CallStatus::MISSED_CALL_VALUE, ); $sourceIdentifier = new Badge\SourceIdentifier( Badge\SourceIdentifier::CRM_OWNER_TYPE_PROVIDER, \CCrmOwnerType::Activity, $activityId, ); $isCompleted = isset($activityFields['COMPLETED']) && $activityFields['COMPLETED'] === 'Y'; if ($isCompleted) { foreach ($bindings as $singleBinding) { $itemIdentifier = new ItemIdentifier((int)$singleBinding['OWNER_TYPE_ID'], (int)$singleBinding['OWNER_ID']); $badge->unbind($itemIdentifier, $sourceIdentifier); } return; } $isMissed = isset($activityFields['SETTINGS']['MISSED_CALL']) && $activityFields['SETTINGS']['MISSED_CALL'] === true; if ($isMissed) { foreach ($bindings as $singleBinding) { $itemIdentifier = new ItemIdentifier((int)$singleBinding['OWNER_TYPE_ID'], (int)$singleBinding['OWNER_ID']); $badge->bind($itemIdentifier, $sourceIdentifier); } } else { foreach ($bindings as $singleBinding) { $itemIdentifier = new ItemIdentifier((int)$singleBinding['OWNER_TYPE_ID'], (int)$singleBinding['OWNER_ID']); $badge->unbind($itemIdentifier, $sourceIdentifier); } } }