Your IP : 216.73.216.170
<?
define("NOT_CHECK_PERMISSIONS", true);
if (!$_SERVER["DOCUMENT_ROOT"]) {
$_SERVER["DOCUMENT_ROOT"] = realpath('./');
}
require_once $_SERVER["DOCUMENT_ROOT"] . '/local/composer/vendor/autoload.php';
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
use Bitrix\Main\Type\DateTime;
use Bitrix\Main\Loader;
use Bitrix\Highloadblock\HighloadBlockTable as HLBT;
use Bitrix\Disk\Security\DiskSecurityContext;
use Bitrix\Disk\Security\SecurityContext;
use Bitrix\Disk\Storage;
use Bitrix\Main\Localization\Loc;
use duzun\hQuery;
$APPLICATION->SetTitle("Тест ФНС");
//
//$list = $helper->getList(['select' => ['*']])->fetchAll();
$baseUrl = 'https://www.nalog.ru/opendata';
$code = '7707329152-rsmp';
$link = 'http://file.nalog.ru/opendata/7707329152-rsmp/data-04102020-structure-10102019.zip';
//$allUrls = '';
$baseDir = $_SERVER['DOCUMENT_ROOT'] . '/upload/fnsdata';
// $realUrl = $baseUrl . $item['UF_CODE'] . '/';
// $allUrls .= "\n" . $item['UF_LINK'];
$currentDir = $baseDir . '/' . $code . '/';
//$lastInn = $helper->getList(['filter' => [], 'select' => ['UF_INN'], 'order' => ['ID' => 'DESC'], 'limit' => 1])->fetch()['UF_INN'];
//okp($lastInn);
//$command = "grep -lr $lastInn $currentDir";
//$res = exec($command);
//okp($res);
//$res = '/home/bitrix/ext_www/portal.yacl.site/upload/fnsdata/7707329152-rsmp/VO_RRMSPSV_0000_9965_20200410_8589b42e-8e9a-47e0-aa25-090ef261b19f.xml';
$allXmls = glob($currentDir . '*.xml');
//array_splice($allXmls, 0, 6619);
//okp($allXmls);
//die();
//die();
//okp($allXmls);
//error_reporting(E_ALL);
//$helper = new HighloadBlockHelper(13);
$prefix = 'portal:company:';
$options = [
'parameters' => [
'password' => 'aS3f!gMleU6x',
],
];
$params = [
'host' => '127.0.0.1',
'port' => 6379,
];
$client = new Predis\Client($params, $options);
$count = 0;
$time = microtime(true);
$companiesData = [];
foreach ($allXmls as $currentXml) {
$sxe = new SimpleXMLElement(file_get_contents($currentXml));
foreach ($sxe->{'Документ'} as $document) {
if ($document->{'ИПВклМСП'}) {
continue;
// $inn = $document->{'ИПВклМСП'}['ИННФЛ'];
// $name .= $document->{'ИПВклМСП'}->{'ФИОИП'}['Фамилия'] . ' ';
// $name .= $document->{'ИПВклМСП'}->{'ФИОИП'}['Имя'] . ' ';
// $name .= $document->{'ИПВклМСП'}->{'ФИОИП'}['Отчество'];
} else {
$inn = $document->{'ОргВклМСП'}['ИННЮЛ'];
$name = $document->{'ОргВклМСП'}['НаимОргСокр'];
}
$inn = (string)$inn;
$okvedList = [$document->{'СвОКВЭД'}->{'СвОКВЭДОсн'}['КодОКВЭД'] . ' ' . $document->{'СвОКВЭД'}->{'СвОКВЭДОсн'}['НаимОКВЭД']];
foreach ($document->{'СвОКВЭД'}->{'СвОКВЭДДоп'} as $okved) {
$okvedList[] = $okved['КодОКВЭД'] . ' ' . $okved['НаимОКВЭД'];
}
$allLicenses = [];
foreach ($document->{'СвЛиценз'} as $item) {
$license = [
'number' => $item['НомЛиценз'],
'dateFrom' => $item['ДатаНачЛиценз'],
'dateTo' => $item['ДатаКонЛиценз'],
'name' => $item->{'НаимЛицВД'},
];
// $license = 'Лицензия №' . $item['НомЛиценз'] . '. ' . 'Действует с ' . $item['ДатаНачЛиценз'];
// if ($item['ДатаКонЛиценз']) {
// $license .= ' по ' . $item['ДатаКонЛиценз'];
// }
// $license .= '. ' . $item->{'НаимЛицВД'};
$allLicenses[] = $license;
}
$data = [
'UF_MSP_DATE' => (string)$document['ДатаВклМСП'],
'UF_INN' => $inn,
'UF_NAME' => $name,
'UF_OKVEDS' => $okvedList,
'UF_LICENSES' =>$allLicenses,
];
if (mb_strlen($data['UF_INN']) == 10) {
$companiesData[$inn] = $data;
// $helper->add($data);
// okp($prefix . $inn);
// okp($data);
// $client->hmset($prefix . $inn, $data);
// oklog('add ' . $inn . '. Count ' . ++$count, 'predis_add_log');
}
}
if (++$count > 10)
break;
// $data = [];
// $chosenId = '';
// while($xml->read()) {
// if ($xml->localName == 'Документ') {
// $license = '';
// $docId = $xml->getAttribute('ИдДок');
// $data[$docId]['date'] = $xml->getAttribute('ДатаВклМСП');
// } elseif ($xml->localName == 'ИПВклМСП') {
// $data[$docId]['inn'] = $xml->getAttribute('ИННФЛ');
// } elseif ($xml->localName == 'ОргВклМСП') {
// $data[$docId]['inn'] = $xml->getAttribute('ИННЮЛ');
// } elseif ($xml->localName == 'СвОКВЭДОсн') {
// $data[$docId]['okved'][] = $xml->getAttribute('КодОКВЭД') . ' ' . $xml->getAttribute('НаимОКВЭД');
// } elseif ($xml->localName == 'СвОКВЭДДоп') {
// $data[$docId]['okved'][] = $xml->getAttribute('КодОКВЭД') . ' ' . $xml->getAttribute('НаимОКВЭД');
// } elseif ($xml->localName == 'СвОКВЭДДоп') {
// $license = 'Лицензия №' . $xml->getAttribute('НомЛиценз') . '. Действует с ' . $xml->getAttribute('ДатаНачЛиценз');
// if ($xml->getAttribute('ДатаКонЛиценз')) {
// $license .= ' по ' . $xml->getAttribute('ДатаКонЛиценз');
// }
// $license .= '.';
// $data[$docId]['licenses'][] = $license;
// }
// }
// okp($data);
// break;
}
okp(microtime(true) - $time);
okp($companiesData);
okp(count($companiesData));
okp(microtime(true) - $time);
//okp($allXmls);
// if (!is_dir($currentDir)) {
// mkdir($currentDir);
// }
// $command = "wget --directory-prefix=$currentDir " . $link;
// $res = exec($command);
//$helper = new HighloadBlockHelper(12);
//$list = $helper->getList(['select' => ['*']])->fetchAll();
//$baseUrl = 'https://www.nalog.ru/opendata/';
////$allUrls = '';
//$baseDir = $_SERVER['DOCUMENT_ROOT'] . '/upload/fnsdata/';
//foreach ($list as $item) {
//// $realUrl = $baseUrl . $item['UF_CODE'] . '/';
//// $allUrls .= "\n" . $item['UF_LINK'];
// $currentDir = $baseDir . '/' . $item['UF_CODE'];
// if (!is_dir($currentDir)) {
// mkdir($currentDir);
// }
//// $command = "wget --directory-prefix=$currentDir " . $item['UF_LINK'];
// $res = exec($command);
//}
//$helper = new HighloadBlockHelper(12);
//$list = $helper->getList(['select' => ['*']])->fetchAll();
//$baseUrl = 'https://www.nalog.ru/opendata/';
////$allUrls = '';
//$baseDir = $_SERVER['DOCUMENT_ROOT'] . '/upload/fnsdata/';
//foreach ($list as $item) {
////// $realUrl = $baseUrl . $item['UF_CODE'] . '/';
////// $allUrls .= "\n" . $item['UF_LINK'];
// $currentDir = $baseDir . $item['UF_CODE'] . '/';
////// if (!is_dir($currentDir)) {
////// mkdir($currentDir);
////// }
//// $command = "wget --directory-prefix=$currentDir " . $item['UF_LINK'];
////// $res = exec($command);
//$allZips = glob($currentDir . '*.zip');
//if (!empty($allZips)) {
// $zipFile = $allZips[0];
// $zip = new ZipArchive();
// $res = $zip->open($zipFile);
// if ($res === TRUE) {
// $zip->extractTo($currentDir);
// $zip->close();
// } else {
// echo 'error reading archive!';
// }
//}
//}
//file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/upload/fnsdata/urls.txt', $allUrls);
//exec('wget --directory-prefix= --input-file=/home/bitrix/ext_www/portal.yacl.site/upload/fnsdata/urls.txt');
////okp($list);
//
//$baseUrl = 'https://www.nalog.ru/opendata/';
//
//$interestingDataUrls = [
// '7707329152-debtam' => 'Сведения о суммах недоимки и задолженности по пеням и штрафам',
// '7707329152-taxoffence' => 'Сведения о налоговых правонарушениях и мерах ответственности за их совершение',
// '7707329152-massleaders' => 'Сведения о физических лицах, являющихся руководителями нескольких юридических лиц', ИП!
// '7707329152-massfounders' => 'Сведения о физических лицах, являющихся учредителями (участниками) нескольких юридических лиц', ИП!
// '7707329152-disqualifiedpersons' => 'Юридические лица, в состав исполнительных органов которых входят дисквалифицированные лица',
// '7707329152-registerdisqualified' => 'Реестр дисквалифицированных лиц',
// '7707329152-arrearsoftea' => 'О задолженности по налогам и сборам, пеням и налоговым санкциям в бюджетную систему Российской Федерации по основным видам экономической деятельности (Форма 4-НОМ)',
// '7707329152-revexp' => 'Сведения о суммах доходов и расходов по данным бухгалтерской (финансовой) отчетности организации за год, предшествующий году размещения таких сведений на сайте ФНС России',
//// '7707329152-rsmp' => 'Единый реестр субъектов малого и среднего предпринимательства
//];
//
////hQuery::$cache_path = $_SERVER["DOCUMENT_ROOT"] . '/bitrix/cache/hquery';
////hQuery::$cache_expires = 86400;
//
//$helper = new HighloadBlockHelper(12);
//foreach ($interestingDataUrls as $url => $name) {
//// break;
// $realUrl = $baseUrl . $url . '/';
//// okp($realUrl);
// $html = file_get_contents($realUrl);
// $html = substr($html, strpos($html, '<table'), strpos($html, '</table>') + mb_strlen('</table>') - strpos($html, '<table'));
//// $translittedHtml =
//// $clearHtml = (str_ireplace([
//// "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я",
//// "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я",
//// ], '', $html));
// $translittedHtml = CUtil::translit($html, 'ru', ['max_len' => 9999999, 'safe_chars' => '()"\'=<:/>.,-_', 'replace_space' => ' ', 'replace_other' => '-']);
//// okp(htmlspecialchars($html));
//// okp(htmlspecialchars($translittedHtml));
//// return;
// $query = hQuery::fromHTML($translittedHtml);
//// okp($query);
//// return;
// try {
// $href = '';
// $aList = $query->find('a');
// foreach ($aList as $a) {
// if ($a->attr('href') == $a->text()) {
// $href = $a->attr('href');
// break;
// }
// }
// $helper->add([
// 'UF_NAME' => $name,
// 'UF_CODE' => $url,
// 'UF_LINK' => $href,
// ]);
//
//// okp($href);
//
//
//// okp($tableRows->html());
//// okp($tableRows->count());
// } catch (Exception $e) {
// okp($e->getMessage());
// }
//}
//// $count = 0;
//// okp($tableRows);
//// foreach ($tableRows as $row) {
////
//// }
//// okp(htmlspecialchars($item->html()));
//}
//$query = Duzun\hQuery::fromFile();
//$query->find('')
/*
?>
<form action="" method="get">
<div class="header-search" style="margin: 20px 0;">
<input class="header-search-field" name="inn" placeholder="Введите ИНН интересующей Вас компании" >
<button class="header-search-button">Поиск</button>
</div>
</form>
<?
$queryInn = '7718703531';
if (mb_strlen($_GET['inn']) == 10 || mb_strlen($_GET['inn']) == 12) {
$queryInn = intval($_GET['inn']);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{ \"query\": \"$queryInn\" }");
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Accept: application/json';
$headers[] = 'Authorization: Token 02170bc260f6f72349c7f628a773685b19ff6ed6';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
$companyData = json_decode($result, true);
okp($companyData);
$currentDir = $_SERVER['DOCUMENT_ROOT'] . '/local/fns';
$dataDir = $currentDir . '/data/1/';
$command = "grep -lr $queryInn $dataDir";
$res = exec($command);
if ($res) {
$xml = new XMLReader();
$xml->open($res);
$data = [];
$chosenId = '';
while($xml->read()) {
// okp($xml->nodeType);
// okp($xml->attributeCount);
// okp($xml->localName);
if ($xml->localName == 'Документ') {
$docId = $xml->getAttribute('ИдДок');
} elseif ($xml->localName == 'СведНП') {
$currentInn = $xml->getAttribute('ИННЮЛ');
if ($currentInn == $queryInn) {
$chosenId = $docId;
}
$data[$docId]['org'] = [
'name' => $xml->getAttribute('НаимОрг'),
'inn' => $xml->getAttribute('ИННЮЛ'),
];
} elseif ($xml->localName == 'СведНедоим') {
$data[$docId]['arrears'][] = [
'name' => $xml->getAttribute('НаимНалог'),
'summ' => $xml->getAttribute('ОбщСумНедоим'),
];
}
}
okp($data[$chosenId]);
}
//okp($res);
//$zip = new ZipArchive();
//$res = $zip->open($currentDir . '/data-20200214-structure-20180801.zip');
//if ($res === TRUE) {
// if (!is_dir($currentDir . '/data/1/')) {
// mkdir($currentDir . '/data/1/');
// }
// $zip->extractTo($currentDir . '/data/1/');
// $zip->close();
// echo 'success!';
//} else {
// echo 'error reading archive!';
//}
//
*/