- Модуль: 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;
}