• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/update/update186900/correction2.php
  • Класс: BitrixImopenlinesUpdateUpdate186900Correction2
  • Вызов: Correction2::execute
public function execute(array &$result)
{
	$return = false;

	if (Loader::includeModule(self::$moduleId))
	{
		$params = Option::get(self::$moduleId, self::OPTION_NAME, "");
		$params = ($params !== "" ? @unserialize($params, ['allowed_classes' => false]) : []);
		$params = (is_array($params) ? $params : array());
		if (empty($params))
		{
			$params = [
				"lastId" => 0,
				"number" => 0,
				"count" => Correction::getCountSessionsThatNotShown(),
			];
		}

		if ($params["count"] > 0)
		{
			$result["title"] = Loc::getMessage("IMOL_UPDATE_REPAIR_SESSIONS_THAT_NOT_SHOWN");
			$result["progress"] = 1;
			$result["steps"] = "";
			$result["count"] = $params["count"];

			$resultCorrectionSession = Correction::repairSessionsThatNotShown(true, 30, 100);

			$found = false;
			if(!empty($resultCorrectionSession['CLOSE']) || !empty($resultCorrectionSession['UPDATE']))
			{
				$params["number"]++;
				$params["lastId"] = $params["number"] * 100;
				$found = true;
			}

			if ($found)
			{
				Option::set(self::$moduleId, self::OPTION_NAME, serialize($params));
				$return = true;
			}

			$result["progress"] = intval($params["number"] * 100/ $params["count"]);
			$result["steps"] = $params["number"];

			if ($found === false)
			{
				Option::delete(self::$moduleId, array("name" => self::OPTION_NAME));
			}
		}
	}

	return $return;
}