Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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,
    )
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
 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
Ejemplo n.º 13
0
 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)