• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/importonecbase.php
  • Класс: BitrixSaleExchangeImportOneCBase
  • Вызов: ImportOneCBase::modifyEntity
protected function modifyEntity($item)
{
	$result = new Result();

	if(!($item instanceof EntityImport) && !($item instanceof UserProfileImport))
		throw new ArgumentException("Item must be instanceof EntityImport or UserProfileImport");

	$params = $item->getFieldValues();

	$fieldsCriterion = $fields = &$params['TRAITS'];

	$converter = ConverterFactory::create($item->getOwnerTypeId());
	$converter::sanitizeFields($item->getEntity(), $fields, $item->getSettings());

	$item->refreshData($fields);

	$criterion = $item->getCurrentCriterion($item->getEntity());
	$collision = $item->getCurrentCollision($item->getOwnerTypeId());

	if($item instanceof ShipmentImport)
		$fieldsCriterion['ITEMS'] = $params['ITEMS'];

	if($criterion->equals($fieldsCriterion))
	{
		$collision->resolve($item);
	}

	if(!$criterion->equals($fieldsCriterion) ||
		($criterion->equals($fieldsCriterion) && !$item->hasCollisionErrors()))
	{
		$result = $item->import($params);
	}

	return $result;
}