def wrapper(message: types.Message): user_id = h.cut_command(message.text) user = db.get_user(user_id) if not user: bot.send_message(ADMIN_ID, "Нет пользователя с таким ID.") return user_func(user)
def wrapper(message: types.Message): user = db.get_user(message.from_user.id) if not user: register_user(message) elif user['username'] != message.from_user.username: info = {"username": message.from_user.username} db.update_user(message.from_user.id, info) user_func(message)
def payment_application(message: types.Message): user = db.get_user(message.from_user.id) if not user['debt']: bot.send_message(message.from_user.id, "У вас нет активных долгов.") return msg = bot.send_message( message.from_user.id, "Какую сумму из вашего долга вы оплатили?\n" f"{h.BACK}") bot.register_next_step_handler(msg, make_request, False)
def decline_application(application: dict): info = {"answer_date": h.get_current_time()} db.update_application(application['id'], info) bot.send_message(ADMIN_ID, f"Вы отклонили заявку.") user = db.get_user(application['user_id']) action = "получение" if application['value'] > 0 else "погашение" bot.send_message( user['id'], f"Ваша заявка на {action} суммы в размере {abs(application['value']):,} отклонена.\n" f"Ваш общий долг составляет {user['debt']:,}.")
def get_current_debt(message: types.Message): user = db.get_user(message.from_user.id) if not user['debt']: bot.send_message(message.from_user.id, "У вас нет активных долгов.") else: bot.send_message(message.from_user.id, f"Сумма долга: {user['debt']:,}.") value = db.get_pending_value(message.from_user.id) if value: application_status = "Сумма в долг" if value > 0 else "Оплаченная сумма" bot.send_message( message.from_user.id, f"{application_status} на рассмотрении: {abs(value):,}.")
def approve_application(application: dict): info = { "answer_date": h.get_current_time(), "approved": True, } db.update_application(application['id'], info) bot.send_message(ADMIN_ID, f"Вы одобрили заявку.") user = db.get_user(application['user_id']) info = {"debt": user['debt'] + application['value']} db.update_user(user['id'], info) action = "получение" if application['value'] > 0 else "погашение" bot.send_message( user['id'], f"Ваша заявка на {action} суммы в размере {abs(application['value']):,} одобрена.\n" f"Ваш общий долг составляет {user['debt'] + application['value']:,}.")
def start_message(message: types.Message): if message.from_user.id == ADMIN_ID: bot.send_message(message.from_user.id, f"С возвращением, НурБанк!") show_commands(message) return user = db.get_user(message.from_user.id) if user: bot.send_message(message.from_user.id, f"С возвращением в НурБанк, {user['nickname']}!") show_commands(message) return register_user(message) bot.send_message( message.from_user.id, f"Приветствуем вас в НурБанке, {message.from_user.username}!") show_commands(message)
def wrapper(user_id: int, value: int, is_loan: bool): if value < 0: msg = bot.send_message( user_id, "Вы ввели отрицательную сумму.\n" "Введите сумму больше нуля.\n" f"{h.BACK}") bot.register_next_step_handler(msg, wrapper, is_loan) return elif not is_loan: user = db.get_user(user_id) if user['debt'] < value: msg = bot.send_message( user_id, "Вы указали сумму, превышающую ваш нынешний долг.\n" "Введите сумму поменьше.\n" f"Ваш долг: {user['debt']}\n" f"{h.BACK}") bot.register_next_step_handler(msg, wrapper, is_loan) return money_func(user_id, value, is_loan)
def make_request(user_id: int, value: int, is_loan: bool): if is_loan: message_to_user = f"Ваша заявка на получение долга в размере {value:,} отправлена на рассмотрение." message_to_admin = "запросил(-а) в долг сумму" else: message_to_user = f"Ваше уведомление о совершении оплаты в размере {value:,} находится на проверке." message_to_admin = "уменьшил(-а) сумму долга на" value = -value info = { "user_id": user_id, "value": value, "request_date": h.get_current_time(), "is_admin": False, } application = db.create_application(info) bot.send_message(user_id, f"{message_to_user}\n" f"Отмена заявки: /cancel") user = db.get_user(user_id) bot.send_message( ADMIN_ID, f"{h.get_user_full_name(**user)} {message_to_admin} {abs(value):,}\n" f"Одобрить: /approve_{application['id']}\n" f"Отклонить: /decline_{application['id']}")