• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/archive/process/orderarchiveitem.php
  • Класс: BitrixSaleArchiveProcessOrderArchiveItem
  • Вызов: OrderArchiveItem::callEventOnBeforeOrderArchived
private function callEventOnBeforeOrderArchived(SaleOrder $order)
{
	$result = new MainResult();

	$eventManager = MainEventManager::getInstance();
	if ($eventsList = $eventManager->findEventHandlers('sale', SaleEventActions::EVENT_ON_ORDER_BEFORE_ARCHIVED))
	{
		/** @var MainEvent $event */
		$event = new MainEvent('sale', SaleEventActions::EVENT_ON_ORDER_BEFORE_ARCHIVED, array(
			'ENTITY' => $order
		));
		$event->send();

		if ($event->getResults())
		{
			/** @var MainEventResult $eventResult */
			foreach($event->getResults() as $eventResult)
			{
				if($eventResult->getType() == MainEventResult::ERROR)
				{
					$errorMsg = new SaleResultError(MainLocalizationLoc::getMessage('SALE_EVENT_ON_BEFORE_ORDER_SAVED_ERROR'), 'SALE_EVENT_ON_BEFORE_ORDER_SAVED_ERROR');
					if ($eventResultData = $eventResult->getParameters())
					{
						if (isset($eventResultData) && $eventResultData instanceof SaleResultError)
						{
							/** @var ResultError $errorMsg */
							$errorMsg = $eventResultData;
						}
					}

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

	return $result;
}