• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountcouponsmanagerbase.php
  • Класс: BitrixSaleDiscountCouponsManagerBase
  • Вызов: DiscountCouponsManagerBase::init
static function init($mode = self::MODE_CLIENT, $params = array(), $clearStorage = false)
{
	if (self::$init)
		return;
	self::$onlySaleDiscount = null;
	self::$couponTypes = InternalsDiscountCouponTable::getCouponTypes(true);
	self::$couponIndex = 0;
	self::clearErrors();
	self::initUseMode($mode, $params);
	self::initUseDiscount();
	if (!self::isSuccess())
		return;
	if (self::$useMode != self::MODE_SYSTEM)
	{
		$session = self::getSession();
		if (!$session)
		{
			return;
		}

		self::clear($clearStorage);
		$couponsList = array();
		switch (self::$useMode)
		{
			case self::MODE_CLIENT:
			case self::MODE_EXTERNAL:
				if (!empty($session[self::STORAGE_CLIENT_COUPONS]) && is_array($session[self::STORAGE_CLIENT_COUPONS]))
					$couponsList = $session[self::STORAGE_CLIENT_COUPONS];
				break;
			case self::MODE_MANAGER:
				if (!empty($session[self::STORAGE_MANAGER_COUPONS]) && !empty($session[self::STORAGE_MANAGER_COUPONS][self::$userId]) && is_array($session[self::STORAGE_MANAGER_COUPONS][self::$userId]))
					$couponsList = $session[self::STORAGE_MANAGER_COUPONS][self::$userId];
				break;
			case self::MODE_ORDER:
				self::load();
				if (!empty($session[self::STORAGE_MANAGER_COUPONS]) && !empty($session[self::STORAGE_MANAGER_COUPONS][self::$userId]) && is_array($session[self::STORAGE_MANAGER_COUPONS][self::$userId]))
					$couponsList = $session[self::STORAGE_MANAGER_COUPONS][self::$userId];
				break;
		}
		if (!empty($couponsList))
			self::setCoupons($couponsList);
		unset($couponsList);
		if (self::$useMode == self::MODE_ORDER)
			self::saveToStorage();
	}
	self::$init = true;
}