Metadata-Version: 2.1
Name: npdtools
Version: 0.1a3
Summary: tool for work with FNS API
Home-page: https://gitlab.com/whiteapfel/npdtools
Author: WhiteApfel
Author-email: white@pfel.ru
License: MPL 2.0
Project-URL: Документальное чтиво, https://npd-tools.readthedocs.io/en/latest/
Project-URL: Донатик, https://pfel.cc/donate
Project-URL: Исходнички, https://gitlab.com/whiteapfel/npdtools/
Project-URL: Тележка для вопросов, https://t.me/apfel
Keywords: FNS API wrapper nalog налог ФНС самозанятость
Platform: UNKNOWN
Description-Content-Type: text/markdown
License-File: LICENSE

# NPDTools

Ищешь инструмент для удобного декларирования доходов? 
Хочешь автоматизировать выдачу чеков клиентам?
Надоело заходить в Мой налог? Надоедает проверять, что каждый приход зарегистрирован в налоговой?
Боишься ошибиться и получить безжалостный удар от ФНС кнутом без пряника?

### ВЫХОД ЕСТЬ! Для этого потребуется простая питоняшая...

Нет, не сода. Либа. README которой ты сейчас читаешь. 
Да, она позволяет работать с API Федеральной налоговой службы (ФНС) в рамках возможностей
приложения "Мой налог". Больше она не умеет. Столько же не умеет. Меньше умеет.
Надеюсь, теперь все люди, что искали подобный инструмент в гугле, смогли его найти.
Можно приступить к содержательной части. 

## Если ты не знаешь свой ⚠️ password ⚠️

Если входишь в lknpd.nalog.ru или "Мой налог" через Госуслуги (ЕСИА) или просто не помнишь пароль,
надо зайти на [lkfl2.nalog.ru](https://lkfl2.nalog.ru 'Личный кабинет физлица') и там по ситуации:
* Войти так же через Госуслуги и сменить (установить) пароль в настройках профиля
* Войти по электронной подписи и сменить пароль в настройках профиля
* Нажать кнопочку "Восстановить пароль" и пройти процедуру восстановления
* Не разобраться в ситуации и смириться со сложностью бытия

## Что может библиотека?

Собственно, всё сводится к выставлению и закрытию чеков. Можно ещё получать их историю,
но это плохо реализовано у меня, потому что я криволапка, но только пока.
Что? Примеров хочешь? Держи примеров. Обмажься. 

### Выставляем чек, как профи

```python
from npdtools import NPDTools
client = NPDTools("123456789012", "~_ub&TS5RY~k9,czo(q*")

# Для начала составим корзину.
# 1. Метод здорового человека
cheque = Services()
cheque.add("Коробка для изюма из дерева с декоративными элементами", 250, 1)

# 2. Метод немного здорового человека
cheque = Services(Service("Коробка", 250.5, 10), Service("Бант", 67.89, 5))

# 3. Метод немного нездорового человека
cheque = Services(("Скворечник", 3600, 1), ("Палка для скворечника", 1000, 1))

# 4. Метод нездорового человека.Можно добавить только одну позицию.
bill = client.add_income(Service(("Носочки", 20007.08, 1)))

# 5. Метод больного человека. Можно добавить только одну позицию.
bill = client.add_income(("Что-то неведомое", 100, 2))

# Как выставлять физлицам?
bill = client.add_income(cheque)

# ИП или ООО или прочая российская организация?
from npdtools.types import Client
bill = client.add_income(cheque, Client(display_name="ИП Иванов Иван Иваныч", inn=1123456789012))

# А иностранная?
from npdtools.types import Client
bill = client.add_income(cheque, Client(display_name="Rusalky Davalky Inc."))
```

### Канселим чеки, как Италию

```python
from npdtools import NPDTools
client = NPDTools("123456789012", "~_ub&TS5RY~k9,czo(q*")

cheque = Services()
cheque.add("Коробка для изюма из дерева с декоративными элементами", 250, 1)
bill = client.add_income(cheque)

# Отменяем выставленный счёт
client.cancel_income(bill.id)

# Ну или как-то по-другому указываем номер чека. Можно и кастомный коммент.
client.cancel_income(id="73489273597", comment="Клиент гопник я с ним работать не буду")
```

### P.S.
Я буду ещё дописывать библиотеку, да. Но пока так. Она не такая простая, как кажется.

Буду рад конструктивным пул реквестам и иссуям.

