Класс discountRule и его дочерние классы (модуль emarket)
Содержание
Класс discountRule и его дочерние классы
Описание
Класс является абстрактным - базовый класс для правил скидок. Классами наследниками являются классы, представляющие типы правил:
- На определенные товары
 - На временной промежуток
 - На сумму покупок пользователя
 - На группу пользователей
 - На пользователей
 - На связанные товары
 - На сумму заказа
 
Исходный код класса находится в файле classes\modules\emarket\classes\discount\discountRule.php
Методы
create()
Метод create() создает объект правила скидки нужного типа(класса)
Параметры:
discount $discount:
объект представляющий собой скидку
umiObject $ruleTypeObject:
объект представляющий тип правила
Результат: объект правило скидки нужного типа
get()
Метод get() получает объект скидки
Параметры:
int $modObjectId:
идентификатор объекта модификатора скидки
discount $discount:
объект представляющий собой скидку
Результат: объект правило скидки нужного типа
getList()
Метод getList() получает список доступных правил скидки
Параметры:
int $discountTypeId=false:
идентификатор типа скидки
Результат:array список правил
Интерфейсы
Здесь также описаны два интерфейса:
- orderDiscountRule, в котором описан метод validateOrder()
 - itemDiscountRule, в котором описан validateItem()
 
Дочерние классы
Стандартно у класса discountRule имеются следующие дочерние классы:
- usersDiscountRule
 - userGroupsDiscountRule
 - relatedItemsDiscountRule
 - orderPriceDiscountRule
 - itemsDiscountRule
 - dateRangeDiscountRule
 - allOrdersPricesDiscountRule
 
Каждый из дочерних классов реализует либо оба вышеуказанных интерфейса, либо один из них:
| 
 Интерфейсы/классы  | 
 usersDiscountRule  | 
 userGroupsDiscountRule  | 
 relatedItemsDiscountRule  | 
 orderPriceDiscountRule  | 
 itemsDiscountRule  | 
 dateRangeDiscountRule  | 
 allOrdersPricesDiscountRule  | 
| 
 orderDiscountRule  | 
 +  | 
 +  | 
 -  | 
 +  | 
 -  | 
 +  | 
 +  | 
| 
 itemDiscountRule  | 
 +  | 
 +  | 
 +  | 
 -  | 
 +  | 
 +  | 
 +  | 
В дочерних классах могут быть определены, соответственно - validateOrder(),validateItem(), оба или один из них. Также, в некоторых классах имеется метод validate()
| 
 Методы/классы  | 
 usersDiscountRule  | 
 userGroupsDiscountRule  | 
 relatedItemsDiscountRule  | 
 orderPriceDiscountRule  | 
 itemsDiscountRule  | 
 dateRangeDiscountRule  | 
 allOrdersPricesDiscountRule  | 
| 
 validateItem()  | 
 +  | 
 +  | 
 +  | 
 -  | 
 +  | 
 +  | 
 +  | 
| 
 validateOrder()  | 
 +  | 
 +  | 
 -  | 
 +  | 
 -  | 
 +  | 
 +  | 
| 
 validate()  | 
 +  | 
 +  | 
 -  | 
 -  | 
 -  | 
 +  | 
 -  | 
validate()
Метод validate() проверяет применимо ли данное правило к заказу или товару в каталоге. Он используется в тех классах, в которых описаны оба метода - validateOrder() и validateItem(), и просто вызывается внутри них
Параметры:
отсутсвтвуют
Результат: boolean true|false
validateOrder()
Метод validateOrder() проверяет применимо ли данное правило к заказу.
Параметры:
order $order:
объект представляющий заказ
Результат: boolean true|false
validateItem()
Метод validateItem() проверяет применимо ли данное правило к товару в каталоге.
Параметры:
iUmiHierarchyElement $element:
страница товара в каталоге
Результат: boolean true|false
Дополнительно
Другие статьи по классам emarket:
- Класс customer модуля emarket
 - Класс order модуля emarket
 - Класс orderItem модуля emarket
 - Класс optionedOrderItem модуля emarket
 - Класс delivery модуля emarket
 - Класс discount модуля emarket
 - Дочерние классы класса delivery модуля emarket
 - Класс discountModificator и его дочерние классы (модуль emarket)
 - Дочерние классы класса discount модуля emarket
 - Класс payment модуля emarket
 - Класс emarketTop модуля emarket
 - Класс currencyUpdater модуля emarket