- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/discount/migration/orderdiscountmigrator.php
- Класс: BitrixSaleDiscountMigrationOrderDiscountMigrator
- Вызов: OrderDiscountMigrator::checkMigrateCoupon
static function checkMigrateCoupon($coupon)
{
if (self::$catalogIncluded === null)
self::$catalogIncluded = MainLoader::includeModule('catalog');
if (!self::$catalogIncluded)
return false;
static $catalogCouponTypes = null;
if ($catalogCouponTypes === null)
$catalogCouponTypes = array(
CatalogDiscountCouponTable::TYPE_ONE_ROW => SaleInternalsDiscountCouponTable::TYPE_BASKET_ROW,
CatalogDiscountCouponTable::TYPE_ONE_ORDER => SaleInternalsDiscountCouponTable::TYPE_ONE_ORDER,
CatalogDiscountCouponTable::TYPE_NO_LIMIT => SaleInternalsDiscountCouponTable::TYPE_MULTI_ORDER
);
if (!isset(self::$migrateCouponsCache[$coupon]))
{
self::$migrateCouponsCache[$coupon] = false;
$couponIterator = CatalogDiscountCouponTable::getList(array(
'select' => array('COUPON_ID' => 'ID', 'COUPON', 'TYPE', 'DISCOUNT_ID', 'DISCOUNT_NAME' => 'DISCOUNT.NAME'),
'filter' => array('=COUPON' => $coupon)
));
$existCoupon = $couponIterator->fetch();
unset($couponIterator);
if (!empty($existCoupon))
{
$existCoupon['TYPE'] = (
isset($catalogCouponTypes[$existCoupon['TYPE']])
? $catalogCouponTypes[$existCoupon['TYPE']]
: SaleInternalsDiscountCouponTable::TYPE_ARCHIVED
);
$existCoupon['DATA'] = array(
'MODE' => SaleDiscountCouponsManager::COUPON_MODE_SIMPLE,
'MODULE' => 'catalog',
'DISCOUNT_ID' => 0,
'TYPE' => SaleInternalsDiscountCouponTable::TYPE_ARCHIVED,
'USER_INFO' => array(),
);
self::$migrateCouponsCache[$coupon] = $existCoupon;
}
else
{
self::$migrateCouponsCache[$coupon] = self::createEmptyCoupon($coupon);
}
unset($existCoupon);
}
return true;
}