- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/call.php
- Класс: Bitrix\Crm\Activity\Provider\Call
- Вызов: Call::getUncompletedActivityIdList
static function getUncompletedActivityIdList(int $activityId, int $options = 0): array
{
$bindings = CCrmActivity::GetBindings($activityId);
if (!is_array($bindings))
{
return [];
}
if (empty($bindings))
{
return [];
}
// fetch not completed CALL activities
$dbResult = CCrmActivity::GetList(
[],
[
'TYPE_ID' => CCrmActivityType::Call,
'PROVIDER_ID' => static::getId(),
'=PROVIDER_TYPE_ID' => static::ACTIVITY_PROVIDER_TYPE_CALL,
'=CHECK_PERMISSIONS' => 'N',
'=COMPLETED' => 'N',
'BINDINGS' => $bindings,
],
false,
false,
['ID', 'SETTINGS']
);
$missedOnly = $options & self::UNCOMPLETED_ACTIVITY_MISSED;
$incomingOnly = $options & self::UNCOMPLETED_ACTIVITY_INCOMING;
$result = [];
while ($arResult = $dbResult->Fetch())
{
if ($missedOnly)
{
$isMissedCall = isset($arResult['SETTINGS']['MISSED_CALL'])
&& $arResult['SETTINGS']['MISSED_CALL'];
if ($isMissedCall)
{
$result[] = (int)$arResult["ID"];
}
}
else
{
// all call activities excluding last created call activity
if ($activityId !== (int)$arResult["ID"])
{
$result[] = (int)$arResult["ID"];
}
}
if ($incomingOnly)
{
$result = array_filter(
$result,
fn($activityId): bool => IncomingChannel::getInstance()->isIncomingChannel($activityId)
);
}
}
return array_values(array_unique($result));
}