• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/zoom/activity.php
  • Класс: Bitrix\Crm\Integration\Zoom\Activity
  • Вызов: Activity::saveActivity
public function saveActivity($fields, $userId, $siteId): Result
{
	$result = new Result();

	$bindings = array();
	if ($fields['OWNER_ENTITY_ID'] > 0 && $fields['OWNER_ENTITY_TYPE'] != '')
	{
		$ownerTypeId = \CCrmOwnerType::ResolveID($fields['OWNER_ENTITY_TYPE']);
		$ownerId = (int)$fields['OWNER_ENTITY_ID'];
	}

	$bindings[] = array(
		'OWNER_TYPE_ID' => $ownerTypeId,
		'OWNER_ID' => $ownerId
	);

	$activityFields = array(
		'TYPE_ID' => \CCrmActivityType::Provider,
		'PROVIDER_ID' => Zoom::PROVIDER_ID,
		'ASSOCIATED_ENTITY_ID' => $fields['ASSOCIATED_ENTITY_ID'],
		'PROVIDER_TYPE_ID' => $fields['PROVIDER_TYPE_ID'],
		'DIRECTION' => $fields['DIRECTION'],
		'START_TIME' => $fields['START_TIME'],
		'END_TIME' => $fields['END_TIME'],
		'DURATION' => $fields['DURATION'],
		'COMPLETED' => $fields['COMPLETED'],
		'PRIORITY' => \CCrmActivityPriority::Medium,
		'SUBJECT' => $fields['SUBJECT'],
		'LOCATION' => '',
		'NOTIFY_TYPE' => \CCrmActivityNotifyType::None,
		'BINDINGS' => $bindings,
		'SETTINGS' => array(),
		'AUTHOR_ID' => $userId,
		'RESPONSIBLE_ID' => $userId,
	);

	$activityId = \CCrmActivity::Add($activityFields, true, true, array('REGISTER_SONET_EVENT' => true));

	if ($activityId == 0)
	{
		return $result->addError(new Main\Error(Loc::getMessage('CRM_ACTIVITY_CREATE_ERROR') . ': ' . \CCrmActivity::GetLastErrorMessage()));
	}

	$communicationsType = \Bitrix\Crm\Activity\Provider\Zoom::getCommunicationType();
	$communications = $this->getCrmEntityCommunications($ownerTypeId, $ownerId, $communicationsType);
	$communications = array_slice($communications, 0, 1);
	\CCrmActivity::SaveCommunications($activityId, $communications, $activityFields, true, false);

	$result->setData(array(
		'ACTIVITY_ID' => $activityId
	));

	return $result;
}