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