aboutsummaryrefslogtreecommitdiff
path: root/handlers/user
diff options
context:
space:
mode:
Diffstat (limited to 'handlers/user')
-rw-r--r--handlers/user/info.py4
-rw-r--r--handlers/user/invoices.py16
-rw-r--r--handlers/user/pay_invoice.py5
-rw-r--r--handlers/user/payments.py12
4 files changed, 18 insertions, 19 deletions
diff --git a/handlers/user/info.py b/handlers/user/info.py
index 9776e7e..587925f 100644
--- a/handlers/user/info.py
+++ b/handlers/user/info.py
@@ -47,8 +47,8 @@ ADMIN_COMMANDS = COMMANDS + [
47 description="Создать новый счёт на оплату", 47 description="Создать новый счёт на оплату",
48 ), 48 ),
49 BotCommand( 49 BotCommand(
50 command="add_user", 50 command="users",
51 description="дть пользователя", 51 description="ра пользователями",
52 ), 52 ),
53 BotCommand( 53 BotCommand(
54 command="suggest_list", 54 command="suggest_list",
diff --git a/handlers/user/invoices.py b/handlers/user/invoices.py
index cc071bb..15785fb 100644
--- a/handlers/user/invoices.py
+++ b/handlers/user/invoices.py
@@ -18,7 +18,7 @@ from libs.invoice import (
18 get_payment_status, 18 get_payment_status,
19) 19)
20from libs.msg import eclipse_text 20from libs.msg import eclipse_text
21from libs.user import mention 21from libs.user import load_user_cache
22from models import Invoice, PaymentStatus, User 22from models import Invoice, PaymentStatus, User
23from models.callback_data import InvoiceItemClb, InvoicePageClb, PayInvoiceClb 23from models.callback_data import InvoiceItemClb, InvoicePageClb, PayInvoiceClb
24 24
@@ -166,14 +166,14 @@ async def item(
166 ] 166 ]
167 ) 167 )
168 168
169 await clb.message.edit_text(text_template.format("..."), reply_markup=reply_markup)
170 user_status = [] 169 user_status = []
171 for user_id, s in invoice_payments.user_status.items(): 170 for user_id, s in invoice_payments.user_status.items():
172 chat = await bot.get_chat(user_id) 171 user_cache = await load_user_cache(bot, user_id)
173 user_status.append(f"{PAYMENT_STATUS[s]} - {mention(chat)}") 172 user_status.append(f"{PAYMENT_STATUS[s]} - {user_cache.mention}")
174 await clb.message.edit_text( 173
175 text_template.format("\n".join(user_status)), 174 await clb.message.edit_text(
176 reply_markup=reply_markup, 175 text_template.format("\n".join(user_status)),
177 ) 176 reply_markup=reply_markup,
177 )
178 178
179 await clb.answer() 179 await clb.answer()
diff --git a/handlers/user/pay_invoice.py b/handlers/user/pay_invoice.py
index db75f47..d7809cd 100644
--- a/handlers/user/pay_invoice.py
+++ b/handlers/user/pay_invoice.py
@@ -19,7 +19,6 @@ from sqlalchemy import and_, select
19from sqlalchemy.ext.asyncio import AsyncSession 19from sqlalchemy.ext.asyncio import AsyncSession
20 20
21from libs.fsm import get_data, set_data 21from libs.fsm import get_data, set_data
22from libs.user import mention
23from models import ( 22from models import (
24 Invoice, 23 Invoice,
25 Payment, 24 Payment,
@@ -27,6 +26,7 @@ from models import (
27 ReceiptFile, 26 ReceiptFile,
28 ReceiptFileType, 27 ReceiptFileType,
29 User, 28 User,
29 UserCache,
30 UserRole, 30 UserRole,
31) 31)
32from models.callback_data import PayInvoiceClb, PaymentStatusClb 32from models.callback_data import PayInvoiceClb, PaymentStatusClb
@@ -112,6 +112,7 @@ async def receipt(
112 bot: Bot, 112 bot: Bot,
113 state: FSMContext, 113 state: FSMContext,
114 session: AsyncSession, 114 session: AsyncSession,
115 user_cache: UserCache,
115) -> None: 116) -> None:
116 if msg.document is not None: 117 if msg.document is not None:
117 receipt_file = ReceiptFile( 118 receipt_file = ReceiptFile(
@@ -173,7 +174,7 @@ async def receipt(
173 try: 174 try:
174 await bot.send_message( 175 await bot.send_message(
175 admin_id, 176 admin_id,
176 f"Новое подтверждение оплаты:\nПользователь: {mention(msg.chat)}", 177 f"Новое подтверждение оплаты:\nПользователь: {user_cache.mention}",
177 ) 178 )
178 await receipt_file.send(bot, admin_id, reply_markup=reply_markup) 179 await receipt_file.send(bot, admin_id, reply_markup=reply_markup)
179 except TelegramAPIError as e: 180 except TelegramAPIError as e:
diff --git a/handlers/user/payments.py b/handlers/user/payments.py
index 87ea236..e15a882 100644
--- a/handlers/user/payments.py
+++ b/handlers/user/payments.py
@@ -15,13 +15,13 @@ from sqlalchemy.sql.functions import count
15 15
16from libs.invoice import get_payment_status 16from libs.invoice import get_payment_status
17from libs.msg import eclipse_text 17from libs.msg import eclipse_text
18from libs.user import mention 18from libs.user import load_user_cache
19from models import Invoice, Payment, PaymentStatus, User 19from models import Invoice, Payment, PaymentStatus, User
20from models.callback_data import ( 20from models.callback_data import (
21 PayInvoiceClb,
21 PaymentItemClb, 22 PaymentItemClb,
22 PaymentPageClb, 23 PaymentPageClb,
23 PaymentStatusClb, 24 PaymentStatusClb,
24 PayInvoiceClb,
25) 25)
26 26
27router = Router(name="payments") 27router = Router(name="payments")
@@ -213,7 +213,7 @@ async def item(
213 213
214 invoice = await session.get(Invoice, payment.invoice_id) 214 invoice = await session.get(Invoice, payment.invoice_id)
215 assert invoice is not None 215 assert invoice is not None
216 chat = await bot.get_chat(payment.user_id) 216 user_cache = await load_user_cache(bot, payment.user_id)
217 217
218 status_buttons = [] 218 status_buttons = []
219 if payment.status != PaymentStatus.ACCEPTED: 219 if payment.status != PaymentStatus.ACCEPTED:
@@ -242,12 +242,10 @@ async def item(
242 text="Назад к выбору", 242 text="Назад к выбору",
243 callback_data=PaymentPageClb(page=callback_data.page).pack(), 243 callback_data=PaymentPageClb(page=callback_data.page).pack(),
244 ) 244 )
245 reply_markup = InlineKeyboardMarkup( 245 reply_markup = InlineKeyboardMarkup(inline_keyboard=[status_buttons, [back_button]])
246 inline_keyboard=[status_buttons, [back_button]]
247 )
248 246
249 caption = ( 247 caption = (
250 f"Платёж от {mention(chat)}\n" 248 f"Платёж от {user_cache.mention}\n"
251 f"Счёт: {eclipse_text(invoice.message.text, 30)}\n" 249 f"Счёт: {eclipse_text(invoice.message.text, 30)}\n"
252 f"Дата: {payment.datetime.strftime('%d %b %y г.')}\n" 250 f"Дата: {payment.datetime.strftime('%d %b %y г.')}\n"
253 f"Статус: {PAYMENT_STATUS[payment.status]}" 251 f"Статус: {PAYMENT_STATUS[payment.status]}"