• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_crm_helper.php
  • Класс: CVoxImplantCrmHelper
  • Вызов: CVoxImplantCrmHelper::addMissedCall
static function addMissedCall(array $params)
{
	if(!BitrixMainLoader::includeModule('crm'))
		return false;

	$config = CVoxImplantConfig::GetConfigBySearchId($params['CONFIG_SEARCH_ID']);
	if(!$config)
		return false;

	$callId = uniqid('call.', true);
	$entityFields = CCrmSipHelper::getEntityFields(
		CCrmOwnerType::ResolveID($params['CRM_ENTITY_TYPE']),
		$params['CRM_ENTITY_ID']
	);
	if(!is_array($entityFields))
		return false;

	$responsibleUserId = $entityFields['ASSIGNED_BY_ID'];
	$statisticsRecord = array(
		'INCOMING' => $params['INCOMING'] ?: CVoxImplantMain::CALL_INCOMING,
		'PORTAL_USER_ID' => $responsibleUserId,
		'PORTAL_NUMBER' => $params['CONFIG_SEARCH_ID'],
		'PHONE_NUMBER' => $params['PHONE_NUMBER'],
		'CALL_ID' => $callId,
		'CALL_DURATION' => 0,
		'CALL_START_DATE' => new BitrixMainTypeDateTime(),
		'CALL_FAILED_CODE' => '304',
		'CALL_FAILED_REASON' => 'Missed call',
		'CRM_ENTITY_TYPE' => $params['CRM_ENTITY_TYPE'],
		'CRM_ENTITY_ID' => $params['CRM_ENTITY_ID']
	);

	$insertResult = VIStatisticTable::add($statisticsRecord);
	if(!$insertResult->isSuccess())
		return false;

	$statisticsRecord['ID'] =  $insertResult->getId();
	if($config['CRM'] == 'Y')
	{
		$activityId = static::AddCall($statisticsRecord);

		if($activityId > 0)
		{
			VIStatisticTable::update($statisticsRecord['ID'], array(
				'CRM_ACTIVITY_ID' => $activityId
			));
		}

		$chatMessage = CVoxImplantHistory::GetMessageForChat($statisticsRecord, false);
		if($chatMessage != '')
		{
			CVoxImplantHistory::SendMessageToChat($statisticsRecord["PORTAL_USER_ID"], $statisticsRecord["PHONE_NUMBER"], $statisticsRecord["INCOMING"], $chatMessage);
		}
	}
}