• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/integration/handler.php
  • Класс: BitrixSaleExchangeIntegrationHandler
  • Вызов: Handler::handlerCallbackOnSaleOrderSaved
public function handlerCallbackOnSaleOrderSaved(Event $event)
{
	/** @var Order $order */
	$order = $event->getParameters()['ENTITY'];

	if((new IntegrationConnectorManager())->isOn())
	{
		if($order->isNew())
		{
			$fields = new BitrixSaleInternalsFields(
				BitrixMainContext::getCurrent()
					->getRequest()
					->toArray());

			$placement = new IntegrationCRMPlacementPlacementDeal($fields->getValues());
			if($placement->getTypeHandler() == IntegrationHandlerType::ORDER_NEW)	//deal exists + new order
			{

				if($fields->get('entityTypeId') == IntegrationCRMEntityType::DEAL
					&& $fields->get('entityId')>0)
				{
					$params[$order->getId()] = [
						'OWNER_TYPE_ID'=>IntegrationCRMEntityType::DEAL,
						'OWNER_ID'=>$fields->get('entityId')
					];

					(new IntegrationServiceScenariosDealUpdate())
						->update($fields->get('entityId'), $params);

					(new static())
						->syncB24($order);
				}
			}
			else	//new deal + new order
			{
				/*
				(new IntegrationServiceScenariosDealAdd())
					->adds([$order->getId()=>$order->getFieldValues()]);

				(new static())
					->syncB24($order);
				*/
			}
		}
	}

}