- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/discountcouponsmanagerbase.php
- Класс: BitrixSaleDiscountCouponsManagerBase
- Вызов: DiscountCouponsManagerBase::load
static function load()
{
if (self::$useMode != self::MODE_ORDER)
return;
self::$checkActivity = false;
$couponsList = array();
$registry = Registry::getInstance(static::getRegistryType());
/** @var OrderDiscountBase $storageClassName */
$storageClassName = $registry->getOrderDiscountClassName();
$couponIterator = $storageClassName::getOrderCouponIterator([
'select' => [
'*',
'MODULE_ID' => 'ORDER_DISCOUNT.MODULE_ID',
'DISCOUNT_ID' => 'ORDER_DISCOUNT.DISCOUNT_ID',
'DISCOUNT_NAME' => 'ORDER_DISCOUNT.NAME'
],
'filter' => ['=ORDER_ID' => self::$orderId],
'order' => ['ID' => 'ASC']
]);
while ($coupon = $couponIterator->fetch())
{
$couponData = $coupon['DATA'];
$couponData['COUPON'] = $coupon['COUPON'];
$couponData['STATUS'] = self::STATUS_ENTERED;
$couponData['CHECK_CODE'] = self::COUPON_CHECK_OK;
$couponData['MODULE'] = $coupon['MODULE_ID'];
$couponData['MODULE_ID'] = $coupon['MODULE_ID'];
$couponData['ID'] = $coupon['COUPON_ID'];
$couponData['DISCOUNT_ID'] = $coupon['DISCOUNT_ID'];
$couponData['DISCOUNT_NAME'] = (string)$coupon['DISCOUNT_NAME'];
$couponData['DISCOUNT_ACTIVE'] = 'Y';
$couponData['TYPE'] = $coupon['TYPE'];
$couponData['ACTIVE'] = 'Y';
$couponData['SAVED'] = 'Y';
foreach (self::$timeFields as $fieldName)
{
if (isset($couponData[$fieldName]))
$couponData[$fieldName] = MainTypeDateTime::createFromTimestamp($couponData[$fieldName]);
}
unset($fieldName);
if (empty($couponData['USER_INFO']) && $couponData['MODE'] == self::COUPON_MODE_FULL)
{
$couponData['USER_INFO'] = array(
'USER_ID' => 0,
'MAX_USE' => 0,
'USE_COUNT' => 0,
'ACTIVE_FROM' => null,
'ACTIVE_TO' => null
);
}
if (!empty($couponData['USER_INFO']))
{
foreach (self::$timeFields as $fieldName)
{
if (isset($couponData['USER_INFO'][$fieldName]))
$couponData['USER_INFO'][$fieldName] = MainTypeDateTime::createFromTimestamp($couponData['USER_INFO'][$fieldName]);
}
unset($fieldName);
foreach ($couponData['USER_INFO'] as $fieldName => $fieldValue)
$couponData[$fieldName] = $fieldValue;
}
$couponsList[$couponData['COUPON']] = $couponData;
}
unset($coupon, $couponIterator);
if (!empty($couponsList))
self::setCoupons($couponsList, false);
self::$checkActivity = true;
}