def post_expense(): if (request.is_json): try: content = request.get_json() except: logger.error("Cannot parse JSON request: {}".format( traceback.format_exc())) return Response('{"message": "Cannot parse JSON request"}', status=400, mimetype='application/json') else: logger.error("Received request body is not JSON") return Response('{"message": "Received request body is not JSON"}', status=400, mimetype='application/json') if expenses.add_expense(content, db_params): return Response('{"message": "OK"}', status=200, mimetype='application/json') else: logger.error("Cannot add expense to DB") return Response('{"message": "Cannot add expense to DB"}', status=500, mimetype='application/json')
async def add_expenses(message: types.message) -> None: '''add to new expenses''' try: ratio = expenses.ratio_balance() print(ratio) expenses.check_balance_repleh() answer_database = expenses.check_to_balance() if answer_database.month <= 0: await message.answer( 'У вас закончился баланс , вы не можете делать покупки') else: if ratio <= 20.0: await message.answer('У вас мало денег следите за балансом') try: message_user = expenses.add_expense(message.text) await message.answer('Добвалена покупка :' + '\n' + 'Название :' + str(message_user.name) + '\n' + 'Стоимость : ' + str(message_user.amount) + 'руб' + '\n' + 'Дата :' + str(message_user.data) + '\n' + 'Текст сообщения:' + str(message_user.text) + '\n') except: raise exceptions.NoCorrectMessage( await message.answer('Вы неправильно ввели данные')) except: try: message_user = expenses.add_expense(message.text) await message.answer('Добвалена покупка :' + '\n' + 'Название :' + str(message_user.name) + '\n' + 'Стоимость : ' + str(message_user.amount) + 'руб' + '\n' + 'Дата :' + str(message_user.data) + '\n' + 'Текст сообщения:' + str(message_user.text) + '\n') except: raise exceptions.NoCorrectMessage( await message.answer('Вы неправильно ввели данные'))
async def add_expense(message: types.Message): try: expense = expenses.add_expense(message.text) except exceptions.NotCorrectMessage as e: await message.answer(str(e)) return answer_message = ( f"Добавлены траты {expense.amount} руб на {expense.category_name}.\n\n" f"{expenses.get_today_statistics()}") await message.answer(answer_message)
async def add_expense(message: types.Message): try: expense = expenses.add_expense(message.text) except exceptions.NotCorrectMessage as e: await message.answer(str(e)) return answer_message = ( f'Expense added: {expense.amount} $ for {expense.category_name}.\n\n' f'{expenses.get_today_statistics()}') await message.answer(answer_message)
async def add_expense(message: types.Message): """Adding new expense""" try: expense = expenses.add_expense(message.text) except exceptions.NotCorrectMessage as e: await message.answer(str(e)) return answer_message = ( f"Added expenses {expense.amount} hrn on {expense.category_name}.\n\n" f"{expenses.get_today_statistics()}") await message.answer(answer_message)
async def add_expense(message: types.Message): """Добавляет новый расход""" try: expense = expenses.add_expense(message.text) except exceptions.NotCorrectMessage as e: await message.answer(str(e)) return answer_message = ( f"Добавлены траты {expense.amount} грн на {expense.category_name}.\n\n" f"{expenses.get_today_statistics()}\n\n" "Вернуться назад: /back") await message.answer(answer_message)
async def add_expense(message: types.Message): """Добавляет новый расход""" usr_id = int(message.from_user.id) try: expense = expenses.add_expense(message.text, usr_id) except exceptions.NotCorrectMessage as e: await message.answer(str(e)) return answer_message = ( f"Добавлены траты {expense.amount} руб на {expense.category_name}.\n\n" ) await message.answer(answer_message)
async def add_expense(message: types.Message): """ Adds an expense to the needed budget """ budget_name = message.from_user.username + "_personal" budget_id = budgets.get_budget_id(budget_name) try: expense = expenses.add_expense(message.text, message.from_user.id, budget_id) except exceptions.NotCorrectMessage as e: await message.answer(str(e)) return answer_text = ( f"В бюджет \"{budget_name}\" " f"добавлена трата {expense.amount} руб. на {expense.category_name}.\n") await message.answer(answer_text)
async def add_expense(message: types.Message): """Добавляет новый расход""" #try: print(f'!!!message {message}') expense = add_expense(message.text) #except NotCorrectMessage as e: # await message.answer(str(e)) # return print(f'!!!expense {expense}') await expense answer_message = ( f"Добавлены траты {expense.amount} руб на {expense.category_name}.\n\n" f"{get_today_statistics()}") #await bot.send_message(message.chat.id, answer_message) await message.answer(answer_message)
async def add_expense(message: types.Message): """Добавляет новый расход""" #check user id user_id = message.from_user.id #debug print(message.from_user.id, message.text) try: expense = expenses.add_expense(message.text, message.from_user.id) except exceptions.NotCorrectMessage as e: await message.answer(str(e)) return answer_message = ( f"Добавлены траты {expense.amount} руб на {expense.category_name}.\n\n" f"{expenses.get_today_statistics()}") await message.answer(answer_message)
def create_expense(update: Update, context: CallbackContext) -> int: """ Finishes the exchange and creates an expence """ raw_message = update.message.text try: expense = expenses.add_expense(update.effective_user.id, raw_message) except exceptions.NotCorrectMessageException as e: update.message.reply_text(str(e)) return State.REPLYING_EXPENSE_INFO update.message.reply_text("Expenses: \n" f"{raw_message} \n" "have been successfully added\n" "See latest expenses: /last\n") return ConversationHandler.END
async def add_expense(message: types.Message): """Добавляет доход/расход в базу данных""" try: loggings.lets_logging('info', 'Вызвана команда "добавить доход/расход"') text = message.text.split() if len(text) < 6: raise exceptions.IncorrectCommand wallet_name = text[2] exp_type = text[3] amount = text[4] comment = ' '.join(text[5:]) expensive = expenses.add_expense(wallet_name, exp_type.lower(), amount, comment) if expensive == exceptions.WalletNotFound: raise exceptions.WalletNotFound await message.answer( f'В "<b>{expensive.wallet}</b>" добавлен {expensive.type} {expensive.amount}', parse_mode=types.ParseMode.HTML) except Exception as e: loggings.lets_logging('warning', f'Ошибка:{e}"') await message.answer(f"{str(e)}")
async def add_expense(message: types.Message): """ Adds an expense to the needed budget """ budget_id = budgets.get_budget_id("joint") users_list = budgets.get_all_users(budget_id) try: expense = expenses.add_expense(message.text, message.from_user.id, budget_id) except exceptions.NotCorrectMessage as e: await message.answer(str(e)) return answer_text = ( f"В бюждет \"joint\" " f"добавлена трата {expense.amount} руб. на {expense.category_name}.\n") for user in users_list: if user.id == message.from_user.id: continue else: await bot.send_message(user.id, (text( bold("В бюджет \"joint\" была добавлена трата\n\n") + f"Добавил: {message.from_user.username}\n" + f"Сумма: {expense.amount}\n" + f"Категория: {expense.category_name}\n")), parse_mode=ParseMode.MARKDOWN) await message.answer(answer_text)
async def add_expense(message: types.Message): raw_message = message.text.lower().strip() if raw_message == 'январь': answer_message = expenses.get_month_statistics('01') elif raw_message == 'февраль': answer_message = expenses.get_month_statistics('02') elif raw_message == 'март': answer_message = expenses.get_month_statistics('03') elif raw_message == 'апрель': answer_message = expenses.get_month_statistics('04') elif raw_message == 'май': answer_message = expenses.get_month_statistics('05') elif raw_message == 'июнь': answer_message = expenses.get_month_statistics('06') elif raw_message == 'июль': answer_message = expenses.get_month_statistics('07') elif raw_message == 'август': answer_message = expenses.get_month_statistics('08') elif raw_message == 'сентябрь': answer_message = expenses.get_month_statistics('09') elif raw_message == 'октябрь': answer_message = expenses.get_month_statistics('10') elif raw_message == 'ноябрь': answer_message = expenses.get_month_statistics('11') elif raw_message == 'декабрь': answer_message = expenses.get_month_statistics('12') else: try: expense = expenses.add_expense(raw_message) except exceptions.NotCorrectMessage as e: await message.answer(str(e)) return answer_message = ( f"Добавлены траты {expense.amount} руб на {expense.category_name}.\n\n" f"{expenses.get_today_statistics()}") await message.answer(answer_message)
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