• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/product.php
  • Класс: BitrixCatalogProductTable
  • Вызов: ProductTable::calculateAvailable
static function calculateAvailable($fields)
{
	if (empty($fields) || !is_array($fields))
	{
		return self::STATUS_NO;
	}

	if (isset($fields['QUANTITY']) && isset($fields['QUANTITY_TRACE']) && isset($fields['CAN_BUY_ZERO']))
	{
		if (empty(self::$defaultProductSettings))
		{
			self::loadDefaultProductSettings();
		}
		if ($fields['QUANTITY_TRACE'] == self::STATUS_DEFAULT)
		{
			$fields['QUANTITY_TRACE'] = self::$defaultProductSettings['QUANTITY_TRACE'];
		}
		if ($fields['CAN_BUY_ZERO'] == self::STATUS_DEFAULT)
		{
			$fields['CAN_BUY_ZERO'] = self::$defaultProductSettings['CAN_BUY_ZERO'];
		}

		return (
			(
				(float)$fields['QUANTITY'] <= 0
				&& $fields['QUANTITY_TRACE'] == self::STATUS_YES
				&& $fields['CAN_BUY_ZERO'] == self::STATUS_NO
			)
			? self::STATUS_NO
			: self::STATUS_YES
		);
	}

	return self::STATUS_NO;
}