Example #1
0
 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)
Example #2
0
 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)
Example #3
0
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)
Example #4
0
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']:,}.")
Example #5
0
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):,}.")
Example #6
0
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']:,}.")
Example #7
0
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)
Example #8
0
 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)
Example #9
0
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']}")