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

	/** @var array $oldEntityValues */
	$oldEntityValues = $this->fields->getOriginalValues();

	/** @var MainEvent $event */
	$event = new MainEvent('sale', EventActions::EVENT_ON_BASKET_ITEM_BEFORE_SAVED, [
		'ENTITY' => $this,
		'IS_NEW' => $isNewEntity,
		'VALUES' => $oldEntityValues,
	]);
	$event->send();

	if ($event->getResults())
	{
		/** @var MainEventResult $eventResult */
		foreach($event->getResults() as $eventResult)
		{
			if($eventResult->getType() == MainEventResult::ERROR)
			{
				$errorMsg = new ResultError(
					LocalizationLoc::getMessage('SALE_EVENT_ON_BEFORE_BASKET_ITEM_SAVED'),
					'SALE_EVENT_ON_BEFORE_BASKET_ITEM_SAVED'
				);

				$eventResultData = $eventResult->getParameters();
				if ($eventResultData instanceof ResultError)
					$errorMsg = $eventResultData;

				$result->addError($errorMsg);
			}
		}
	}

	return $result;
}