• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountcouponsmanagerbase.php
  • Класс: BitrixSaleDiscountCouponsManagerBase
  • Вызов: DiscountCouponsManagerBase::add
static function add($coupon)
{
	if (!self::$init)
		self::init();
	if (self::$useMode == self::MODE_SYSTEM || !self::isSuccess())
		return false;

	$coupon = trim((string)$coupon);
	if ($coupon === '')
		return false;
	if (!isset(self::$coupons[$coupon]))
	{
		$couponData = self::getData($coupon);
		if (!isset(self::$coupons[$couponData['COUPON']]))
		{
			$couponData['SORT'] = self::$couponIndex;
			self::createApplyFields($couponData);
			self::$coupons[$couponData['COUPON']] = $couponData;
			self::$couponIndex++;
			self::saveToStorage();
			$event = new MainEvent('sale', self::EVENT_ON_COUPON_ADD, $couponData);
			$event->send();
		}
		if (self::$coupons[$couponData['COUPON']]['MODE'] == self::COUPON_MODE_FULL)
			return (self::$coupons[$couponData['COUPON']]['STATUS'] != self::STATUS_NOT_FOUND);
		else
			return (
				self::$coupons[$couponData['COUPON']]['STATUS'] != self::STATUS_NOT_FOUND
				&& self::$coupons[$couponData['COUPON']]['STATUS'] != self::STATUS_FREEZE
			);
	}
	else
	{
		if (self::$coupons[$coupon]['MODE'] == self::COUPON_MODE_FULL)
			return (self::$coupons[$coupon]['STATUS'] != self::STATUS_NOT_FOUND);
		else
			return (
				self::$coupons[$coupon]['STATUS'] != self::STATUS_NOT_FOUND
				&& self::$coupons[$coupon]['STATUS'] != self::STATUS_FREEZE
			);
	}
}