Example #1
0
async def del_expense(callback_query: types.CallbackQuery):
    """ Deletes an expense from the table expenses"""
    await bot.answer_callback_query(callback_query.id)

    row_id = int(callback_query.data[3:])
    expenses.delete_expense(row_id)
    answer = "Удалил!"
    await bot.send_message(callback_query.from_user.id, answer)
async def del_expense(message: types.Message):
    try:
        row_id = int(message.text[4:])
        expenses.delete_expense(row_id)
        answer_message = 'The transaction was deleted'
    except ValueError:
        answer_message = f'Enter valid command in format:\n/del<expense_id>'
    except exceptions.NotCorrectMessage as e:
        answer_message = str(e)
    await message.answer(answer_message)
Example #3
0
async def delete_expense(message: types.Message):
    """Deletes a single expense record by its ID"""
    row_id = int(message.text[4:])

    try:
        expenses.delete_expense(row_id)
    except NotCorrectExpenseIDToDelete as e:
        await message.answer(str(e))
        return

    await message.answer("Removed 👌")
Example #4
0
def delete_expense(expense_id):
    if expenses.delete_expense(expense_id, db_params):
        return Response('{"message": "OK"}',
                        status=200,
                        mimetype='application/json')
    else:
        logger.error("Cannot delete expense from DB")
        return Response('{"message": "Cannot delete expense from DB"}',
                        status=500,
                        mimetype='application/json')
Example #5
0
async def del_expense(message: types.Message):
    """Удаляет одну запись о расходе по её идентификатору"""
    row_id = int(message.text[4:])
    expenses.delete_expense(row_id)

    last_expenses = expenses.last()
    if not last_expenses:
        await message.answer("Удалено!\n\n"
                             "Теперь расходов нет 😇"
                             "\n\nВернуться назад: /back")
        return

    last_expenses_rows = [
        f"{expense.amount} грн. на {expense.category_name} — нажми "
        f"/del{expense.id} для удаления" for expense in last_expenses
    ]
    answer_message = ("Удалено!\n\n"
                      "Последние сохранённые траты:\n\n* " + "\n\n* " \
                      .join(last_expenses_rows) + "\n\nВернуться назад: /back")
    await message.answer(answer_message)
Example #6
0
async def del_expenses(message: types.message) -> None:
    for i in DICTIONARY_LIST:
        if i['name'] == message.text:
            try:
                answer_databse = expenses.delete_expense(i['expenses'])
                print('delete item to database ')
                await message.answer(answer_databse.message)

            except:
                raise exceptions.NoCorrectMessage(
                    await message.answer('Вы неправильно ввели данные'))
Example #7
0
async def del_expense(message: types.Message):
    """Удаляет одну запись о расходе по её идентификатору"""
    row_id = int(message.text[4:])
    expenses.delete_expense(row_id)
    answer_message = "Удалил"
    await message.answer(answer_message)
Example #8
0
async def del_expense(message: types.Message):
    """Видаляє один запис про витрату по її ідентифікатору"""
    row_id = int(message.text[4:])
    expenses.delete_expense(row_id)
    answer_message = "Удалил"
    await message.answer(answer_message)
Example #9
0
async def del_expense(message: types.Message):
    """Deletes one expense record by its identifier"""
    row_id = int(message.text[4:])
    expenses.delete_expense(row_id)
    answer_message = "Expense Deleted"
    await message.answer(answer_message)
Example #10
0
def processing_command(command: str, user_id: int) -> str:
    """
    Функция определения полученной команды и получения соответствующего ей ответа
    Обрабатывает команды (через слэш):
    - старт, помощь - вывод справки
    - [число] [группа] (300 такси) - внос расхода
    - удалить [идентификатор_расхода] (удалить 1) - удаление расхода
    - категории - вывод списка всех категорий и соответствующих им алиасов (псевдонимов)
    - день - вывод статистики за день
    - месяц - вывод статистики за месяц
    - затраты - вывод последних 10 затрат
    - лимит - вывод ежедневного лимита
    - лимит [число] (лимит 2000) - изменение ежедневного лимита

    :param command: команда
    :param user_id: идентификатор пользователя в VK
    :return: ответ на команду
    """

    template_add_expense = r"^/(\d+[\.\d+|,\d+]*)р? (\w+)"
    template_delete_expense = r"/удалить (\d)"
    template_get_limit = r"^/лимит$"
    template_change_limit = r"^/лимит (\d+[\.\d+|,\d+]*)р?$"

    if command in ["/старт", "/помощь"]:
        return get_welcome_message()

    elif search(template_add_expense, command):
        expense = expenses.add_expense(message=command, user_id=user_id)

        answer_message = f"{expense.amount}р добавлено в категорию {expense.category_name}\n"
        return answer_message

    elif search(template_delete_expense, command):
        expense_id = findall(template_delete_expense, command)[0]
        expenses.delete_expense(expense_id=expense_id)

        answer_message = "Расход удалён"
        return answer_message

    elif command in ["/категории"]:
        answer_message = get_categories()
        return answer_message

    elif command in ["/день"]:
        answer_message = expenses.get_today_statistics(user_id=user_id)
        return answer_message

    elif command in ["/месяц"]:
        answer_message = expenses.get_month_statistics(user_id=user_id)
        return answer_message

    elif command in ["/затраты"]:
        last_expenses = expenses.last_expenses(user_id=user_id)
        answer_message = ""
        if not last_expenses:
            answer_message = "Расходы ещё не заведены"
        else:
            last_expenses_rows = [
                f"{expense.amount} руб. на {expense.category_name} — введите "
                f"\"/удалить {expense.id}\" для удаления"
                for expense in last_expenses
            ]

            answer_message = "Последние сохранённые траты:\n\n— " \
                             "\n\n— ".join(last_expenses_rows)

        return answer_message

    elif search(template_get_limit, command):
        daily_limit = expenses.get_daily_limit(user_id=user_id)

        answer_message = f"Ваш дневной лимит: {daily_limit}"
        return answer_message

    elif search(template_change_limit, command):
        new_daily_limit = findall(template_change_limit, command)[0]
        if expenses.change_daily_limit(new_daily_limit=new_daily_limit,
                                       user_id=user_id):
            answer_message = "Суточнный лимит изменён"
        else:
            answer_message = "Ошибка! Суточный лимит не изменён"

        return answer_message

    else:
        answer_message = "Ошибка! Неверная команда"
        return answer_message
async def del_expense(message: types.Message):
    row_id = int(message.text[4:])
    expenses.delete_expense(row_id)
    answer_message = "Удалил"
    await message.answer(answer_message)