Скриншот фрагмента кода удалён модератором.
Стокнулся с проблемой, что бот считывает старые сообщения. Приложу фото поведения бота. Смысл в том, что бот запрашивал подтверждения каждый раз перед взятием.
@bot.message_handler(state=MyStates.take_all_product, content_types="text")
async def take_all_product(message):
chat_data = bot.chat_data_map[message.from_user.id]
if message.text == 'Подтвердить':
result = False
for element in chat_data.cells_products_data:
chat_data.cell_conf_rack, chat_data.cell_conf_span, chat_data.cell_conf_row, chat_data.cell_conf_cell = [int(i) for i in element["cell"].split("-")]
await bot.send_message(message.from_user.id,
f"Подвердите взятие из ячейки:\n\n"
f"{element['cell']} - {element['count']} ",
reply_markup=confirm_no_cancel_markup)
if message.text == 'Подтвердить':
chat_data = bot.chat_data_map[message.from_user.id]
cell_result, cell_data = await cells.get_one_by_params(span=chat_data.cell_conf_span, rack=chat_data.cell_conf_rack, row=chat_data.cell_conf_row, number=chat_data.cell_conf_cell)
if cell_result and cell_data:
result = await cells_products.delete_by_params(product_uuid=chat_data.product_obj.uuid, cell_uuid=cell_data.uuid)
if result:
await bot.send_message(message.from_user.id,
f"Взято {element['cell']} - {element['count']}\n\n",
reply_markup=empty_markup)
else:
await bot.send_message(message.from_user.id, f'Не удалось взять товар\n\n', reply_markup=empty_markup)
await bot.set_state(message.from_user.id, MyStates.find_product, message.chat.id)