- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/pseudoactivity/waitentry.php
- Класс: Bitrix\Crm\Pseudoactivity\WaitEntry
- Вызов: WaitEntry::add
static function add(array $fields)
{
$ownerTypeID = isset($fields['OWNER_TYPE_ID']) ? (int)$fields['OWNER_TYPE_ID'] : 0;
$ownerID = isset($fields['OWNER_ID']) ? (int)$fields['OWNER_ID'] : 0;
/*
if(self::checkScheduledActivities($ownerTypeID, $ownerID))
{
$result = new Main\Entity\AddResult();
$result->addError(
new Main\Error(Loc::getMessage('CRM_WAIT_SCHEDULE_NOT_EMPTY_ERROR'))
);
return $result;
}
*/
$fields['CREATED'] = new DateTime();
if(!isset($fields['COMPLETED']))
{
$fields['COMPLETED'] = 'N';
}
$result = WaitTable::add($fields);
if(!$result->isSuccess())
{
return 0;
}
$ID = $result->getId();
$fields['ID'] = $ID;
\Bitrix\Crm\Timeline\WaitController::getInstance()->onCreate($ID, array('FIELDS' => $fields));
if($fields['COMPLETED'] === 'N')
{
self::completeByOwner($ownerTypeID, $ownerID, array('SKIP_RECENT' => true));
}
$counterCodes = EntityCounterManager::prepareCodes(
$ownerTypeID,
EntityCounterType::getAll(true),
array('ENTITY_ID' => $ownerID, 'EXTENDED_MODE' => true)
);
if(!empty($counterCodes))
{
EntityCounterManager::reset($counterCodes, array());
}
if(!\Bitrix\Crm\Agent\Activity\WaitAgent::isActive())
{
\Bitrix\Crm\Agent\Activity\WaitAgent::activate();
}
return $result;
}