Expense Items (expenseitems)
UUID приложения: e74e1387-9575-437e-9604-f30230041174
Название: expenseitems
Назначение
Автоматическая подстановка статьи расходов (expenseItem) в исходящие платёжные документы (paymentout, cashout) по правилам.
Модели БД
ei_data— связующая таблица настроек.ei_rule— правила назначения статьи расходов:agent_name/agent_uuid— контрагент (опционально).operand0—CONTAINS_ANYONE/CONTAINS_EVERYONE/NOT_CONTAINS_EVERYONE.project_name/project_uuid— проект (опционально).operand1— операнд для проверки description.comments— массив подстрок для проверкиdescription.operand2— операнд для проверки paymentPurpose.purposes— массив подстрок для проверкиpaymentPurpose.expenseitem_name/expenseitem_uuid— статья расходов.
Правила поддерживают логику: контрагент AND проект AND (description OR/AND paymentPurpose).
Поток webhook
POST /<uid>/webhook-processor— ставит задачуsave_webhook.POST /<uid>/internal-webhook— создаётExpenseitems(events=..., account_uid=...).init(), затемrun().
Бизнес-логика
Сервис src/services/expenseitems/core.py (экспортится через __init__.py):
- Загружает правила из БД.
- Для каждого события получает документ (paymentout / cashout).
- Применяет правила: проверяет контрагента, проект, description, paymentPurpose.
- Обновляет документ, подставляя expenseItem.
Доступен ручной перезапуск за определённую дату через GUI.
GUI (NiceGUI)
Страница: src/endpoints/main/expenseitems.py
Таблица правил с колонками: контрагент, проект, комментарий, назначение платежа, статья расходов. Кнопка ручного запуска по дате.