- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/timeline/markentry.php
- Класс: Bitrix\Crm\Timeline\MarkEntry
- Вызов: MarkEntry::create
static function create(array $params)
{
$entityTypeId = self::fetchEntityTypeId($params);
$entityId = self::fetchEntityId($params);
$markTypeId = isset($params['MARK_TYPE_ID']) ? (int)$params['MARK_TYPE_ID'] : 0;
if ($markTypeId <= 0)
{
throw new Main\ArgumentException('Mark Type ID must be greater than zero.', 'markTypeID');
}
[$authorId, $created, $settings, $bindings] = self::fetchParams($params);
$result = TimelineTable::add([
'TYPE_ID' => TimelineType::MARK,
'TYPE_CATEGORY_ID' => $markTypeId,
'CREATED' => new DateTime(),
'AUTHOR_ID' => $authorId,
'SETTINGS' => $settings,
'ASSOCIATED_ENTITY_TYPE_ID' => $entityTypeId,
'ASSOCIATED_ENTITY_CLASS_NAME' => $params['ENTITY_CLASS_NAME'] ?? '',
'ASSOCIATED_ENTITY_ID' => $entityId
]);
if (!$result->isSuccess())
{
return 0;
}
$createdId = $result->getId();
if (empty($bindings))
{
$bindings[] = array('ENTITY_TYPE_ID' => $entityTypeId, 'ENTITY_ID' => $entityId);
}
self::registerBindings($createdId, $bindings);
if ($entityTypeId === \CCrmOwnerType::Activity)
{
self::buildSearchContent($createdId);
}
return $createdId;
}