def main_sync(call): if authorized(message=call.message, bot=bot): User.update(status=call.data).where(User.telegram_id == call.message.chat.id).execute() bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=bot_messages_text.get('getting_equipments')) values = users[f'{call.message.chat.id}'].get('operator').get_equipments() for i in range(len(values)): item = values[i] if i % 50 == 9: bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=bot_messages_text.get('process_equipment_list').format(cur_item=i, sum_item=len(values))) if len(item) < 7: for j in range(len(item), 7): item.append('') Equipment.get_or_create(it_id=item[0], defaults={ 'pos_in_buh': item[1], 'invent_num': item[2], 'type': item[3], 'mark': item[4], 'model': item[5], 'serial_num': item[6]}) bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=bot_messages_text.get('equipment_list_getting_complete'))
def show_equipments(found_items, bot, message): if len(found_items) != 0: users[f'{message.chat.id}']['invent_num_for_show_again'] = found_items[0].invent_num movement = None for item in found_items: temp_movements = item.movements if temp_movements.count() > 0: for temp in temp_movements: movement = temp else: movement = Movement.create(it_id=item, korpus='N/A', room='N/A') item_inline_keyboard = InlineKeyboardMarkup() item_inline_keyboard.row( InlineKeyboardButton(text=bot_messages_text.get('change_values'), callback_data=callbacks.get('main_edit').format(it_id=item.it_id))) item_inline_keyboard.row( InlineKeyboardButton(text=bot_messages_text.get('move'), callback_data=callbacks.get('main_move').format(it_id=item.it_id))) bot.send_message(chat_id=message.chat.id, text=found_item_template(item, movement), reply_markup=item_inline_keyboard) else: bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('item_not_found'))
def main_move(call): if authorized(message=call.message, bot=bot): User.update(status=call.data).where(User.telegram_id == call.message.chat.id).execute() bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=bot_messages_text.get('enter_korpus_num'), reply_markup=korpusa_keyboard)
def main_search(call): if authorized(message=call.message, bot=bot): User.update(status=MAIN_SEARCH).where(User.telegram_id == call.message.chat.id).execute() bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=bot_messages_text.get('searching_parameter'), reply_markup=search_keyboard)
def authorized(message: Message, bot: TeleBot): user, created = User.get_or_create(telegram_id=message.chat.id, defaults={'status': IN_REGISTRATION_PROCCESS, 'authorized': 0}) if user.authorized == 0 and user.status == IN_REGISTRATION_PROCCESS: bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('start_registration')) User.update(status=FINISH_REGISTRATION).where(User.telegram_id == message.chat.id).execute() return False if user.authorized == 0 and user.status == FINISH_REGISTRATION: if message.text == USER_SECRET: User.update(status='', authorized=1).where(User.telegram_id == message.chat.id).execute() bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('auth_ok'), reply_markup=go_main_keyboard) return True else: bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('wrong_auth_key')) return False if user.authorized == 1: return True
def choose_uk(call): if authorized(message=call.message, bot=bot): if User.get(telegram_id=call.message.chat.id).status.split('_')[0] == 'MOVE': uk_num = call.data.split('_')[1] it_id = User.get(telegram_id=call.message.chat.id).status.split('_')[1] movement = Movement.create(it_id=Equipment.get(it_id=it_id), korpus=f'УК {uk_num}', room='N/A') # movement.update(korpus=f'УК {uk_num}').execute() # Movement.create(it_id=it_id, # korpus=f'УК {uk_num}', # room='___') bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=bot_messages_text.get('enter_room_num'))
def plain_text_message(message: Message): if authorized(message=message, bot=bot): # для вновь подключенного пользователя свой синхронизатор с Google-таблицей if users.get(f'{message.chat.id}') is None: users[f'{message.chat.id}'] = { 'operator': GoogleSynchronizer(spreadsheet_id=SPREADSHEET_ID, credentials_file_name=CREDENTIAL_FILE) } # Обработка нажатия кнопки показа основных функций if message.text == main_reply_keyboard_text: User.update(status='').where(User.telegram_id == message.chat.id).execute() bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('show_functions'), reply_markup=main_inline_keyboard) return # Поиск по инвентарному или серийному номеру if User.get(telegram_id=message.chat.id).status == INVENT_SEARCH or \ User.get(telegram_id=message.chat.id).status == SERIAL_SEARCH: found_items = None temp_item = None if User.get(telegram_id=message.chat.id).status == INVENT_SEARCH: bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('invent_search').format(invent_num=message.text)) found_items = Equipment.select().where(Equipment.invent_num == message.text) elif User.get(telegram_id=message.chat.id).status == SERIAL_SEARCH: bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('serial_search').format(serial_num=message.text)) found_items = Equipment.select().where(Equipment.serial_num == message.text) show_equipments(found_items, bot, message) # Выполнить перемещение в базе if User.get(telegram_id=message.chat.id).status.split('_')[0] == 'MOVE': Movement.update(room=message.text). \ where(Movement.it_id == Equipment.get(it_id=User.get(telegram_id=message.chat.id).status.split('_')[1]) and Movement.room == 'N/A'). \ execute() users[f'{message.chat.id}'].get('operator').add_new_movement( id=User.get(telegram_id=message.chat.id).status.split('_')[1]) bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('complete_move')) found_items = Equipment.select().where( Equipment.invent_num == users[f'{message.chat.id}']['invent_num_for_show_again']) show_equipments(found_items, bot, message) if User.get(telegram_id=message.chat.id).status.split('_')[0] == 'edit-type': Equipment.update(type=message.text). \ where(Equipment.it_id == User.get(telegram_id=message.chat.id).status.split('_')[1]). \ execute() users[f'{message.chat.id}'].get('operator').edit_in_table( item=Equipment.get(Equipment.it_id == User.get(telegram_id=message.chat.id).status.split('_')[1])) bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('edit_complete')) found_items = Equipment.select().where( Equipment.invent_num == users[f'{message.chat.id}']['invent_num_for_show_again']) show_equipments(found_items, bot, message) if User.get(telegram_id=message.chat.id).status.split('_')[0] == 'edit-mark': Equipment.update(mark=message.text). \ where(Equipment.it_id == User.get(telegram_id=message.chat.id).status.split('_')[1]). \ execute() users[f'{message.chat.id}'].get('operator').edit_in_table( item=Equipment.get(Equipment.it_id == User.get(telegram_id=message.chat.id).status.split('_')[1])) bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('edit_complete')) found_items = Equipment.select().where( Equipment.invent_num == users[f'{message.chat.id}']['invent_num_for_show_again']) show_equipments(found_items, bot, message) if User.get(telegram_id=message.chat.id).status.split('_')[0] == 'edit-model': Equipment.update(model=message.text). \ where(Equipment.it_id == User.get(telegram_id=message.chat.id).status.split('_')[1]). \ execute() users[f'{message.chat.id}'].get('operator').edit_in_table( item=Equipment.get(Equipment.it_id == User.get(telegram_id=message.chat.id).status.split('_')[1])) bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('edit_complete')) found_items = Equipment.select().where( Equipment.invent_num == users[f'{message.chat.id}']['invent_num_for_show_again']) show_equipments(found_items, bot, message) if User.get(telegram_id=message.chat.id).status.split('_')[0] == 'edit-serial': Equipment.update(serial_num=message.text). \ where(Equipment.it_id == User.get(telegram_id=message.chat.id).status.split('_')[1]). \ execute() users[f'{message.chat.id}'].get('operator').edit_in_table( item=Equipment.get(Equipment.it_id == User.get(telegram_id=message.chat.id).status.split('_')[1])) bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('edit_complete')) found_items = Equipment.select().where( Equipment.invent_num == users[f'{message.chat.id}']['invent_num_for_show_again']) show_equipments(found_items, bot, message) User.update(status='').where(User.telegram_id == message.chat.id).execute()
def start(message: Message): if authorized(message=message, bot=bot): bot.send_message(chat_id=message.chat.id, text=bot_messages_text.get('welcome_back'), reply_markup=go_main_keyboard)
def main_edit(call): if authorized(message=call.message, bot=bot): User.update(status=call.data).where(User.telegram_id == call.message.chat.id).execute() bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=bot_messages_text.get('enter_new_serial'))
def main_edit(call): if authorized(message=call.message, bot=bot): User.update(status=MAIN_EDIT).where(User.telegram_id == call.message.chat.id).execute() bot.send_message(chat_id=call.message.chat.id, text=bot_messages_text.get('what_edit'), reply_markup=get_edit_inline_keyboard(it_id=call.data.split('_')[1]))
def serial_search(call): if authorized(message=call.message, bot=bot): User.update(status=SERIAL_SEARCH).where(User.telegram_id == call.message.chat.id).execute() bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=bot_messages_text.get('enter_serial_num'))