Skip to content

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
Таблица правил с колонками: контрагент, проект, комментарий, назначение платежа, статья расходов. Кнопка ручного запуска по дате.