FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9233
Вход
Проверка статуса контрагента (версия 2), проверяем ИНН/КПП на дату

Проверка статуса контрагента, проверяем ИНН/КПП на дату через SOAP-интерфейс на сайте Федеральной налоговой службы. Версия 2 по состоянию на 27.04.2017 г. работает в тестовом режиме.


 
Прислал: vic119, Alex Roublev (доработка)   Категория: Сети (Интернет и др.)



* ==============================================================================================================================
* Автор: vic119, Alex Roublev (доработка)
* Дата: 10.12.2014, 27.04.2017
* Описание: статус ИНН/КПП на дату
* проверка контрагента через SOAP-интерфейс на сайте Федеральной налоговой службы [url=https://npchk.nalog.ru/]https://npchk.nalog.ru/[/url]
* Документация: [url=https://npchk.nalog.ru/ws2.doc]https://npchk.nalog.ru/ws2.doc[/url]
*
* Примечание: на 27.04.2017 на сайте ФНС сервис работает в тестовом режиме
*
* Доп. информация: Использование WEB сервиса для проверки ИНН/КПП контрагента: [url=http://infostart.ru/public/439808/]http://infostart.ru/public/439808/[/url]
* Обсуждение на форуме Foxclub: [url=http://forum.foxclub.ru/read.php?29,645686]http://forum.foxclub.ru/read.php?29,645686[/url]
*
* Библиотека: используется библиотека Microsoft XML Core Service версия 6 SP3 (msxml6.dll)
* альтернатива - MSXML версия 4 SP2 (msxml4.dll) с вызовом объекта класса Msxml2.XMLHTTP.4.0
* описание версий [url=https://support.microsoft.com/ru-ru/help/269238/list-of-microsoft-xml-parser-msxml-versions]https://support.microsoft.com/ru-ru/help/269238/list-of-microsoft-xml-parser-msxml-versions[/url]
*
* Параметры:
* tcInn - ИНН контрагента
* tcKpp - КПП контрагента
* tcDate - дата, на которую проверяем в строковом формате 'дд.мм.гггг'
*
* Возврат: строка с описанием статуса проверки
* ==============================================================================================================================

CLEAR

LOCAL lcInn AS STRING, lcKpp AS STRING, lcDate AS STRING

lcInn = '6441012385'
lcKpp = '583601001'
lcDate = '08.12.2014'

?Check_INN_KPP(lcInn, lcKpp, lcDate)

FUNCTION Check_INN_KPP()

LPARAMETERS tcInn AS STRING, tcKpp AS STRING, tcDate AS STRING

LOCAL loHttp AS OBJECT, lcRequest AS STRING, lcResponse AS STRING, lnState AS INTEGER, loError AS OBJECT

lnState = -1

TEXT TO lcRequest TEXTMERGE PRETEXT 1 + 2 NOSHOW
version="1.0" encoding="UTF-8"?>

Header/>






ENDTEXT

TRY

loHttp = CREATEOBJECT('Msxml2.XMLHTTP.6.0')

WITH loHttp
.OPEN('POST', 'http://npchk.nalog.ru/FNSNDSCAWS_2?wsdl', .F.)
.setRequestHeader('Content-Type', 'text/xml; charset=utf-8')
.setRequestHeader('Content-length', TRANSFORM(LEN(lcRequest)))
.Send(lcRequest)

DO WHILE .ReadyState <> 4
DOEVENTS FORCE
ENDDO
lcResponse = .ResponseText
ENDWITH

lcResponse = STREXTRACT(lcResponse, '', '')
CREATE CURSOR Rekvizit (INN V(12), KPP V(9), DT V(10), State I)
XMLTOCURSOR(lcResponse, 'Rekvizit', 8192)

IF RECCOUNT('Rekvizit') > 0
lnState = Rekvizit.State
ENDIF

CATCH TO loError

MESSAGEBOX('Сообщение об ошибке: ' + CHR(13) + 'В строке № ' + TRANSFORM(loError.LINENO) + ' # ' + loError.MESSAGE, 16, 'Обработка не завершена')

ENDTRY

USE IN SELECT('Rekvizit')

RETURN ICASE ;
(;
lnState = -1, 'При проверке ИНН/КПП данные контрагента не обработаны', ;
lnState = 0, 'Налогоплательщик зарегистрирован в ЕГРН и имел статус действующего в указанную дату', ;
lnState = 1, 'Налогоплательщик зарегистрирован в ЕГРН, но не имел статус действующего в указанную дату', ;
lnState = 2, 'Налогоплательщик зарегистрирован в ЕГРН', ;
lnState = 3, 'Налогоплательщик с указанным ИНН зарегистрирован в ЕГРН, КПП не соответствует ИНН или не указан', ;
lnState = 4, 'Налогоплательщик с указанным ИНН не зарегистрирован в ЕГРН', ;
lnState = 5, 'Некорректный ИНН', ;
lnState = 6, 'Недопустимое количество символов ИНН', ;
lnState = 7, 'Недопустимое количество символов КПП', ;
lnState = 8, 'Недопустимые символы в ИНН', ;
lnState = 9, 'Недопустимые символы в КПП', ;
lnState = 11, 'Некорректный формат даты', ;
lnState = 12, 'Некорректная дата (ранее 01.01.1991 или позднее текущей даты)', ;
'(' + TRANSFORM(lnState) + ') при обработке данных статус контрагента не определен' ;
)
ENDFUNC

 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (2) Вложение [2]kb
Дополнения пользователей
Проверка статуса контрагента (версия 2), проверяем ИНН/КПП на дату
[+][?]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика