Обновлено 26.12.2024
Вызывается до «сборки» объекта компании перед отправкой его в Амо. Позволяет подставить свою компанию, или отменить создание компании.
Rover\AmoCRM\Directory\Entity\Profile — объект профиля интеграции.array — массив дополнительных сущностей, с которыми была запрошена компания по апи amoCRM.Rover\AmoCRM\Directory\Entity\Event — событие интеграции, в котором была создана сделка.Не создавать компанию в зависимости от каких-либо условий
use Bitrix\Main\Event;
use Bitrix\Main\EventManager;
use Bitrix\Main\Loader;
use Bitrix\Main\EventResult;
use Rover\AmoCRM\Event\PostEvent;
if (Loader::includeModule('rover.amocrm')) {
    EventManager::getInstance()->addEventHandler(
        'rover.amocrm',
        'onBeforeBuildCompanies',
        ["AmoEventHandler", "onBeforeBuildCompaniesHandler"]
    );
    /**
     * Class FixAspro
     *
     * @author Pavel Shulaev (https://rover-it.me)
     */
    class AmoEventHandler
    {
        public static function onBeforeBuildCompaniesHandler(Event $event)
        {
            /** @var PostEvent $amoEvent */
            $amoEvent = $event->getParameter(2); // параметеры нумеруются с 0.
            // фильтруем почтовое событие
            if (false === $amoEvent instanceof PostEvent) {
                return;
            }
            // ид нужного почтового события
            if ($amoEvent->getSourceId() != 95) {
                return;
            }
            $postEventData = \Bitrix\Main\Mail\Internal\EventTable::getRow([
                'filter' => ['=ID' => $amoEvent->getEntityId()]
            ]);
            // не создаём компанию если стоимость доставки менее 500
            if ($postEventData['C_FIELDS']['DELIVERY_PRICE'] < 500) {
                return new EventResult(EventResult::ERROR, $event->getParameters());
            }
        }
    }
}