• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/v2/AgentContract/Manager.php
  • Класс: BitrixCatalogv2AgentContractManager
  • Вызов: Manager::add
static function add(array $fields, array $products = []): MainResult
{
	$result = new MainResult();

	if (empty($fields['TITLE']))
	{
		$fields['TITLE'] = '';
	}

	if (empty($fields['CREATED_BY']))
	{
		$fields['CREATED_BY'] = MainEngineCurrentUser::get()->getId();
	}

	$files = isset($fields['FILES']) && is_array($fields['FILES']) ? $fields['FILES'] : [];
	unset($fields['FILES']);

	$addResult = CatalogAgentContractTable::add($fields);
	if ($addResult->isSuccess())
	{
		$id = $addResult->getId();
		$result->setData(['ID' => $id]);

		if ($products)
		{
			$addProductsResult = self::addProducts($id, $products);
			if (!$addProductsResult->isSuccess())
			{
				$result->addErrors($addProductsResult->getErrors());
			}
		}

		if ($files)
		{
			self::saveFiles($id, $files);
		}
	}
	else
	{
		$result->addErrors($addResult->getErrors());
	}

	return $result;
}