Operation::doPerformUpdate

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Operation
  4. doPerformUpdate
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/entity/compatibility/adapter/operation.php
  • Класс: Bitrix\Crm\Entity\Compatibility\Adapter\Operation
  • Вызов: Operation::doPerformUpdate
protected function doPerformUpdate(int $id, array &$fields, array $compatibleOptions): Result
{
	$this->beforeStart();

	$item = $this->factory->getItem($id);
	if (!$item)
	{
		return $this->returnNotFoundError($fields);
	}
	$previousFields = $item->getCompatibleData();

	$this->prepareFields($fields, false);

	$item->setFromCompatibleData($fields);

	$operation = $this->factory->getUpdateOperation($item);

	$this->prepareOperation($operation, $compatibleOptions);

	if ($operation->isCheckFieldsEnabled() && $operation->isCheckRequiredUserFields())
	{
		$result = $this->checkRequiredFields($fields, $compatibleOptions, $operation->getRequiredFields());
		if (!$result->isSuccess())
		{
			return $this->returnError($result);
		}
	}

	$result = $operation->launch();
	if (!$result->isSuccess())
	{
		return $this->returnError($result, $fields);
	}

	$fields = $this->exposeFieldsAfterUpdate($previousFields, $item->getCompatibleData(), $fields);

	return $this->returnSuccess(true);
}

Добавить комментарий