Your IP : 216.73.216.170
<?
define("NOT_CHECK_PERMISSIONS", true);
if (!$_SERVER["DOCUMENT_ROOT"]) {
$_SERVER["DOCUMENT_ROOT"] = realpath(__DIR__);
} else {
die ('Script for console only');
}
$timer = microtime(true);
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
Bitrix\Main\Loader::includeModule('iblock');
ini_set('auto_detect_line_endings', TRUE);
$arrFilter = ["=%EXTERNAL_ID_VALUE" => '%Рязань_%'];
$className = \Bitrix\Iblock\Iblock::wakeup(1)->getEntityDataClass();
$res = $className::getList([
'filter' => $arrFilter,
'select' => ['ID', 'NAME', 'EXTERNAL_ID_' => 'EXTERNAL_ID'],
'order' => ['ID' => 'DESC'],
'limit' => 10
])->fetchAll();
$existingIds = [];
foreach ($res as $currentItem) {
$externalId = str_replace('Рязань_', '', $currentItem['EXTERNAL_ID_VALUE']);
$existingIds[] = $externalId;
}
// okp($existingIds);
// okp($res);
// return;
$file = new \SplFileObject('_ryazan.csv');
$data = [];
$row = 1;
$cbe = new CIBlockElement;
while (!$file->eof()) {
$item = $file->fgetcsv(';');
if (in_array($item[0], $existingIds)) {
oklog("пользователь " . $item[3] . ' ' . $item[1] . ' ' . $item[2] . " [" . $item[0] . "] уже есть!\n", 'csv.err');
continue;
}
if ($item[0] == 0) {
oklog("Bad ID\n", 'csv.err');
continue;
}
// okp($item);
$fields = [
'NAME' => $item[3] . ' ' . $item[1] . ' ' . $item[2],
'IBLOCK_ID' => 1,
'CREATED_BY' => 1,
'MODIFIED_BY' => 1
];
$props = [
'SURNAME' => $item[3],
'NAME' => $item[1],
'PATRONYMIC' => $item[2],
// 'BORN_DATE' => $item[4],
// 'DEATH_DATE' => $item[6],
'CITY' => $item[5],
'DESCRIPTION' => $item[7],
'STATUS' => 1,
'EXTERNAL_ID' => 'Рязань_' . $item[0],
];
if (strpos($item[6], '00.') !== false || !$item[6]) {
$props['DESCRIPTION'] = 'Дата смерти - ' . $item[6] . "\n\n" . $props['DESCRIPTION'];
} else {
$props['DEATH_DATE'] = $item[6];
}
if (strpos($item[4], '00.') !== false || !$item[4]) {
$props['DESCRIPTION'] = 'Дата рождения - ' . $item[4] . "\n\n" . $props['DESCRIPTION'];
} else {
$props['BORN_DATE'] = $item[4];
}
$fields['PROPERTY_VALUES'] = $props;
$res = $cbe->Add($fields, false, false);
if (!$res) {
if (isset($props['DEATH_DATE'])) {
$props['DESCRIPTION'] = 'Дата смерти - ' . $item[6] . "\n\n" . $props['DESCRIPTION'];
unset($props['DEATH_DATE']);
}
if (isset($props['BORN_DATE'])) {
$props['DESCRIPTION'] = 'Дата рождения - ' . $item[4] . "\n\n" . $props['DESCRIPTION'];
unset($props['BORN_DATE']);
}
$fields['PROPERTY_VALUES'] = $props;
$newRes = $cbe->Add($fields, false, false);
if (!$newRes) {
oklog($fields, 'csv.err');
oklog($cbe->LAST_ERROR, 'csv.err');
// okp($props);
// okp($fields);
// die();
} else {
oklog('[2] ' . $newRes, 'csv.res');
}
} else {
oklog($res, 'csv.res');
}
}
okp('Time passed');
okp(round(microtime(true) - $timer, 4));