• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountbase.php
  • Класс: BitrixSaleDiscountBase
  • Вызов: DiscountBase::getBasketTables
protected function getBasketTables()
{
	$result = new Result;

	$this->forwardBasketTable = array();
	$this->reverseBasketTable = array();

	if (!$this->isBasketNotEmpty())
		return $result;

	$basket = $this->getBasket();
	/** @var BasketItem $basketItem */
	foreach ($basket as $basketItem)
	{
		$code = $basketItem->getBasketCode();
		$id = $basketItem->getField('ID');
		$this->forwardBasketTable[$code] = $id;
		$this->reverseBasketTable[$id] = $code;
		unset($id, $code);

		if ($basketItem->isBundleParent())
		{
			$bundle = $basketItem->getBundleCollection();
			if (empty($bundle))
			{
				$result->addError(new MainEntityEntityError(
					Loc::getMessage('BX_SALE_DISCOUNT_ERR_BASKET_BUNDLE_EMPTY'),
					self::ERROR_ID
				));
				break;
			}
			/** @var BasketItem $bundleItem */
			foreach ($bundle as $bundleItem)
			{
				$code = $bundleItem->getBasketCode();
				$id = $bundleItem->getField('ID');
				$this->forwardBasketTable[$code] = $id;
				$this->reverseBasketTable[$id] = $code;
				unset($id, $code);
			}
			unset($bundle, $bundleItem);
		}
	}
	unset($basketItem, $basket);

	return $result;
}