Телеграм Бот на Python

Разработка ботов
Работа 2 из 5
# Telegram-бот для автоматизации документооборота (Счета и Акты)

## Обзор проекта

Этот Telegram-бот разработан для **быстрого формирования счетов (Счетов) и актов выполненных работ (Актов) в форматах XLSX и PDF** на основе данных, введенных пользователем через диалог.

Проект демонстрирует навыки разработки функциональных **Telegram-ботов** с использованием асинхронного фреймворка `aiogram` и прикладную работу с файлами **MS Excel** для генерации официальных финансовых документов.

---

## Ключевые возможности

* **Диалоговое взаимодействие (FSM):** Пошаговый сбор данных (название фирмы, номер/дата счета, перечень услуг, количество, цена) с использованием **FSM (Finite State Machine)** в `aiogram` для структурированного пользовательского опыта.
* **Генерация документов:** Использование библиотеки `openpyxl` для заполнения шаблонных файлов XLSX счетами и актами.
* **Конвертация в PDF:** Автоматическая конвертация созданных XLSX-файлов в PDF с помощью внешнего инструмента (`libreoffice` через `subprocess`).
* **Гибкость:** Поддержка добавления нескольких позиций услуг в один документ.
* **Финансовые функции:** Автоматический расчет общей суммы и вывод суммы прописью на украинском языке (`num2words`).

---

## Используемые технологии

| Категория | Технология | Описание |
| :--- | :--- | :--- |
| **Основной язык** | Python | |
| **Бот-фреймворк** | `aiogram` (v3+) | Асинхронный фреймворк для Telegram-ботов. |
| **Состояние** | FSMContext / MemoryStorage | Управление пользовательскими сессиями. |
| **Работа с Excel** | `openpyxl` | Чтение и запись данных в шаблонные XLSX-файлы. |
| **Конфигурация** | `python-dotenv` | Скрытие конфиденциальных данных (API-токена). |
| **Системные вызовы** | `subprocess` + `libreoffice` | Конвертация документов. |