- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Service/EventHistory.php
- Класс: Bitrix\Crm\Service\EventHistory
- Вызов: EventHistory::add
protected function add(int $eventType, $eventData, Context $context = null): Result
{
$result = new Result();
if (is_array($eventData))
{
foreach ($eventData as $eventDataNested)
{
$localResult = $this->add($eventType, $eventDataNested, $context);
if (!$localResult->isSuccess())
{
$result->addErrors($localResult->getErrors());
}
}
return $result;
}
$eventDataArray = $eventData->toArray();
$this->sendEvent('OnBeforeCrmAddEvent', $eventDataArray);
$eventTableRecord = $this->createEventTableRecord($eventType, $context);
/** @noinspection PhpParamsInspection */
$eventTableResult = $this->saveRecord($eventTableRecord, $eventDataArray);
if (!empty($eventTableResult->getErrors()))
{
$result->addErrors($eventTableResult->getErrors());
return $result;
}
$eventRelationsTableRecord = $this->createEventRelationsTableRecord($eventTableResult->getId(), $context);
/** @noinspection PhpParamsInspection */
$eventRelationsTableResult = $this->saveRecord($eventRelationsTableRecord, $eventDataArray);
if (!empty($eventRelationsTableResult->getErrors()))
{
$result->addErrors($eventRelationsTableResult->getErrors());
}
if ($result->isSuccess())
{
$this->sendEvent('OnAfterCrmAddEvent', [$eventTableResult->getId(), $eventDataArray]);
}
return $result;
}