• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountcouponsmanagerbase.php
  • Класс: BitrixSaleDiscountCouponsManagerBase
  • Вызов: DiscountCouponsManagerBase::initUseMode
static function initUseMode($mode = self::MODE_CLIENT, $params = array())
{
	$mode = (int)$mode;
	if (!is_array($params))
		$params = array();
	self::$checkActivity = true;
	self::$userId = null;
	self::$orderId = null;
	self::$allowedSave = false;
	self::$useOrderCoupons = true;

	self::$useMode = self::MODE_SYSTEM;
	switch ($mode)
	{
		case self::MODE_MANAGER:
			if (!isset($params['userId']) || (int)$params['userId'] < 0)
				self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_BAD_USER_ID');
			if (isset($params['orderId']))
				self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_ORDER_ID_EXIST');
			if (empty(self::$errors))
			{
				self::$userId = (int)$params['userId'];
				self::$orderId = null;
				self::$allowedSave = true;
				self::$useMode = self::MODE_MANAGER;
				if (isset($params['oldUserId']))
					self::migrateStorage($params['oldUserId']);
			}
			break;
		case self::MODE_ORDER:
			if (!isset($params['userId']) || (int)$params['userId'] < 0)
				self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_BAD_USER_ID');
			if (!isset($params['orderId']) || (int)$params['orderId'] <= 0)
				self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_ORDER_ID_ABSENT');
			if (empty(self::$errors))
			{
				self::$userId = (int)$params['userId'];
				self::$orderId = (int)$params['orderId'];
				self::$allowedSave = true;
				self::$useMode = self::MODE_ORDER;
				if (isset($params['oldUserId']))
					self::migrateStorage($params['oldUserId']);

			}
			break;
		case self::MODE_CLIENT:
			self::$useMode = self::MODE_CLIENT;
			if (isset($params['userId']) && (int)$params['userId'] >= 0)
				self::$userId = (int)$params['userId'];
			else
				self::initUserId();
			if (self::isSuccess())
				self::$allowedSave = true;
			break;
		case self::MODE_EXTERNAL:
			self::$useMode = self::MODE_EXTERNAL;
			self::$userId = (
			isset($params['userId']) && (int)$params['userId'] >= 0
				? (int)$params['userId']
				: CSaleUser::GetAnonymousUserID()
			);
			break;
		case self::MODE_SYSTEM:
			break;
		default:
			self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_BAD_MODE');
			break;
	}
}