CCrmExternalChannelImportActivity::import

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmExternalChannelImportActivity
  4. import
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/rest/externalchannel.php
  • Класс: Bitrix\Crm\Rest\CCrmExternalChannelImportActivity
  • Вызов: CCrmExternalChannelImportActivity::import
public function import($activity, &$resultList, &$fields)
{
	$result = new Result();

	$resultList = array(
		'id'=> -1,
		'process' => array(
			'add' => false,
			'upd' => false,
			'error' => array()
		)
	);

	/** @var CCrmExternalChannelImport $import */
	$import = $this->import;

	/** @var CCrmExternalChannelConnector $connector */
	$connector = $import->getConnector();

	if(($fields = $activity[CCrmExternalChannelImport::FIELDS]) && count($fields)>0)
	{
		$r = $this->checkFields($fields);

		if($r->getErrors())
			$result->addErrors($r->getErrors());
		else
		{
			$res = $this->getEntity()->innerGetList(
				array(),
				array(
					'ORIGIN_ID'=>$fields['ORIGIN_ID'],
					'ORIGINATOR_ID' => $connector->getOriginatorId()
				),
				array('*'),
				false,
				$errors
			);
			if(!$res)
			{
				if(count($errors)>0)
					$result->addError(new Error(implode('; ', $errors), 7008));
			}
			else
			{
				$errors = array();

				$this->getEntity()->internalizeFields($fields, $this->getEntity()->getFieldsInfo());

				$this->fillFields($fields, $activity);

				if($r = $res->Fetch())
				{
					$resultUpdate = $this->getEntity()->innerUpdate($r['ID'], $fields, $errors);
					if($resultUpdate !== false)
					{
						$resultList['id'] = (int)$r['ID'];
						$resultList['process']['upd'] = true;
					}

					if(count($errors)>0)
						$result->addError(new Error(implode('; ', $errors), 7009));
				}
				else
				{
					$id = $this->getEntity()->innerAdd($fields, $errors);
					if($this->isValidID($id))
					{
						$this->registerActivityInChannel($id, $connector);

						$resultList['id'] = $id;
						$resultList['process']['add'] = true;
					}

					if(count($errors)>0)
						$result->addError(new Error(implode('; ', $errors), 7010));
				}
			}
		}
	}
	else
		$result->addError(new Error("Activity fields is not defined.", 7011)) ;

	return $result;
}

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