- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/update/update190500.php
- Класс: BitrixImopenlinesUpdateUpdate190500
- Вызов: Update190500::execute
public function execute(array &$result)
{
$return = false;
if (Loader::includeModule(self::$moduleId))
{
$connection = Application::getConnection();
$params = Option::get(self::$moduleId, self::OPTION_NAME, "");
$params = ($params !== "" ? @unserialize($params, ['allowed_classes' => false]) : []);
$params = (is_array($params) ? $params : []);
if (empty($params))
{
$params = [
"lastId" => 0,
"number" => 0,
"count" => ConfigTable::getCount(),
];
}
if (
!empty($connection->getTableField(ConfigTable::getTableName(), 'TIMEMAN')) &&
!empty($connection->getTableField(ConfigTable::getTableName(), 'CHECK_ONLINE'))
)
{
if ($params["count"] > 0)
{
$result["title"] = Loc::getMessage("IMOL_UPDATE_CONFIG_CHECK_AVAILABLE");
$result["progress"] = 1;
$result["steps"] = "";
$result["count"] = $params["count"];
$sql = 'SELECT ID, TIMEMAN, CHECK_ONLINE FROM ' . ConfigTable::getTableName() . ' WHERE ID > ' . $params["lastId"] . ' ORDER BY ID ASC';
$cursor = $connection->query($sql, 0, 100);
$found = false;
while ($row = $cursor->fetch())
{
$checkAvailable = 'N';
if($row['TIMEMAN'] == 'Y' || $row['CHECK_ONLINE'] == 'Y')
{
$checkAvailable = 'Y';
}
ConfigTable::update($row['ID'], ['CHECK_AVAILABLE' => $checkAvailable]);
$params["lastId"] = $row['ID'];
$params["number"]++;
$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, ["name" => self::OPTION_NAME]);
}
}
}
else
{
Option::delete(self::$moduleId, ["name" => self::OPTION_NAME]);
}
}
return $return;
}