Документация для разработчиков
Темная тема

GetList

Описание и параметры

CDBResult
CCatalogDiscount::GetList(
	array arOrder = array(),
	array arFilter = array(),
	array arGroupBy = false,
	array arNavStartParams = false,
	array arSelectFields = array()
);

Метод возвращает результат выборки записей скидок в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

ПараметрОписание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
	"название_поля1" => "направление_сортировки1",
	"название_поля2" => "направление_сортировки2",
	. . .
)
В качестве "название_поляN" может стоять любое поле скидки, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.). 

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
	"[модификатор1][оператор1]название_поля1" => "значение1",
	"[модификатор2][оператор2]название_поля2" => "значение2",
	. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле скидки.

Пример фильтра:
array("ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются скидки. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле скидки.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • SITE_ID - сайт;
  • ACTIVE - флаг активности;
  • NAME - название скидки;
  • COUPON - код купона;
  • USE_COUPONS - [Y/N] - есть купоны или нет, обновляется автоматически.
  • SORT - индекс сортировки;
  • MAX_DISCOUNT - максимальная величина скидки;
  • TIMESTAMP_X - дата последнего изменения записи;
  • VALUE_TYPE - тип скидки (P - в процентах, F - фиксированая величина);
  • VALUE - величина скидки;
  • CURRENCY - валюта;
  • RENEWAL - флаг "Скидка на продление";
  • ACTIVE_FROM - дата начала действия скидки;
  • ACTIVE_TO - дата окончания действия скидки;
  • PRODUCT_ID - код товара, на который дается скидка;
  • SECTION_ID - код группы товаров, на которую дается скидка;
  • GROUP_ID - код группы пользователей, на которую дается скидка;
  • CATALOG_GROUP_ID - код типа цен, на который дается скидка.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Примеры использования

<?
// Выберем все скидки для данного товара

$dbProductDiscounts = CCatalogDiscount::GetList(
	array("SORT" => "ASC"),
	array(
		"+PRODUCT_ID" => $PRODUCT_ID,
		"ACTIVE" => "Y",
		"!>ACTIVE_FROM" => $DB->FormatDate(date("Y-m-d H:i:s"), 
			"YYYY-MM-DD HH:MI:SS",
			CSite::GetDateFormat("FULL")),
		"!<ACTIVE_TO" => $DB->FormatDate(date("Y-m-d H:i:s"), 
			"YYYY-MM-DD HH:MI:SS", 
			CSite::GetDateFormat("FULL")),
		"COUPON" => ""
	),
	false,
	false,
	array(
		"ID", "SITE_ID", "ACTIVE", "ACTIVE_FROM", "ACTIVE_TO", 
		"RENEWAL", "NAME", "SORT", "MAX_DISCOUNT", "VALUE_TYPE", 
		"VALUE", "CURRENCY", "PRODUCT_ID"
	)
);
while ($arProductDiscounts = $dbProductDiscounts->Fetch())
{
	* * *
}
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024