• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm.php
  • Класс: BitrixImOpenLinesCrm
  • Вызов: Crm::sendCrmImMessages
public function sendCrmImMessages(): Result
{
	$result = new Result;
	$fields = $this->getFields();
	$session = $fields->getSession();

	if (!empty($session))
	{
		$messageManager = MessagesCrm::init($session->getData('CHAT_ID'), $session->getData('OPERATOR_ID'));

		if (!empty($this->registeredEntites))
		{
			$entities = [];
			foreach ($this->registeredEntites as $entity)
			{
				if ($entity['SAVE'] == 'Y')
				{
					$entities[$entity['ENTITY_TYPE']][] = $entity['ENTITY_ID'];
				}
			}
			if (!empty($entities))
			{
				$messageManager->sendMessageAboutAddEntity($entities);
			}
		}

		if (!empty($this->updateEntites))
		{
			$updatedEntities = [];
			$createdEntities = [];
			foreach ($this->updateEntites as $entity)
			{
				if ($entity['SAVE'] == 'Y')
				{
					$updatedEntities[$entity['ENTITY_TYPE']][] = $entity['ENTITY_ID'];
				}
				elseif($entity['ADD'] == 'Y')
				{
					$createdEntities[$entity['ENTITY_TYPE']][] = $entity['ENTITY_ID'];
				}
			}

			if(!empty($createdEntities))
			{
				$messageManager->sendMessageAboutUpdateEntity($createdEntities);
			}

			if (!empty($updatedEntities))
			{
				$messageManager->sendMessageAboutExtendEntity($updatedEntities);
			}
		}
	}
	else
	{
		$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NO_SESSION'), self::ERROR_IMOL_NO_SESSION, __METHOD__));
	}

	return $result;
}