aboutsummaryrefslogtreecommitdiff
path: root/handlers/admin
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2026-03-26 16:23:52 +0300
committerTolmachev Igor <me@igorek.dev>2026-03-26 16:23:52 +0300
commit9c905f22de4fa2e2f60ea9d473c14cb075a244e2 (patch)
tree366fa6c5fb5bbe1d29e383effa7df816cadf22a4 /handlers/admin
parent4d0f8a48502dfa6bc7e9b39444573fe7377bdfce (diff)
downloadvpn_manager_bot-9c905f22de4fa2e2f60ea9d473c14cb075a244e2.tar.gz
vpn_manager_bot-9c905f22de4fa2e2f60ea9d473c14cb075a244e2.zip
Add invoices command
Diffstat (limited to 'handlers/admin')
-rw-r--r--handlers/admin/new_invoice.py4
-rw-r--r--handlers/admin/payment_status.py8
2 files changed, 8 insertions, 4 deletions
diff --git a/handlers/admin/new_invoice.py b/handlers/admin/new_invoice.py
index 43e47cb..f532bff 100644
--- a/handlers/admin/new_invoice.py
+++ b/handlers/admin/new_invoice.py
@@ -18,7 +18,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
18 18
19from libs.fsm import get_data, set_data 19from libs.fsm import get_data, set_data
20from libs.msg import send_invoice 20from libs.msg import send_invoice
21from models import Invoice, RichText, User 21from models import Invoice, RichText, User, UserRole
22 22
23router = Router(name="new_invoice") 23router = Router(name="new_invoice")
24 24
@@ -59,7 +59,7 @@ async def create(
59 state: FSMContext, 59 state: FSMContext,
60 session: AsyncSession, 60 session: AsyncSession,
61) -> None: 61) -> None:
62 users = await session.scalars(select(User.id).where(User.id != msg.chat.id)) 62 users = await session.scalars(select(User.id).where(User.role != UserRole.ADMIN))
63 data = await get_data(state, NewInvoiceData) 63 data = await get_data(state, NewInvoiceData)
64 64
65 if data.rich_text is None: 65 if data.rich_text is None:
diff --git a/handlers/admin/payment_status.py b/handlers/admin/payment_status.py
index 23bde15..8784ac4 100644
--- a/handlers/admin/payment_status.py
+++ b/handlers/admin/payment_status.py
@@ -11,14 +11,18 @@ router = Router(name="payment_status")
11 11
12 12
13async def accept(clb: CallbackQuery, bot: Bot, payment: Payment) -> None: 13async def accept(clb: CallbackQuery, bot: Bot, payment: Payment) -> None:
14 assert clb.message is not None
15
14 payment.status = PaymentStatus.ACCEPTED 16 payment.status = PaymentStatus.ACCEPTED
15 await bot.send_message(clb.from_user.id, "Оплата пользователя подтверждена.") 17 await clb.message.reply("Оплата пользователя подтверждена.")
16 await bot.send_message(payment.user_id, "Файл подтверждения оплаты принят.") 18 await bot.send_message(payment.user_id, "Файл подтверждения оплаты принят.")
17 19
18 20
19async def reject(clb: CallbackQuery, bot: Bot, payment: Payment) -> None: 21async def reject(clb: CallbackQuery, bot: Bot, payment: Payment) -> None:
22 assert clb.message is not None
23
20 payment.status = PaymentStatus.REJECTED 24 payment.status = PaymentStatus.REJECTED
21 await bot.send_message(clb.from_user.id, "Оплата пользователя отклонена.") 25 await clb.message.reply("Оплата пользователя отклонена.")
22 26
23 callback_data = PayInvoiceClb(invoice_id=payment.invoice_id).pack() 27 callback_data = PayInvoiceClb(invoice_id=payment.invoice_id).pack()
24 await bot.send_message( 28 await bot.send_message(