- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/compatible/discountcompatibility.php
- Класс: BitrixSaleCompatibleDiscountCompatibility
- Вызов: DiscountCompatibility::getResult
static function getResult()
{
if (!self::$init || self::$useMode == self::MODE_SYSTEM)
return false;
if (self::$useMode == self::MODE_ORDER)
return array();
if (self::$useMode == self::MODE_DISABLED)
return array();
$result = array(
'CALCULATE' => array(
'USE_MODE' => self::$discountUseMode,
'NEW_ORDER' => self::$order === null,
),
'BASE_PRICE' => array(),
'DISCOUNT_LIST' => array(),
'COUPONS_LIST' => array(),
'DISCOUNT_RESULT' => array(),
'FORWARD_BASKET_TABLE' => array(),
'REVERSE_BASKET_TABLE' => array()
);
if (!empty(self::$basketBasePrice))
{
foreach (self::$basketBasePrice as $index => $price)
{
if (!isset(self::$basketCodes[$index]))
continue;
$result['BASE_PRICE'][self::$basketCodes[$index]] = $price;
}
unset($index, $price);
}
if (!empty(self::$discountsCache))
$result['DISCOUNT_LIST'] = self::$discountsCache;
if (!empty(self::$couponsCache))
$result['COUPONS_LIST'] = self::$couponsCache;
if (
!empty(self::$discountResult['BASKET'])
|| !empty(self::$discountResult['ORDER'])
|| !empty(self::$discountResult['BASKET_ROUND'])
)
{
$result['DISCOUNT_RESULT']['APPLY_BLOCKS'] = array(
0 => array(
'BASKET' => array(),
'BASKET_ROUND' => array(),
'ORDER' => array()
)
);
}
if (!empty(self::$discountResult['BASKET']))
{
foreach (self::$discountResult['BASKET'] as $index => $discountList)
{
if (!isset(self::$basketCodes[$index]))
continue;
$result['DISCOUNT_RESULT']['APPLY_BLOCKS'][0]['BASKET'][self::$basketCodes[$index]] = $discountList;
}
unset($index, $discountList);
}
if (!empty(self::$discountResult['BASKET_ROUND']))
{
foreach (self::$discountResult['BASKET_ROUND'] as $index => $roundData)
{
if (!isset(self::$basketCodes[$index]))
continue;
$result['DISCOUNT_RESULT']['APPLY_BLOCKS'][0]['BASKET_ROUND'][self::$basketCodes[$index]] = $roundData;
}
unset($index, $roundData);
}
if (!empty(self::$discountResult['ORDER']))
{
foreach (self::$discountResult['ORDER'] as $discountIndex => $discount)
{
if (!empty($discount['RESULT']['BASKET']))
{
$newBasket = array();
foreach ($discount['RESULT']['BASKET'] as $index => $basketItem)
{
if (!isset(self::$basketCodes[$index]))
continue;
$basketItem['BASKET_ID'] = self::$basketCodes[$index];
$newBasket[self::$basketCodes[$index]] = $basketItem;
}
unset($index, $basketItem);
$discount['RESULT']['BASKET'] = $newBasket;
}
$result['DISCOUNT_RESULT']['APPLY_BLOCKS'][0]['ORDER'][$discountIndex] = $discount;
}
unset($discountIndex, $discount);
}
if (!empty(self::$basketCodes))
{
foreach (self::$basketCodes as $code => $id)
{
$result['FORWARD_BASKET_TABLE'][$code] = $id;
$result['REVERSE_BASKET_TABLE'][$id] = $code;
}
unset($code, $id);
}
return $result;
}