Your IP : 216.73.216.170


Current Path : /home/bitrix/ext_www/vf.yacl.site/
Upload File :
Current File : /home/bitrix/ext_www/vf.yacl.site/import_cards.php

<?
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));