def send_balance(message):
    income_sum = session.query(func.sum(Incomes.value)).scalar() or 0
    expenses_sum = session.query(func.sum(Expenses.price)).scalar() or 0
    balance = round(income_sum - expenses_sum, 2)

    bot.send_message(message.chat.id,
                     f'*{balance} грн*',
                     parse_mode='Markdown')
def send_month_expenses(message):
    last_month_date = datetime.today() - relativedelta(months=1)
    expenses = session.query(func.sum(Expenses.price)).filter(
        Expenses.created_at > last_month_date).scalar() or 0

    bot.send_message(message.chat.id,
                     f'*{expenses}* грн',
                     parse_mode='Markdown')
示例#3
0
def listener(messages):
    for m in messages:
        chat_id = m.chat.id
        user = session.query(User).filter(
            User.telegram_id == m.from_user.id).first()
        if not user:
            user = User(
                telegram_id=m.from_user.id,
                first_name=m.from_user.first_name,
                username=m.from_user.username,
            )
            session.add(user)
        message = m.text.strip()
        if message.isdigit():
            item = session.query(Item).filter(Item.code == message).first()
            if not item:
                bot.send_message(chat_id, 'Товара с таким номером нет')
            else:
                item.views = item.views + 1
                user.views = user.views + 1 if user.views else 1
                bot.send_message(chat_id, f'Ссылка на товар:\n{item.link}')
        else:
            bot.send_message(chat_id, 'Неверный код товара')
        session.commit()
def send_last_expenses(message):
    expenses = session.query(Expenses).order_by(
        Expenses.created_at.desc())[:10]
    message_to_send = [f'{expense.name.title()}' for expense in expenses]

    max_length = len(max(message_to_send, key=len))

    for i in range(len(message_to_send)):
        item = message_to_send[i]
        message_to_send[
            i] = item + f"`{(max_length - len(item)) * ' '}`" + f" *{expenses[i].price}*"

    message_to_send = '\n'.join(message_to_send)

    bot.send_message(message.chat.id, message_to_send, parse_mode='Markdown')
def send_last_incomes(message):
    incomes = session.query(Incomes).order_by(Incomes.created_at.desc())[:10]
    message_to_send = [
        f'{income.user.first_name} *{income.value}*' for income in incomes
    ]

    max_length = len(max(message_to_send, key=len))

    for i in range(len(message_to_send)):
        item = message_to_send[i]
        message_to_send[
            i] = item + f"`{(max_length - len(item)) * ' '}`" + f" {format_date(incomes[i].created_at)}"

    message_to_send = '\n'.join(message_to_send)

    bot.send_message(message.chat.id, message_to_send, parse_mode='Markdown')
def send_month_incomes(message):
    last_month_date = datetime.today() - relativedelta(months=1)
    incomes = session.query(Incomes).filter(
        Incomes.created_at > last_month_date).order_by(
            Incomes.created_at.desc())
    message_to_send = [
        f'{income.user.first_name.strip()} *{income.value}*'
        for income in incomes
    ]
    max_length = len(max(message_to_send, key=len))

    for i in range(len(message_to_send)):
        item = message_to_send[i]
        message_to_send[
            i] = item + f"`{(max_length - len(item)) * ' '}`" + f" {format_date(incomes[i].created_at)}"

    total_incomes = sum([income.value for income in incomes])
    message_to_send = '\n'.join(
        message_to_send) + f'\n\nСумма: *{total_incomes}*'

    bot.send_message(message.chat.id, message_to_send, parse_mode='Markdown')
def listener(messages):
    for m in messages:
        chat_id = m.chat.id
        user = session.query(User).filter(
            User.telegram_id == m.from_user.id).first()
        if not user:
            first_name = m.from_user.first_name
            username = m.from_user.username
            if not first_name or username:
                bot.send_message(
                    chat_id,
                    f'Error',
                )
            user = User(
                telegram_id=m.from_user.id,
                first_name=m.from_user.first_name,
                username=m.from_user.username,
            )
            session.add(user)
        add_transaction(user, m.text.lower(), chat_id)
        session.commit()