CCrmRequisiteRestProxy::innerGetList

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmRequisiteRestProxy
  4. innerGetList
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
  • Класс: \CCrmRequisiteRestProxy
  • Вызов: CCrmRequisiteRestProxy::innerGetList
protected function innerGetList($order, $filter, $select, $navigation, &$errors)
{
	$permissionOwner = false;

	if(!isset($filter['ENTITY_TYPE_ID']))
	{
		if(EntityRequisite::checkReadPermissionOwnerEntity())
		{
			$permissionOwner = true;
			//Required for prevent selection of the suspended entities (SuspendedContact, SuspendedCompany)
			$filter['@ENTITY_TYPE_ID'] = [CCrmOwnerType::Company, CCrmOwnerType::Contact];
		}
		else
		{
			if(EntityRequisite::checkReadPermissionOwnerEntity(CCrmOwnerType::Company))
			{
				$permissionOwner = true;
				$filter['ENTITY_TYPE_ID'] = CCrmOwnerType::Company;
			}
			elseif(EntityRequisite::checkReadPermissionOwnerEntity(CCrmOwnerType::Contact))
			{
				$permissionOwner = true;
				$filter['ENTITY_TYPE_ID'] = CCrmOwnerType::Contact;
			}
		}
	}
	else
	{
		$permissionOwner = EntityRequisite::checkReadPermissionOwnerEntity($filter['ENTITY_TYPE_ID']);
	}

	if($permissionOwner == false)
	{
		$errors[] = 'Access denied.';
		return false;
	}

	$entity = self::getEntity();

	$page = isset($navigation['iNumPage']) ? (int)$navigation['iNumPage'] : 1;
	$limit = isset($navigation['nPageSize']) ? (int)$navigation['nPageSize'] : CCrmRestService::LIST_LIMIT;
	$offset = $limit * $page;

	if(!is_array($select))
		$select = array();

	if(empty($select))
		$select = array_keys($this->getFieldsInfo());

	$result = $entity->getList(
			array(
					'order' => $order,
					'filter' => $filter,
					'select' => $select,
					'offset' => $offset,
					'count_total' => true
			)
	);

	$dbResult = new CDBResult($result);
	$dbResult->NavStart($limit, false, $page);

	return $dbResult;
}

Добавить комментарий