- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/timeline/dealrecurringcontroller.php
- Класс: Bitrix\Crm\Timeline\DealRecurringController
- Вызов: DealRecurringController::onModify
public function onModify($ownerID, array $params)
{
if(!is_int($ownerID))
{
$ownerID = (int)$ownerID;
}
if($ownerID <= 0)
{
throw new Main\ArgumentException('Owner ID must be greater than zero.', 'ownerID');
}
$currentFields = isset($params['CURRENT_FIELDS']) && is_array($params['CURRENT_FIELDS'])
? $params['CURRENT_FIELDS'] : array();
$previousFields = isset($params['PREVIOUS_FIELDS']) && is_array($params['PREVIOUS_FIELDS'])
? $params['PREVIOUS_FIELDS'] : array();
$fieldsMap = $params['FIELDS_MAP'] ?? null;
if (is_array($fieldsMap))
{
$currentFields = EntityFieldsHelper::replaceFieldNamesByMap($currentFields, $fieldsMap);
$previousFields = EntityFieldsHelper::replaceFieldNamesByMap($previousFields, $fieldsMap);
}
if($params['FIELD_NAME'] <> '')
{
$fieldName = $params['FIELD_NAME'];
}
else
{
return;
}
$previousValue = isset($previousFields['VALUE']) ? $previousFields['VALUE'] : '';
$currentValue = isset($currentFields['VALUE']) ? $currentFields['VALUE'] : $previousValue;
if($previousValue !== $currentValue)
{
$historyEntryID = ModificationEntry::create(
array(
'ENTITY_TYPE_ID' => \CCrmOwnerType::DealRecurring,
'ENTITY_ID' => $ownerID,
'AUTHOR_ID' => self::resolveEditorID($currentFields),
'SETTINGS' => array(
'FIELD' => $fieldName,
'START' => $previousValue,
'FINISH' => $currentValue,
)
)
);
$this->sendPullEventOnAdd(
new \Bitrix\Crm\ItemIdentifier(\CCrmOwnerType::DealRecurring, $ownerID),
$historyEntryID
);
}
}