Класс discountRule и его дочерние классы (модуль emarket) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показано 19 промежуточных версий 1 участника)
Строка 71: Строка 71:
  
  
Каждый из дочерних классов реализует либо оба вышеуказанных интерфейса, либо один из них
+
Каждый из дочерних классов реализует либо оба вышеуказанных интерфейса, либо один из них:
  
 +
<table border=1>
 +
<tr>
 +
<td>
 +
Интерфейсы/классы
 +
</td>
 +
<td>
 +
usersDiscountRule
 +
</td>
 +
<td>
 +
userGroupsDiscountRule
 +
</td>
 +
<td>
 +
relatedItemsDiscountRule
 +
</td>
 +
<td>
 +
orderPriceDiscountRule
 +
</td>
 +
<td>
 +
itemsDiscountRule
 +
</td>
 +
<td>
 +
dateRangeDiscountRule
 +
</td>
 +
<td>
 +
allOrdersPricesDiscountRule
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>
 +
orderDiscountRule
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>
 +
itemDiscountRule
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
</tr>
 +
</table>
  
=== recalcPrice()===
+
В дочерних классах могут быть определены, соответственно -  validateOrder(),validateItem(), оба или один из них.
 +
Также, в некоторых классах имеется метод validate()
  
 +
<table border=1>
 +
<tr>
 +
<td>
 +
Методы/классы
 +
</td>
 +
<td>
 +
usersDiscountRule
 +
</td>
 +
<td>
 +
userGroupsDiscountRule
 +
</td>
 +
<td>
 +
relatedItemsDiscountRule
 +
</td>
 +
<td>
 +
orderPriceDiscountRule
 +
</td>
 +
<td>
 +
itemsDiscountRule
 +
</td>
 +
<td>
 +
dateRangeDiscountRule
 +
</td>
 +
<td>
 +
allOrdersPricesDiscountRule
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>
 +
validateItem()
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>
 +
validateOrder()
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>
 +
validate()
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
<td align="center">
 +
+
 +
</td>
 +
<td align="center">
 +
-
 +
</td>
 +
</tr>
 +
</table>
  
Метод <span style="font-weight:bold">recalcPrice()</span> пересчитывает цену с учетом модификатора.
+
=== validate()===
 +
 
 +
 
 +
Метод <span style="font-weight:bold">validate()</span> проверяет применимо ли данное правило к заказу или товару в каталоге.
 +
Он используется в тех классах, в которых описаны оба метода - validateOrder() и validateItem(), и просто вызывается внутри них
 +
 
 +
<p>'''Параметры:''' </p>
 +
отсутсвтвуют
 +
<p>'''Результат:''' boolean true|false</p>
 +
 
 +
 
 +
=== validateOrder()===
 +
 
 +
 
 +
Метод <span style="font-weight:bold">validateOrder()</span> проверяет применимо ли данное правило к заказу.
 +
 
 +
<p>'''Параметры:''' </p>
 +
order<span style="font-weight:bold"> $order</span>:
 +
объект представляющий заказ
 +
<p>'''Результат:''' boolean true|false</p>
 +
 
 +
 
 +
=== validateItem()===
 +
 
 +
 
 +
Метод <span style="font-weight:bold">validateItem()</span> проверяет применимо ли данное правило к товару в каталоге.
  
 
<p>'''Параметры:''' </p>  
 
<p>'''Параметры:''' </p>  
  int<span style="font-weight:bold"> $originalPrice</span>:
+
  iUmiHierarchyElement<span style="font-weight:bold"> $element</span>:
цена на товар, заказ без учета скидки
+
страница товара в каталоге
<p>'''Результат:''' int цена с учетом скидки</p>
+
<p>'''Результат:''' boolean true|false</p>
 +
 
 +
 
 +
== Дополнительно ==
 +
 
 +
Другие статьи по классам emarket:
 +
 
 +
<ul>
 +
<li>[[Класс customer модуля emarket]]</li>
 +
<li>[[Класс order модуля emarket]]</li>
 +
<li>[[Класс orderItem модуля emarket]]</li>
 +
<li>[[Класс optionedOrderItem модуля emarket]]</li>
 +
<li>[[Класс delivery модуля emarket]]</li>
 +
<li>[[Класс discount модуля emarket]]</li>
 +
<li>[[Дочерние классы класса delivery модуля emarket]]</li>
 +
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li>
 +
<li>[[Дочерние классы класса discount модуля emarket]]</li>
 +
<li>[[Класс payment модуля emarket ]]</li>
 +
<li>[[Класс emarketTop модуля emarket ]]</li>
 +
<li>[[Класс currencyUpdater модуля emarket ]]</li>
 +
</ul>
 +
[[category:Модуль Интернет магазин]]

Текущая версия на 13:31, 16 июля 2018

Класс 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: