Your IP : 216.73.216.170


Current Path : /home/bitrix/ext_www/portal.yacl.site/
Upload File :
Current File : /home/bitrix/ext_www/portal.yacl.site/fns_debtam.php

<?
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!';
//}
//

*/