def check_exist_transaction(self, session): user = User.get_user_by_telegram_user_id(session, self.telegram_user_id) consumption = session.query(Consumption).filter( Consumption.user_id == user.id, Consumption.id == self.transaction_id).first() return True if consumption else False
def make_text_list_categories(session, telegram_user_id): user = User.get_user_by_telegram_user_id(session, telegram_user_id) categories_text = CategoryEarning.get_all_categories_by_text( session=session, user_id=user.id) result = '' for index, text in enumerate(categories_text): result += f'{index+1}. {text}\n' return result
def check_exist_transaction(self, session): user = User.get_user_by_telegram_user_id(session, self.telegram_user_id) earning = session.query(Earning).filter( Earning.user_id == user.id, Earning.id == self.transaction_id ).first() return True if earning else False
def to_main_menu(update, context): user = User.get_user_by_telegram_user_id(session, update.message.from_user.id) limits = session.query(Limit).filter(Limit.user_id == user.id).all() update.message.reply_text(text=text_main_menu(session, limits, datetime.datetime.now()), reply_markup=get_keyboard_main_menu(limits), parse_mode=telegram.ParseMode.HTML) return States.TO_MAIN_MENU
def send_message_choose_limit(update, context): user = User.get_user_by_telegram_user_id(session, update.message.from_user.id) limits = session.query(Limit).filter(Limit.user_id == user.id).all() text, ids_limits = make_text_and_dict_limits(session, limits) context.user_data['ids_limits'] = ids_limits update.message.reply_text( text=text, reply_markup=make_keyboard_choose_limits(ids_limits), parse_mode=telegram.ParseMode.HTML)
def to_add_category(update: Update, context: CallbackContext): context.user_data['back_func'] = to_add_limit user = User.get_user_by_telegram_user_id(session, update.message.from_user.id) categories = CategoryConsumption.get_all_categories(session, user.id) update.message.reply_text( text=text_choose_category(), reply_markup=get_keyboard_category_limit(categories), parse_mode=telegram.ParseMode.HTML) return States.TO_CHOOSE_ADD_CATEGORY_LIMIT
def to_edit_category(update, context): context.user_data['back_func'] = to_choose_action_edit user = User.get_user_by_telegram_user_id(session, update.message.from_user.id) categories = session.query(CategoryConsumption).filter( CategoryConsumption.user_id == user.id).all() update.message.reply_text( text=text_choose_edit_category(), reply_markup=get_keyboard_category_limit(categories)) return States.TO_EDIT_CATEGORY
def handler(update: Update, context: CallbackContext): with session_scope() as session: user = User.get_user_by_telegram_user_id(session, update.message.from_user.id) text = make_text_today(session, datetime.datetime.now(), user) bot.send_message( chat_id=update.message.from_user.id, text=text, parse_mode=telegram.ParseMode.HTML, )
def handler_edit_category(update, context): text = update.message.text user = User.get_user_by_telegram_user_id(session, update.message.from_user.id) if text == text_button_general_category: context.user_data['category_limit'] = None return edit_category(update, context) elif text in CategoryConsumption.get_all_categories_by_text( session, user.id): context.user_data['category_limit'] = update.message.text return edit_category(update, context)
def add_limit_to_database(update, context): user = User.get_user_by_telegram_user_id(session, update.message.from_user.id) type_limit = context.user_data['type_limit'] if context.user_data['category_limit'] is None: category_limit = None else: category = session.query(CategoryConsumption).filter( CategoryConsumption.category == context.user_data['category_limit'], CategoryConsumption.user_id == user.id).first() category_limit = category.id amount_money = context.user_data['amount_money'] Limit.add(session, user_id=user.id, type_limit=type_limit.value, category_id=category_limit, amount_money=amount_money) update.message.reply_text(text=text_success_add_limit()) return to_main_menu(update, context)
def edit_category(update, context): user = User.get_user_by_telegram_user_id(session, update.message.from_user.id) limit_to_edit = session.query(Limit).get( context.user_data['id_limit_to_edit']) old_category = get_text_limit_category(session, limit_to_edit) new_category = 'Общий' if context.user_data[ 'category_limit'] is None else context.user_data['category_limit'] if context.user_data['category_limit'] is None: limit_to_edit.category_id = None else: category = session.query(CategoryConsumption).filter( CategoryConsumption.user_id == user.id, CategoryConsumption.category == context.user_data['category_limit']).first() limit_to_edit.category_id = category.id session.commit() update.message.reply_text(text=text_edit_category_success( old_category, new_category), parse_mode=telegram.ParseMode.HTML) return to_choose_action_edit(update, context)
def check_any_categories(session, telegram_user_id): categories = session.query(CategoryEarning).filter( CategoryEarning.user_id == User.get_user_by_telegram_user_id( session, telegram_user_id).id).all() return True if categories else False
def add_category_in_db(session, new_category, telegram_user_id): user = User.get_user_by_telegram_user_id(session, telegram_user_id) CategoryEarning.add_category(session, user.id, new_category)