Bitrix-D7  20.0.0
Класс OrderDiscountManager
Граф наследования:OrderDiscountManager:
OrderDiscount OrderDiscountBase

Открытые статические члены

static loadResultFromDatabase ($order, $extendedMode=false, $basketList=false, $basketData=array())
 Load applied discount list. Подробнее...
 
static prepareDiscountDescription ($type, $data)
 Prepare discount description. Подробнее...
 
static formatDiscountDescription ($data)
 Format discount description. Подробнее...
 
static formatDescription ($data)
 Return string discount description. Подробнее...
 
static formatArrayDescription ($data)
 Format discount result. Подробнее...
 
static createSimpleDescription ($newPrice, $oldPrice, $currency)
 Create simple description for unknown discount. Подробнее...
 
- Открытые статические члены унаследованные от OrderDiscount
static deleteByOrder ($order)
 Delete all data by order. Подробнее...
 
static getRegistryType ()
 Return parent entity type. Подробнее...
 
static getOrderCouponIterator (array $parameters)
 Order coupons getList. Подробнее...
 
- Открытые статические члены унаследованные от OrderDiscountBase
static init ()
 Initial discount manager. Подробнее...
 
static setManagerConfig ($config)
 Set manager params. Подробнее...
 
static getManagerConfig ()
 Return current manager params. Подробнее...
 
static saveDiscount (array $discount, $extResult=false)
 Convert and save discount. Подробнее...
 
static saveCoupon ($coupon)
 Save coupon. Подробнее...
 
static calculateApplyCoupons ($module, $discount, $basket, $params)
 Check apply discount. Подробнее...
 
static roundPrice (array $basketItem, array $roundData=array())
 Round basket item price. Подробнее...
 
static roundBasket (array $basket, array $roundData=array(), array $orderData=array())
 Round basket prices. Подробнее...
 
static checkDiscountProvider ($module)
 Check existing discount provider for module. Подробнее...
 
static getEditUrl (array $discount)
 Return url for edit sale discount. Подробнее...
 
static clearCache ()
 Clear discount cache. Подробнее...
 
static loadResultFromDb ($order, array $basketList=[], array $basketData=[])
 Load discount result for order. Подробнее...
 
static loadStoredDataFromDb ($order, $storageType, array $additionalFilter=array())
 Load stored data collection for order. Подробнее...
 
static loadOrderStoredDataFromDb ($order, $storageType)
 Load order stored data row. Подробнее...
 
static saveOrderStoredData ($order, $storageType, array $data, array $options=array())
 Save order stored data. Подробнее...
 
static saveStoredDataBlock ($order, $storageType, array $block, array $options=array())
 Save stored data for entities. Подробнее...
 
static addResultBlock ($order, array $block)
 
static updateResultBlock ($order, array $block)
 
static addRoundBlock ($order, array $block)
 
static updateRoundBlock ($order, array $block)
 

Поля данных

const DESCR_TYPE_SIMPLE = Discount\Formatter::TYPE_SIMPLE
 
const DESCR_TYPE_VALUE = Discount\Formatter::TYPE_VALUE
 
const DESCR_TYPE_LIMIT_VALUE = Discount\Formatter::TYPE_LIMIT_VALUE
 
const DESCR_TYPE_FIXED = Discount\Formatter::TYPE_FIXED
 
const DESCR_TYPE_MAX_BOUND = Discount\Formatter::TYPE_MAX_BOUND
 
const DESCR_VALUE_TYPE_PERCENT = Discount\Formatter::VALUE_TYPE_PERCENT
 
const DESCR_VALUE_TYPE_CURRENCY = Discount\Formatter::VALUE_TYPE_CURRENCY
 
const DESCR_VALUE_TYPE_SUMM = Discount\Formatter::VALUE_TYPE_SUMM
 
const DESCR_VALUE_TYPE_SUMM_BASKET = Discount\Formatter::VALUE_TYPE_SUMM_BASKET
 
const DESCR_VALUE_ACTION_DISCOUNT = Discount\Formatter::VALUE_ACTION_DISCOUNT
 
const DESCR_VALUE_ACTION_EXTRA = Discount\Formatter::VALUE_ACTION_EXTRA
 
const DESCR_VALUE_ACTION_ACCUMULATE = Discount\Formatter::VALUE_ACTION_CUMULATIVE
 
const DESCR_VALUE_ACTION_CUMULATIVE = Discount\Formatter::VALUE_ACTION_CUMULATIVE
 
const DESCR_LIMIT_MAX = Discount\Formatter::LIMIT_MAX
 
const DESCR_LIMIT_MIN = Discount\Formatter::LIMIT_MIN
 
- Поля данных унаследованные от OrderDiscountBase
const EVENT_ON_BUILD_DISCOUNT_PROVIDERS = 'onBuildDiscountProviders'
 
const ERROR_ID = 'BX_SALE_ORDER_DISCOUNT'
 
const PROVIDER_ACTION_PREPARE_DISCOUNT = 'prepareData'
 
const PROVIDER_ACTION_GET_URL = 'getEditUrl'
 
const PROVIDER_ACTION_APPLY_COUPON = 'calculateApplyCoupons'
 
const PROVIDER_ACTION_ROUND_ITEM_PRICE = 'roundPrice'
 
const PROVIDER_ACTION_ROUND_BASKET_PRICES = 'roundBasket'
 
const STORAGE_TYPE_DISCOUNT_ACTION_DATA = 'ACTION_DATA'
 
const STORAGE_TYPE_ORDER_CONFIG = 'ORDER_CONFIG'
 
const STORAGE_TYPE_ROUND_CONFIG = 'ROUND_CONFIG'
 
const STORAGE_TYPE_BASKET_ITEM = 'BASKET_ITEM'
 

Защищенные статические члены

static getBasketCodeByRule (array $rule, $translate, $basketList)
 Return basket code for discount rule. Подробнее...
 
- Защищенные статические члены унаследованные от OrderDiscount
static validateCoupon (array $fields)
 Validate coupon. Подробнее...
 
static getDiscountIterator (array $parameters)
 Discount getList. Подробнее...
 
static isValidCouponTypeInternal ($type)
 Check coupon type. Подробнее...
 
static getOrderDiscountIterator (array $parameters)
 Order discount getList. Подробнее...
 
static addOrderDiscountInternal (array $fields)
 Low-level method add new discount for order. Подробнее...
 
static checkRequiredOrderDiscountFields (array $fields)
 Returns the list of missing discount fields. Подробнее...
 
static normalizeOrderDiscountFieldsInternal (array $rawFields)
 Clear raw order discount data. Подробнее...
 
static calculateOrderDiscountHashInternal (array $fields)
 Calculate order discount hash. Подробнее...
 
static addOrderCouponInternal (array $fields)
 Low-level method add new coupon for order. Подробнее...
 
static getOrderDiscountModuleIterator (array $parameters)
 
static saveOrderDiscountModulesInternal ($orderDiscountId, array $modules)
 Low-level method save order discount modules. Подробнее...
 
static getResultEntityInternal ($entity)
 Converts the discount result entity identifier to the database table format. Подробнее...
 
static getResultEntityFromInternal ($entity)
 Converts the discount result entity identifier from the database table format. Подробнее...
 
static getResultIterator (array $parameters)
 
static getResultDescriptionIterator (array $parameters)
 
static getResultTableNameInternal ()
 Low-level method returns result table name. Подробнее...
 
static getResultDescriptionTableNameInternal ()
 Low-level method returns result description table name. Подробнее...
 
static checkResultTableWhiteList (array $fields)
 Low-level method returns only those fields that are in the result table. Подробнее...
 
static checkResultDescriptionTableWhiteList (array $fields)
 Low-level method returns only those fields that are in the result description table. Подробнее...
 
static addResultInternal (array $fields)
 Low-level method add new result discount for order. Подробнее...
 
static addResultDescriptionInternal (array $fields)
 Low-level method add new result description for order. Подробнее...
 
static updateResultInternal ($id, array $fields)
 Low-level method update result discount for order. Подробнее...
 
static updateResultDescriptionInternal ($id, array $fields)
 Low-level method update result description for order. Подробнее...
 
static getRoundEntityInternal ($entity)
 Converts the rounded entity identifier to the database table format. Подробнее...
 
static getRoundEntityFromInternal ($entity)
 Converts the rounded entity identifier from the database table format. Подробнее...
 
static getRoundResultIterator (array $parameters)
 
static addRoundResultInternal (array $fields)
 Low-level method add new round result for order. Подробнее...
 
static updateRoundResultInternal ($id, array $fields)
 Low-level method update round result for order. Подробнее...
 
static getRoundTableNameInternal ()
 Low-level method returns round result table name. Подробнее...
 
static getStorageTypeInternal ($storageType)
 Low-level method for convert storage types to internal format. Подробнее...
 
static getStoredDataIterator (array $parameters)
 
static addStoredDataInternal (array $fields)
 Low-level method add stored data for order. Подробнее...
 
static updateStoredDataInternal ($id, array $fields)
 Low-level method update stored data for order. Подробнее...
 
static getStoredDataTableInternal ()
 Low-level method returns the order stored data table name. Подробнее...
 
- Защищенные статические члены унаследованные от OrderDiscountBase
static loadOrderDiscountFromDb (array $discountIds, array $discountOrder)
 Load applied discount list. Подробнее...
 
static getDiscountClassName ()
 
static isNativeModule ($module)
 Returns true, if discount from module sale. Подробнее...
 
static getDiscountProviderActions ()
 Return valid provider action list. Подробнее...
 
static initDiscountProviders ()
 Initialization discount providers. Подробнее...
 
static executeDiscountProvider (array $provider, array $data)
 Execute discount provider. Подробнее...
 
static prepareData ($discount)
 Prepare sale discount before saving. Подробнее...
 
static fillAbsentDiscountFields (array $fields)
 Get absent discount fields from database. Подробнее...
 
static normalizeDiscountFields (array $rawFields)
 Clear raw data and calculate discount hash. Подробнее...
 
static searchDiscount ($hash)
 Returns exists discount for discount hash (cached). Подробнее...
 
static addCoupon (array $fields)
 Add new coupon for order. Подробнее...
 
static addDiscount (array $fields, array $rawFields)
 Add new unique order discount. Подробнее...
 
static loadModulesFromDb (array $discountIds)
 Load discount modules. Подробнее...
 
static prepareDiscountModules (array $discount)
 
static transferEntityCodeFromInternal (array $row, array $transferList)
 Returns entity code for discount and round results. Подробнее...
 
static formatBasketRuleResult (array $rule)
 Format rule result for basket discount. Подробнее...
 
static formatSaleRuleResult (array $rule)
 Format rule result for sale discount. Подробнее...
 
static formatSaleItemRuleResult (array $rule)
 Format rule item result for sale discount. Подробнее...
 
static fillRuleProductFields (array &$result, array $basketData, $index)
 Fill product fields in rule result. Подробнее...
 
static loadCouponsFromDb ($order)
 Load coupons for order. Подробнее...
 
static addResultRow (array $fields)
 Low-level method add new result discount for order. Подробнее...
 
static updateResultRow ($id, array $fields)
 Low-level method update result discount for order. Подробнее...
 

Дополнительные унаследованные члены

- Статические защищенные данные унаследованные от OrderDiscountBase
static $init = false
 
static $errors = array()
 

Подробное описание

См. определение в файле orderdiscountmanager.php строка 16

Методы

◆ createSimpleDescription()

static createSimpleDescription (   $newPrice,
  $oldPrice,
  $currency 
)
static

Create simple description for unknown discount.

Уст.:
См. также
Discount\Result\CompatibleFormat::createResultDescription
Аргументы
float$newPriceNew price.
float$oldPriceOld price.
string$currencyCurrency.
Возвращает
array

См. определение в файле orderdiscountmanager.php строка 234

235  {
236  return Discount\Result\CompatibleFormat::createResultDescription($newPrice, $oldPrice, $currency);
237  }

◆ formatArrayDescription()

static formatArrayDescription (   $data)
static

Format discount result.

Уст.:
См. также
Discount\Formatter::formatList
Аргументы
array$dataDescription data.
Возвращает
array|bool

См. определение в файле orderdiscountmanager.php строка 210

211  {
212  $result = array();
213  if (!empty($data) && is_array($data))
214  {
215  $description = Discount\Formatter::formatList($data);
216  if ($description !== null)
217  $result = $description;
218  }
219 
220  return (empty($result) ? false: $result);
221  }

◆ formatDescription()

static formatDescription (   $data)
static

Return string discount description.

Уст.:
См. также
Discount\Formatter::formatRow
Аргументы
array$dataDescription.
Возвращает
bool|string

См. определение в файле orderdiscountmanager.php строка 189

190  {
191  $result = false;
192  if (!is_array($data))
193  $data = array();
194  $description = Discount\Formatter::formatRow($data);
195  if ($description !== null)
196  $result = $description;
197 
198  return $result;
199  }

◆ formatDiscountDescription()

static formatDiscountDescription (   $data)
static

Format discount description.

Уст.:
См. также
Discount\Formatter::formatRow
Аргументы
array$dataDiscount description.
Возвращает
Result

См. определение в файле orderdiscountmanager.php строка 160

161  {
162  $result = new Result();
163 
164  if (!is_array($data))
165  $data = array();
166 
167  $description = Discount\Formatter::formatRow($data);
168  if ($description !== null)
169  {
170  $result->setData(array('DESCRIPTION' => $description));
171  }
172  else
173  {
174  self::transferFormatterErrors($result);
175  }
176 
177  return $result;
178  }

◆ getBasketCodeByRule()

static getBasketCodeByRule ( array  $rule,
  $translate,
  $basketList 
)
staticprotected

Return basket code for discount rule.

Уст.:
Аргументы
array$ruleDiscount rule.
bool$translateUse entity id or basket id.
array | bool$basketListConvert table basket id to basket code.
Возвращает
string

См. определение в файле orderdiscountmanager.php строка 248

249  {
250  $translate = ($translate === true);
251  $index = '';
252  if ($translate)
253  {
254  if (is_array($basketList) && isset($basketList[$rule['ENTITY_ID']]))
255  $index = $basketList[$rule['ENTITY_ID']];
256  }
257  else
258  {
259  $index = $rule['ENTITY_ID'];
260  }
261  return $index;
262  }

◆ loadResultFromDatabase()

static loadResultFromDatabase (   $order,
  $extendedMode = false,
  $basketList = false,
  $basketData = array() 
)
static

Load applied discount list.

Уст.:
См. также
OrderDiscount::loadResultFromDb
Аргументы
int$orderOrder id.
bool$extendedModeGet full information by discount - unused.
array | bool$basketListCorrespondence between basket ids and basket codes.
array$basketDataBasket data.
Возвращает
Result

См. определение в файле orderdiscountmanager.php строка 63

64  {
65  if (!is_array($basketList))
66  $basketList = [];
67  if (!is_array($basketData))
68  $basketData = [];
69  $result = parent::loadResultFromDb($order, $basketList, $basketData);
70 
71  /* for compatibility only */
72  $data = $result->getData();
73 
74  $data['BASKET'] = [];
75  $data['ORDER'] = [];
76  $data['DISCOUNT_MODULES'] = [];
77  $data['DATA'] = [];
78  if (isset($data['APPLY_BLOCKS'][0]))
79  {
80  $data['BASKET'] = $data['APPLY_BLOCKS'][0]['BASKET'];
81  $data['ORDER'] = $data['APPLY_BLOCKS'][0]['ORDER'];
82  }
83  if (!empty($data['DISCOUNT_LIST']))
84  {
85  foreach (array_keys($data['DISCOUNT_LIST']) as $index)
86  {
87  if (empty($data['DISCOUNT_LIST'][$index]['MODULES']))
88  continue;
89  $data['DISCOUNT_MODULES'][$index] = $data['DISCOUNT_LIST'][$index]['MODULES'];
90  }
91  unset($index);
92  }
93  $data['DATA']['STORED_ACTION_DATA'] = $data['STORED_ACTION_DATA'];
94  unset($data['STORED_ACTION_DATA']);
95 
96  $result->setData($data);
97 
98  return $result;
99  }

◆ prepareDiscountDescription()

static prepareDiscountDescription (   $type,
  $data 
)
static

Prepare discount description.

Уст.:
См. также
Discount\Formatter::prepareRow
Аргументы
int$typeDescription type.
array | string$dataDescription data.
Возвращает
Result

См. определение в файле orderdiscountmanager.php строка 111

112  {
113  $result = new Result();
114 
115  $config = static::getManagerConfig();
116 
117  $type = (int)$type;
118  switch ($type)
119  {
121  if (!is_array($data))
122  $data = array();
123  if (!isset($data['LIMIT_UNIT']) && isset($config['CURRENCY']))
124  $data['LIMIT_UNIT'] = $config['CURRENCY'];
125  if (!isset($data['VALUE_UNIT']) && isset($config['CURRENCY']))
126  $data['VALUE_UNIT'] = $config['CURRENCY'];
127  break;
131  if (!is_array($data))
132  $data = array();
133  if (!isset($data['VALUE_UNIT']) && isset($config['CURRENCY']))
134  $data['VALUE_UNIT'] = $config['CURRENCY'];
135  break;
136  }
137 
138  $description = Discount\Formatter::prepareRow($type, $data);
139  if ($description !== null)
140  {
141  $result->setData($description);
142  }
143  else
144  {
145  self::transferFormatterErrors($result);
146  }
147 
148  return $result;
149  }

Поля

◆ DESCR_LIMIT_MAX

const DESCR_LIMIT_MAX = Discount\Formatter::LIMIT_MAX
Уст.:

См. определение в файле orderdiscountmanager.php строка 48

◆ DESCR_LIMIT_MIN

const DESCR_LIMIT_MIN = Discount\Formatter::LIMIT_MIN
Уст.:

См. определение в файле orderdiscountmanager.php строка 50

◆ DESCR_TYPE_FIXED

const DESCR_TYPE_FIXED = Discount\Formatter::TYPE_FIXED
Уст.:

См. определение в файле orderdiscountmanager.php строка 25

◆ DESCR_TYPE_LIMIT_VALUE

const DESCR_TYPE_LIMIT_VALUE = Discount\Formatter::TYPE_LIMIT_VALUE
Уст.:

См. определение в файле orderdiscountmanager.php строка 23

◆ DESCR_TYPE_MAX_BOUND

const DESCR_TYPE_MAX_BOUND = Discount\Formatter::TYPE_MAX_BOUND
Уст.:

См. определение в файле orderdiscountmanager.php строка 27

◆ DESCR_TYPE_SIMPLE

const DESCR_TYPE_SIMPLE = Discount\Formatter::TYPE_SIMPLE
Уст.:

См. определение в файле orderdiscountmanager.php строка 19

◆ DESCR_TYPE_VALUE

const DESCR_TYPE_VALUE = Discount\Formatter::TYPE_VALUE
Уст.:

См. определение в файле orderdiscountmanager.php строка 21

◆ DESCR_VALUE_ACTION_ACCUMULATE

const DESCR_VALUE_ACTION_ACCUMULATE = Discount\Formatter::VALUE_ACTION_CUMULATIVE
Уст.:

См. определение в файле orderdiscountmanager.php строка 43

◆ DESCR_VALUE_ACTION_CUMULATIVE

const DESCR_VALUE_ACTION_CUMULATIVE = Discount\Formatter::VALUE_ACTION_CUMULATIVE
Уст.:

См. определение в файле orderdiscountmanager.php строка 45

◆ DESCR_VALUE_ACTION_DISCOUNT

const DESCR_VALUE_ACTION_DISCOUNT = Discount\Formatter::VALUE_ACTION_DISCOUNT
Уст.:

См. определение в файле orderdiscountmanager.php строка 39

◆ DESCR_VALUE_ACTION_EXTRA

const DESCR_VALUE_ACTION_EXTRA = Discount\Formatter::VALUE_ACTION_EXTRA
Уст.:

См. определение в файле orderdiscountmanager.php строка 41

◆ DESCR_VALUE_TYPE_CURRENCY

const DESCR_VALUE_TYPE_CURRENCY = Discount\Formatter::VALUE_TYPE_CURRENCY
Уст.:

См. определение в файле orderdiscountmanager.php строка 32

◆ DESCR_VALUE_TYPE_PERCENT

const DESCR_VALUE_TYPE_PERCENT = Discount\Formatter::VALUE_TYPE_PERCENT
Уст.:

См. определение в файле orderdiscountmanager.php строка 30

◆ DESCR_VALUE_TYPE_SUMM

const DESCR_VALUE_TYPE_SUMM = Discount\Formatter::VALUE_TYPE_SUMM
Уст.:

См. определение в файле orderdiscountmanager.php строка 34

◆ DESCR_VALUE_TYPE_SUMM_BASKET

const DESCR_VALUE_TYPE_SUMM_BASKET = Discount\Formatter::VALUE_TYPE_SUMM_BASKET
Уст.:

См. определение в файле orderdiscountmanager.php строка 36


Объявления и описания членов класса находятся в файле:
Bitrix\Sale\Discount\Formatter\formatList
static formatList(array $actionList)
Format discount result.
Definition: sale/lib/discount/formatter.php:347
Bitrix\Sale\Discount\Formatter\prepareRow
static prepareRow($type, $data)
Prepare action or result description.
Definition: sale/lib/discount/formatter.php:38
Bitrix\Sale\Discount\Formatter\TYPE_MAX_BOUND
const TYPE_MAX_BOUND
Definition: sale/lib/discount/formatter.php:14
Bitrix\Sale\Discount\Formatter\TYPE_VALUE
const TYPE_VALUE
Definition: sale/lib/discount/formatter.php:11
Bitrix\Sale\Discount\Formatter\TYPE_FIXED
const TYPE_FIXED
Definition: sale/lib/discount/formatter.php:13
Bitrix\Sale\Discount\Formatter\formatRow
static formatRow(array $action)
Returns format action or result description.
Definition: sale/lib/discount/formatter.php:230
Bitrix\Sale\Discount\Formatter\TYPE_LIMIT_VALUE
const TYPE_LIMIT_VALUE
Definition: sale/lib/discount/formatter.php:12
Bitrix\Sale\Discount\Result\CompatibleFormat\createResultDescription
static createResultDescription($newPrice, $oldPrice, $currency)
Create simple description for unknown discount.
Definition: compatibleformat.php:19