Metadata-Version: 2.4
Name: edupfr
Version: 0.4.0
Summary: Клиенты для веб-сервисов Пенсионного фонда РФ
Author-email: BARS Group <education_dev@bars.group>
Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/edupfr/browse
Project-URL: Repository, https://stash.bars-open.ru/scm/edubase/edupfr.git
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Framework :: Django :: 3.1
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.1
Classifier: Framework :: Django :: 4.2
Classifier: Intended Audience :: Developers
Classifier: Environment :: Web Environment
Classifier: Natural Language :: Russian
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: Django<5.0,>=3.1
Requires-Dist: pytz
Requires-Dist: m3-spyne-smev
Requires-Dist: suds-py3
Provides-Extra: dev
Requires-Dist: isort==5.12.0; extra == "dev"
Requires-Dist: ruff==0.12.1; extra == "dev"
Requires-Dist: flake8<7,>=4.0.1; extra == "dev"
Requires-Dist: pytest<8,>=3.2.5; extra == "dev"
Requires-Dist: pytest-cov<5; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx<7.5,>=7; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints<2.5,>=2; extra == "docs"
Requires-Dist: myst-parser<3.2,>=3; extra == "docs"
Requires-Dist: sphinx_design<0.7,>=0.6; extra == "docs"
Dynamic: license-file

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

Библиотека ``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).
