• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_rest.php
  • Класс: CVoxImplantRestService
  • Вызов: CVoxImplantRestService::statisticGet
static function statisticGet($arParams, $start, $server)
{
	$permissions = SecurityPermissions::createWithCurrentUser();
	if (!$permissions->canPerform(SecurityPermissions::ENTITY_CALL_DETAIL, SecurityPermissions::ACTION_VIEW))
	{
		throw new BitrixRestAccessException();
	}

	$arParams = array_change_key_case($arParams, CASE_UPPER);

	$sort = $arParams['SORT'];
	$order = $arParams['ORDER'];
	$arFilter = self::checkStatisticFilter($arParams['FILTER']);

	$allowedUserIds = SecurityHelper::getAllowedUserIds(
		$permissions->getUserId(),
		$permissions->getPermission(SecurityPermissions::ENTITY_CALL_DETAIL, SecurityPermissions::ACTION_VIEW)
	);
	if (is_array($allowedUserIds))
	{
		$arFilter['PORTAL_USER_ID'] = $allowedUserIds;
	}

	$totalCount = $start >= 0 ? BitrixVoximplantStatisticTable::getCount($arFilter) : 0;

	$arNavParams = self::getNavData($start, true);

	$arSort = [];
	if ($sort && $order)
	{
		$arSort[$sort] = $order;
	}

	$result = [];
	$dbRes = BitrixVoximplantStatisticTable::getList([
		'order' => $arSort,
		'filter' => $arFilter,
		'limit' => $arNavParams['limit'],
		'offset' => $arNavParams['offset'],
	]);

	while ($arData = $dbRes->fetch())
	{
		$arData['RECORD_FILE_ID'] = (int)$arData['CALL_WEBDAV_ID'] ?: null;
		unset($arData['ACCOUNT_ID']);
		unset($arData['APPLICATION_ID']);
		unset($arData['APPLICATION_NAME']);
		unset($arData['CALL_LOG']);
		unset($arData['CALL_RECORD_ID']);
		unset($arData['CALL_WEBDAV_ID']);
		unset($arData['CALL_STATUS']);
		unset($arData['CALL_DIRECTION']);
		$arData['CALL_TYPE'] = $arData['INCOMING'];
		unset($arData['INCOMING']);
		$arData['CALL_START_DATE'] = CRestUtil::ConvertDateTime($arData['CALL_START_DATE']);
		$result[] = $arData;
	}

	return self::setNavData(
		$result,
		[
			"count" => $totalCount,
			"offset" => $arNavParams['offset']
		]
	);
}