- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/discount/actions.php
- Класс: BitrixSaleDiscountActions
- Вызов: Actions::applySimpleGift
static function applySimpleGift(array &$order, $filter)
{
static::increaseApplyCounter();
$actionDescription = array(
'ACTION_TYPE' => Formatter::TYPE_SIMPLE_GIFT
);
static::setActionDescription(self::RESULT_ENTITY_BASKET, $actionDescription);
if (!is_callable($filter))
return;
if (empty($order['BASKET_ITEMS']) || !is_array($order['BASKET_ITEMS']))
return;
static::disableBasketFilter();
$itemsCopy = $order['BASKET_ITEMS'];
MainTypeCollection::sortByColumn($itemsCopy, 'PRICE', null, null, true);
$filteredBasket = static::getBasketForApply(
$itemsCopy,
$filter,
array(
'GIFT_TITLE' => Loc::getMessage('BX_SALE_DISCOUNT_ACTIONS_SIMPLE_GIFT_DESCR')
)
);
unset($itemsCopy);
static::enableBasketFilter();
if (empty($filteredBasket))
return;
$applyBasket = array_filter($filteredBasket, 'BitrixSaleDiscountActions::filterBasketForAction');
unset($filteredBasket);
if (empty($applyBasket))
return;
foreach ($applyBasket as $basketCode => $basketRow)
{
self::fillDiscountPrice($basketRow, 0, $basketRow['PRICE']);
$order['BASKET_ITEMS'][$basketCode] = $basketRow;
$rowActionDescription = $actionDescription;
$rowActionDescription['BASKET_CODE'] = $basketCode;
static::setActionResult(self::RESULT_ENTITY_BASKET, $rowActionDescription);
unset($rowActionDescription);
}
unset($basketCode, $basketRow);
}