• Модуль: 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;
}