• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/update/ordersearchindex.php
  • Класс: Bitrix\Crm\Update\OrderSearchIndex
  • Вызов: OrderSearchIndex::execute
public function execute(array &$result)
{
	if(!Loader::includeModule("crm"))
		return false;

	$className = get_class($this);
	$option = Option::get("crm", $className, 0);
	$result["steps"] = $option;

	$limit = 50;
	$result["steps"] = isset($result["steps"]) ? $result["steps"] : 0;
	$selectedRowsCount = 0;
	$objectQuery = Order\Order::getList([
		'limit' => $limit,
		'count_total' => true,
		'offset' => $result["steps"],
		'order' => ["ID" => "DESC"]
	]);
	if($objectQuery)
	{
		$selectedRowsCount = $objectQuery->getCount();
		$searchIndexInstance = Order\SearchIndex::getInstance();
		while($fields = $objectQuery->fetch())
		{
			$order = Order\Order::create(SITE_ID);
			$order->initFields($fields);
			$searchIndexInstance->setOrder($order)->add();
		}
	}

	if($selectedRowsCount < $limit)
	{
		Option::delete("crm", array("name" => $className));
		return false;
	}
	else
	{
		$result["steps"] = $result["steps"] + $selectedRowsCount;
		$option = $result["steps"];
		Option::set("crm", $className, $option);
		return true;
	}
}