• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountcouponsmanagerbase.php
  • Класс: BitrixSaleDiscountCouponsManagerBase
  • Вызов: DiscountCouponsManagerBase::checkFullData
static function checkFullData(&$data, $mode, $checkCode, $currentTimestamp)
{
	$mode = ((int)$mode != self::COUPON_MODE_SIMPLE ? self::COUPON_MODE_FULL : self::COUPON_MODE_SIMPLE);

	if (self::$checkActivity)
	{
		if ($data['ACTIVE'] != 'Y')
			$checkCode |= self::COUPON_CHECK_NO_ACTIVE;
		if ($data['DISCOUNT_ACTIVE'] != 'Y')
			$checkCode |= self::COUPON_CHECK_NO_ACTIVE_DISCOUNT;
		if ($data['DISCOUNT_ACTIVE_FROM'] instanceof MainTypeDateTime && $data['DISCOUNT_ACTIVE_FROM']->getTimestamp() > $currentTimestamp)
			$checkCode |= self::COUPON_CHECK_RANGE_ACTIVE_FROM_DISCOUNT;
		if ($data['DISCOUNT_ACTIVE_TO'] instanceof MainTypeDateTime && $data['DISCOUNT_ACTIVE_TO']->getTimestamp() < $currentTimestamp)
			$checkCode |= self::COUPON_CHECK_RANGE_ACTIVE_TO_DISCOUNT;
	}

	if ($mode == self::COUPON_MODE_FULL)
	{
		if (self::$checkActivity)
		{
			if ($data['ACTIVE_FROM'] instanceof MainTypeDateTime && $data['ACTIVE_FROM']->getTimestamp() > $currentTimestamp)
				$checkCode |= self::COUPON_CHECK_RANGE_ACTIVE_FROM;
			if ($data['ACTIVE_TO'] instanceof MainTypeDateTime && $data['ACTIVE_TO']->getTimestamp() < $currentTimestamp)
				$checkCode |= self::COUPON_CHECK_RANGE_ACTIVE_TO;
		}
		if (!isset($data['USER_ID']))
		{
			$data['USER_ID'] = 0;
			$checkCode |= self::COUPON_CHECK_CORRUPT_DATA;
		}
		else
		{
			$data['USER_ID'] = (int)$data['USER_ID'];
			if ($data['USER_ID'] > 0 && $data['USER_ID'] != self::$userId)
				$checkCode |= self::COUPON_CHECK_BAD_USER_ID;
		}
		if (!isset($data['MAX_USE']))
		{
			$data['MAX_USE'] = 0;
			$checkCode |= self::COUPON_CHECK_CORRUPT_DATA;
		}
		else
		{
			$data['MAX_USE'] = (int)$data['MAX_USE'];
		}
		if (!isset($data['USE_COUNT']))
		{
			$data['USE_COUNT'] = 0;
			$checkCode |= self::COUPON_CHECK_CORRUPT_DATA;
		}
		else
		{
			if (self::$checkActivity)
			{
				$data['USE_COUNT'] = (int)$data['USE_COUNT'];
				if ($data['MAX_USE'] > 0 && $data['USE_COUNT'] >= $data['MAX_USE'])
					$checkCode |= self::COUPON_CHECK_ALREADY_MAX_USED;
			}
		}
	}

	return $checkCode;
}