- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/pseudoactivity/waitentry.php
- Класс: Bitrix\Crm\Pseudoactivity\WaitEntry
- Вызов: WaitEntry::update
static function update($ID, array $fields, array $params = null)
{
if(empty($fields))
{
return new Main\Entity\UpdateResult();
}
$previousFields = self::getByID($ID);
if(!is_array($previousFields))
{
$result = new Main\Entity\UpdateResult();
$result->addError(new Main\Error("Not found") );
return $result;
}
$result = WaitTable::update($ID, $fields);
if($result->isSuccess())
{
$timelineParams = array(
'CURRENT_FIELDS' => self::getByID($ID),
'PREVIOUS_FIELDS' => $previousFields
);
if(is_array($params) && isset($params['USER_ID']) && $params['USER_ID'] > 0)
{
$timelineParams['USER_ID'] = $params['USER_ID'];
}
\Bitrix\Crm\Timeline\WaitController::getInstance()->onModify($ID, $timelineParams);
$ownerTypeID = isset($fields['OWNER_TYPE_ID']) ? (int)$fields['OWNER_TYPE_ID'] : 0;
if($ownerTypeID <= 0)
{
$ownerTypeID = isset($previousFields['OWNER_TYPE_ID']) ? (int)$previousFields['OWNER_TYPE_ID'] : 0;
}
$ownerID = isset($fields['OWNER_ID']) ? (int)$fields['OWNER_ID'] : 0;
if($ownerID <= 0)
{
$ownerID = isset($previousFields['OWNER_ID']) ? (int)$previousFields['OWNER_ID'] : 0;
}
$counterCodes = EntityCounterManager::prepareCodes(
$ownerTypeID,
EntityCounterType::getAll(true),
array('ENTITY_ID' => $ownerID, 'EXTENDED_MODE' => true)
);
if(!empty($counterCodes))
{
EntityCounterManager::reset($counterCodes, array());
}
}
return $result;
}