GetList
Описание и параметры
С версии 15.5 класс считается устаревшим и строго не рекомендованным к использованию. Вместо него используйте методы класса \Bitrix\Sale\Discount.
CDBResult CSaleDiscount::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", . . . )Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются. Допустимыми являются следующие модификаторы:
Пример фильтра: array("!CURRENCY" => "USD")Этот фильтр означает "выбрать все записи, в которых значение в поле CURRENCY (валюта) не равно USD". Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет. |
arGroupBy | Массив полей, по которым группируются записи
скидок. Массив имеет вид:
array( "название_поля1", "группирующая_функция2" => "название_поля2", ... )В качестве "название_поляN" может стоять любое поле служб доставки. В качестве группирующей функции могут стоять:
Значение по умолчанию - false - означает, что результат группироваться не будет. |
arNavStartParams | Массив параметров выборки. Может содержать следующие ключи:
|
arSelectFields | Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение
"*", то будут возвращены все доступные поля. Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. |
Возвращаемые значения
Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:
Ключ | Описание |
---|---|
ID | Код скидки. |
LID | Код сайта, к которому привязана эта скидка. |
PRICE_FROM | Общая стоимость заказа, начиная с которой предоставляется эта скидка. |
PRICE_TO | Общая стоимость заказа, до достижения которой предоставляется эта скидка. |
CURRENCY | Валюта денежных полей в записи. |
DISCOUNT_VALUE | Величина скидки. |
DISCOUNT_TYPE | Тип величины скидки (P - величина задана в процентах, V - величина задана в абсолютной сумме). |
ACTIVE | Флаг (Y/N) активности скидки. |
SORT | Индекс сортировки (если по сумме заказа доступно несколько скидок, то берется первая по сортировке). |
USER_GROUPS | Перечень групп пользователей, на которые должна действовать скидка. |
Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.
Пример использования
<? // Выберем величину активной скидки для текущего сайта и стоимости // заказа $ORDER_PRICE (в базовой валюте этого сайта) $db_res = CSaleDiscount::GetList( array("SORT" => "ASC"), array( "LID" => SITE_ID, "ACTIVE" => "Y", ">=PRICE_TO" => $ORDER_PRICE, "<=PRICE_FROM" => $ORDER_PRICE ), false, false, array() ); if ($ar_res = $db_res->Fetch()) { echo "Наша скидка - "; if ($ar_res["DISCOUNT_TYPE"] == "P") { echo $ar_res["DISCOUNT_VALUE"]."%"; } else { echo CurrencyFormat($ar_res["DISCOUNT_VALUE"], $ar_res["CURRENCY"]); } } ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024