Средства для запроса СНИЛС через веб-сервис ПФР
===============================================

Библиотека ``edupfr.snils_by_data`` предоставляет средства для запроса СНИЛС через `веб-сервис Пенсионного фонда РФ <http://smev.gosuslugi.ru/portal/services.jsp#!/F/PFRFsnilsbydata/4.00/p00smev/SID0003814>`_. Метод ``SnilsByDataRequest`` веб-сервиса принимает следующие параметры: фамилия, имя, отчество, пол и дату рождения застрахованного (физ. лица). Результатом работы метода ``SnilsByDataRequest`` может быть:

- код ошибки;
- номер СНИЛС (если найден один застрахованный);
- список найденных СНИЛС с указанием реквизитов документов, удостоверяющих личность застрахованных.

``edupfr.snils_by_data.helpers.get_snils()``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Для запроса СНИЛС библиотека предоставляет функцию ``edupfr.snils_by_data.helpers.get_snils()``, которая принимает в качестве аргументов фамилию, имя, отчество, пол и дату рождения застрахованного, а также номер (без серии) и дату выдачи документа, удостоверяющего личность застрахованного, и возвращает (если найден) СНИЛС застрахованного.

Параметры отчество, пол, номер и дата выдачи документа не обязательные.

Если не указывается пол застрахованного, то будет отправлено два запроса с мужским и женским полом.

Номер и дата выдачи документа используются в том случае, если по указанным ФИО и дате рождения найдено несколько застрахованных.

Подробнее об использовании функции написано в ее документации (docstring).

``edupfr.snils_by_data.helpers.load_snils_for_objects()``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Функция ``load_snils_for_objects()`` запрашивает в ПФР СНИЛС для нескольких объектов. Подробнее об использовании функции см. в ее документации (docstring).

Кнопка "Запросить СНИЛС"
^^^^^^^^^^^^^^^^^^^^^^^^
Для встраивания в формы в библиотеке реализована кнопка "Запросить СНИЛС" (компонент ``edupfr.snils_by_data.ui.SnilsRequestButton``). Для использования компонента форма должна содержать поля для ввода фамилии, имени и даты рождения (обязательные поля), а также поля для ввода пола застрахованного, отчества номера и даты выдачи документа. Подробнее об использовании компонента написано в его документации (docstring).

Инициализация библиотеки
^^^^^^^^^^^^^^^^^^^^^^^^
Для корректной работы библиотеки перед использованием ее необходимо проинициализировать. Для этого следует использовать функцию ``edupfr.snils_by_data.initialize()``. Ее параметры описаны в документации (docstring).

Протоколирование взаимодействия с веб-сервисом
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Библиотека ``edupfr.snils_by_data`` поддерживает возможность протоколирования (журналирования, логгирования) запросов, отправляемых к веб-сервису, а также получаемых ответов. Протоколирование осуществляется путем вызова функции, указываемой в аргументе ``log_func`` функции ``edupfr.snils_by_data.initialize()``. Подробнее см. документацию функции (docstring).
