def clear_item(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": delete " + message.text)

    db = SQLighter(config.database_name)
    db.delete_request(uid, message.text)
    text = db.get_messages('Оплата')[0].format(message.text) + "\n"

    total = 0
    reqs = db.get_requests(uid)

    if len(reqs) == 0:
        text = db.get_messages('recycle_empty')[0]
        step[uid]['path'].pop()
        step[uid]['cur'] = step[uid]['path'][-1]
        m = markup(db, step[uid]['cur'])
    else:
        for i in reqs:
            if len(i) >= 3:
                text += str(i[0]) + ",  " + str(i[1]) + " x " + str(i[2]) + "\n"
                total += int(i[1]) * int(i[2])
        text += "\nВсего: {} сум".format(total)
        m = markup(db, step[uid]['cur'], uid)
    db.close()
    bot.send_message(message.from_user.id, text, reply_markup=m, parse_mode='HTML')
def count_handler(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)

    if message.text.isdigit() and int(message.text) >= 1:
        request[uid]['count'] = int(message.text)
        request[uid]['price'] = db.get_product_info(request[uid]['name'])['price'][request[uid]['size']]
        if len(db.get_product_info(request[uid]['name'])['price']) != 1:
            if request[uid]['size'] == 0:
                request[uid]['name'] += " , Большая "
            elif request[uid]['size'] == 1:
                request[uid]['name'] += " , Маленькая "

        db.save_to_recycle(uid, request[uid]['name'], request[uid]['price'], request[uid]['count'],
                           int(request[uid]['price']) * int(request[uid]['count']))
        text = db.get_messages('added_to_recycle')[0] + "\n\n" + db.get_messages('start_more')[0]
        step[uid]['cur'] = 'start'
        step[uid]['path'] = ['start']
        del request[uid]
        m = markup(db, step[uid]['cur'], uid)
        db.close()
        bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
def step_comment(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d    %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    if message.from_user.last_name is not None:
        comment = message.from_user.first_name + " " + message.from_user.last_name + "    \n"
    else:
        comment = message.from_user.first_name + "\n"

    if message.from_user.username is not None:
        comment += "@" + message.from_user.username + "\n\n"
    comment += message.text + "\n\n" + str(cur_time)
    db.save_comment(uid, comment, str(cur_time))

    text = db.get_messages('Спасибо за отзыв')
    db.loyalty_decrement(uid)
    if len(text) > 0:
        text = text[0]
    else:
        text = db.get_messages('Спасибо за отзыв')
        print(str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) + " " + uid + ': database error')

    admin_message = "<b>Отзыв:</b>" + "\n" + comment
    admins = db.get_admin_list()
    for i in admins:
        bot.send_message(i, admin_message, parse_mode='HTML')

    step[uid]['path'].pop()
    step[uid]['cur'] = step[uid]['path'][-1]
    m = markup(db, step[uid]['cur'])
    db.close()
    bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
def step_start(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    # print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    start_btns = db.get_buttons(step[uid]['cur'])

    # отрезаем смайл
    t = ''
    if len(message.text.split(' ')) > 2:
        for i in message.text.split(' ')[1:]:
            t += i + ' '
        t = t[:-1]
    else:
        t = message.text.split(' ')[-1]
    fucking_flag = 0
    for button in start_btns:
        if t is not None and t == button:
            fucking_flag = 1
            step[uid]['cur'] = button
            step[uid]['path'].append(step[uid]['cur'])
            break

    msgs = db.get_messages(step[uid]['cur'])
    if len(msgs) > 0:
        text = msgs[0]

        m = markup(db, step[uid]['cur'], uid)
        if m is None and (t == 'Корзина' or t == 'Оформить'):
            step[uid]['path'].pop()
            step[uid]['cur'] = step[uid]['path'][-1]
            text = db.get_messages('recycle_empty')[0]
            m = markup(db, step[uid]['cur'])

        elif t == "Корзина":
            total = 0
            reqs = db.get_requests(uid)

            if len(reqs) == 0:
                text = db.get_messages('recycle_empty')[0]
                step[uid]['path'].pop()
                step[uid]['cur'] = step[uid]['path'][-1]
                m = markup(db, step[uid]['cur'])
            else:
                for i in reqs:
                    if len(i) >= 3:
                        text += str(i[0]) + ",  " + str(i[1]) + " x " + str(i[2]) + "\n"
                        total += int(i[1]) * int(i[2])
                text += "\nВсего: {} сум".format(total) + "\n\n" + msgs[1]

        db.close()
        if fucking_flag:
            bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
        else:
            pass

    else:
        db.close()
        print(str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) + "| " + uid + ': database error')
def comment_handle(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    if db.has_user(uid):
        t = ''
        if len(message.text.split(' ')) > 2:
            for i in message.text.split(' ')[1:]:
                t += i + ' '
            t = t[:-1]
        else:
            t = message.text.split(' ')[-1]
        step[uid]['cur'] = t
        step[uid]['path'].append(step[uid]['cur'])
        text = db.get_messages(step[uid]['cur'])
        if len(text) > 0:
            text = text[0]
            m = markup(db, step[uid]['cur'])
            db.close()
            bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
        else:
            db.close()
            print(
                str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) + " " + uid + ': database error')
    else:
        text = db.get_messages('Невозможно оставить отзыв')[0]
        bot.send_message(message.chat.id, text, parse_mode='HTML')
def some_handle(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    # print(str(cur_time) + " | " + uid + ": " + message.text)

    if message.text in config.type_list:
        db = SQLighter(config.database_name)
        step[uid]['cur'] = message.text
        step[uid]['path'].append(step[uid]['cur'])

        if message.text in config.products_list:

            m = count_markup(db)
            text = db.get_messages('count')[0]
            product_info = db.get_product_info(message.text)
            if product_info is not None:
                if len(product_info[uid]['price']) == 1:
                    caption = message.text + "\n\n" + "Цена: " + product_info['price'][0] + " сум"
                else:
                    caption = message.text + "\n\n" + "Большая: " + product_info['price'][
                        0] + " сум" + "\n" + "Маленькая: " + product_info['price'][1] + " сум"
                request[uid] = {}
                request[uid]['name'] = message.text
                request[uid]['size'] = 0  # по-умолчанию выбирается большая

                if len(product_info['price']) == 1:
                    step[uid]['cur'] = message.text
                else:
                    step[uid]['cur'] = 'Размер'
                    text = db.get_messages('Размер')[0]
                    m = big_small_markup(db)
                    step[uid]['path'].append(message.text)

                step[uid]['path'].append(step[uid]['cur'])

                db.close()
                try:
                    if product_info['fid'] is not None:
                        bot.send_photo(message.chat.id, product_info['fid'], caption=caption)
                except ValueError:
                    pass
                bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
            else:
                step[uid]['cur'] = 'start'
                step[uid]['path'] = ['start']
                m = markup(db, step[uid]['cur'], uid)
                text = db.get_messages('db_error')[0]
                db.close()
                cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
                print(str(cur_time) + " | " + uid + ": Произошла ошибка чтения из базы данных")
                bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
        else:
            m = fuck_markup(db, step[uid]['cur'], uid)
            text = db.get_messages('choose')[0]
            db.close()
            bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
def handle_back(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    # print(str(cur_time) + " | " + uid + ": " + message.text)

    if step[uid]['path'][-1] != 'start':
        if step[uid]['cur'] == 'Размер':
            step[uid]['path'].pop()
            step[uid]['cur'] = step[uid]['path'][-1]
        step[uid]['path'].pop()
        step[uid]['cur'] = step[uid]['path'][-1]

        # if step[uid]['cur'] in config.products_list:
        #    step[uid]['path'].pop()
        #    step[uid]['cur'] = step[uid]['path'][-1]

        if step[uid]['cur'] == 'start':
            if uid in request:
                del request[uid]

        if step[uid]['cur'] == 'Оформить':
            del request[uid]['deliver']
            del request[uid]['longitude']
            del request[uid]['latitude']
            del request[uid]['destination']

        if step[uid]['cur'] == 'Адрес':
            del request[uid]['info']

        if step[uid]['cur'] == 'Контакт':
            del request[uid]['additional']

        if step[uid]['cur'] == 'Дополнительно':
            del request[uid]['payment']

        db = SQLighter(config.database_name)
        m = markup(db, step[uid]['cur'], uid)
        msgs = db.get_messages(step[uid]['cur'])

        if step[uid]['cur'] == 'start':
            text = msgs[1]

        elif step[uid]['cur'] in config.products_list or step[uid]['cur'] in config.type_list:
            m = fuck_markup(db, step[uid]['cur'], uid)
            text = db.get_messages('choose')[0]

        else:
            text = msgs[0]
        db.close()

        bot.send_message(message.from_user.id, text, reply_markup=m, parse_mode='HTML')
def start_handler(message):
    uid = str(message.from_user.id)
    # cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    # print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)

    step[uid] = {'cur': '', 'path': []}
    step[uid]['path'].append('start')
    step[uid]['cur'] = 'start'

    full_name = message.from_user.first_name
    if message.from_user.last_name is not None: full_name += " " + message.from_user.last_name

    if not db.has_user(uid):
        username = '' if message.from_user.username is None else message.from_user.username
        db.save_user_info(uid, full_name, username, '')

    lst = db.get_messages(step[uid]['cur'])
    if lst:
        text = lst[0].format(full_name) + "\n" + lst[1]
        m = markup(db, step[uid]['cur'])
        db.close()
        bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
    else:
        db.close()
        print(str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) + " " + uid + ': database error')
def step_payment(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    pay_type_list = db.get_buttons(step[uid]['cur'])

    t = ''
    if len(message.text.split(' ')) > 2:
        for i in message.text.split(' ')[1:]:
            t += i + ' '
        t = t[:-1]
    else:
        t = message.text.split(' ')[-1]
    if t in pay_type_list:
        step[uid]['cur'] = 'Оплата'
        step[uid]['path'].append(step[uid]['cur'])
        text = db.get_messages(step[uid]['cur'])

        if len(text) > 0:
            request[uid]['payment'] = t
            text = text[0] + "\n"
            total = 0
            for i in db.get_requests(uid):
                if len(i) >= 3:
                    text += str(i[0]) + ",  " + str(i[1]) + " x " + str(i[2]) + "\n"
                    total += int(i[1]) * int(i[2])
            text += "\nВсего: {} сум".format(total) + "\n"
            if total >= 120000:
                text += "<b>При заказе от 120 000 сум доставка бесплатна.\nУ Вас бесплатная доставка!</b>" + '\n\n' + \
                        db.get_messages('confirm')[0]
            else:
                text += "<b>При заказе от 120 000 сум доставка бесплатна.\nДо бесплатной доставки - {} сум</b>\n\n".format(
                    120000 - total) + db.get_messages('confirm')[0]

            m = markup(db, step[uid]['cur'], uid)
            db.close()
            bot.send_message(message.from_user.id, text, reply_markup=m, parse_mode='HTML')
        else:
            db.close()
            cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
            print(str(cur_time) + " | " + uid + ": Произошла ошибка чтения из базы данных")
def step_contact(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": sent contact")

    db = SQLighter(config.database_name)
    if message.contact.user_id == message.from_user.id:
        step[uid]['cur'] = 'Контакт'
        step[uid]['path'].append(step[uid]['cur'])
        text = db.get_messages(step[uid]['cur'])
        # проверить контакт на принадлежность юзеру
        if len(text) > 0:
            if message.contact.last_name is not None:
                full_name = message.contact.first_name + " " + message.contact.last_name
            else:
                full_name = message.contact.first_name

            if message.from_user.username is not None:
                username = message.from_user.username
            else:
                username = ''

            phone = str(message.contact.phone_number)

            request[uid]['info'] = {
                'full_name': full_name,
                'username': username,
                'phone': phone
            }
            text = text[0]
            m = markup(db, step[uid]['cur'], uid)
            db.close()
            bot.send_message(message.from_user.id, text, reply_markup=m, parse_mode='HTML')
        else:
            db.close()
            cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
            print(str(cur_time) + " | " + uid + ": Произошла ошибка чтения из базы данных")
    else:
        text = db.get_messages('wrong_contact')[0]
        db.close()
        bot.send_message(message.chat.id, text, parse_mode='HTML')
def step_checkout_outside(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    btns = db.get_buttons(step[uid]['cur'])

    if len(message.text.split(' ')) > 2 and message.text.split(' ')[-2] + ' ' + message.text.split(' ')[-1] == \
            db.get_buttons('Оформить')[1]:
        text = db.get_messages('location_error')
        db.close()
        bot.send_message(message.from_user.id, text, parse_mode='HTML')
    else:
        step[uid]['cur'] = 'Адрес'
        step[uid]['path'].append(step[uid]['cur'])
        text = db.get_messages(step[uid]['cur'])
        if len(text) > 0:
            request[uid] = {}
            if message.text in btns:
                request[uid]['deliver'] = message.text
                request[uid]['longitude'] = ''
                request[uid]['latitude'] = ''
                request[uid]['destination'] = ''
            else:
                request[uid]['deliver'] = ''
                request[uid]['longitude'] = ''
                request[uid]['latitude'] = ''
                request[uid]['destination'] = message.text

            text = text[0]
            m = markup(db, step[uid]['cur'], uid)
            db.close()
            bot.send_message(message.from_user.id, text, reply_markup=m, parse_mode='HTML')
        else:
            db.close()
            cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
            print(str(cur_time) + " | " + uid + ": Произошла ошибка чтения из базы данных")
def handle_list_menu(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    # print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    try:
        ids = db.get_menu_ids(step[uid]['cur'])
        for i in ids:
            bot.send_photo(message.chat.id, i)
        db.close()
    except OperationalError:
        text = db.get_messages('no_menu')[0]
        db.close()
        bot.send_message(message.chat.id, text)
def size_handler(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    if message.text in ["Большая", "Маленькая"]:
        db = SQLighter(config.database_name)
        if message.text == "Большая":
            request[uid]['size'] = 0
        elif message.text == "Маленькая":
            request[uid]['size'] = 1
        step[uid]['path'].pop()
        step[uid]['cur'] = step[uid]['path'][-1]
        m = count_markup(db)
        text = db.get_messages('count')[0]
        bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
def step_food_drink(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    # print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    step_btns = db.get_buttons(step[uid]['cur'])

    # отрезаем смайл
    t = ''
    if message.text not in config.type_list:
        if len(message.text.split(' ')) > 2:
            for i in message.text.split(' ')[1:]:
                t += i + ' '
            t = t[:-1]
        else:
            t = message.text.split(' ')[-1]
    else:
        t = message.text

    fucking_flag = 0
    for button in step_btns:
        if t is not None and t == button:
            fucking_flag = 1
            step[uid]['cur'] = button
            step[uid]['path'].append(step[uid]['cur'])
            break

    msgs = db.get_messages(step[uid]['cur'])
    if len(msgs) > 0:
        text = msgs[0]
        m = markup(db, step[uid]['cur'], uid)
        db.close()

        if fucking_flag:
            bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
        else:
            pass

    else:
        db.close()
        print(str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) + " | " + uid + ': database error')
def clear_all(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    db.clear_requests(uid)

    step[uid]['cur'] = 'start'
    step[uid]['path'] = ['start']
    text = db.get_messages('Очистить')
    if len(text) > 0:
        text = text[0]
        m = markup(db, step[uid]['cur'], uid)
        db.close()
        bot.send_message(message.from_user.id, text, reply_markup=m, parse_mode='HTML')
    else:
        db.close()
        cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
        print(str(cur_time) + " | " + uid + ": Произошла ошибка чтения из базы данных")
def step_additional(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    step[uid]['cur'] = 'Дополнительно'
    step[uid]['path'].append(step[uid]['cur'])
    text = db.get_messages(step[uid]['cur'])
    if len(text) > 0:
        if message.text.split(' ')[-1] == 'Пропустить':
            request[uid]['additional'] = ''
        else:
            request[uid]['additional'] = message.text
        text = text[0]
        m = markup(db, step[uid]['cur'])
        db.close()
        bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')
    else:
        db.close()
        cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
        print(str(cur_time) + " | " + uid + ": Произошла ошибка чтения из базы данных")
def step_phone_number(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    step[uid]['cur'] = 'Контакт'
    step[uid]['path'].append(step[uid]['cur'])
    text = db.get_messages(step[uid]['cur'])

    if len(text) > 0:
        if message.from_user.last_name is not None:
            full_name = message.from_user.first_name + " " + message.from_user.last_name
        else:
            full_name = message.from_user.first_name

        if message.from_user.username is not None:
            username = message.from_user.username
        else:
            username = ''

        phone = message.text

        request[uid]['info'] = {
            'full_name': full_name,
            'username': username,
            'phone': phone
        }
        text = text[0]
        m = markup(db, step[uid]['cur'], uid)
        db.close()
        bot.send_message(message.from_user.id, text, reply_markup=m, parse_mode='HTML')
    else:
        db.close()
        cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
        print(str(cur_time) + " | " + uid + ": Произошла ошибка чтения из базы данных")
def final(message):
    uid = str(message.from_user.id)
    cur_time = datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    print(str(cur_time) + " | " + uid + ": " + message.text)

    db = SQLighter(config.database_name)
    if message.text.split(' ')[-1] == "Подтвердить":
        if not db.has_user(uid):
            db.save_user_info(uid, request[uid]['info']['full_name'], request[uid]['info']['username'],
                              request[uid]['info']['phone'])
        else:
            db.update_user_info(uid, request[uid]['info']['full_name'], request[uid]['info']['username'],
                                request[uid]['info']['phone'])

        request[uid]['date'] = str(datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d'))
        request[uid]['time'] = str(datetime.fromtimestamp(time.time()).strftime('%H:%M:%S'))
        db.save_requests(uid, request[uid]['deliver'],
                         request[uid]['longitude'],
                         request[uid]['latitude'],
                         request[uid]['destination'],
                         request[uid]['additional'],
                         request[uid]['payment'],
                         request[uid]['date'],
                         request[uid]['time'])
        print("Запись прошла успешно")

        # теперь сгенерируем сообщение и отошлем его всем администраторам

        admin_message = '<b>' + request[uid]['info']['full_name'] + "</b>\n"
        if request[uid]['info']['username'] != '':
            admin_message += "@" + request[uid]['info']['username'] + "\n"
        admin_message += "<b>Телефон:</b> " + request[uid]['info']['phone'] + "\n\n"
        k = 1
        reqs = db.get_requests(uid)
        total = 0
        for i in reqs:
            if len(i) >= 3:
                admin_message += str(k) + ") " + str(i[0]) + ",  " + str(i[1]) + " x " + str(i[2]) + "\n"
                total += int(i[1]) * int(i[2])
                k += 1
        admin_message += "\nВсего: {} сум".format(total) + "\n\n"
        if request[uid]['additional'] != '':
            admin_message += "<b>Дополнение:</b> " + request[uid]['additional'] + "\n\n"
        admin_message += "<b>Адрес:</b> " + request[uid]['destination'] + '\n'
        admin_message += "<b>Тип оплаты:</b> " + request[uid]['payment'] + "\n"
        admin_message += "<b>Время заказа:</b> " + " " + request[uid]['time'] + "    " + request[uid]['date']
        admins = db.get_admin_list()

        for i in admins:
            try:
                bot.send_message(i, admin_message, parse_mode='HTML')
            except:
                pass

        # очищаем данные

        del request[uid]
        db.clear_requests(uid)
        step[uid]['path'] = []
        step[uid]['path'].append('start')
        step[uid]['cur'] = 'start'
        text = db.get_messages('Новый заказ')[0]
        m = markup(db, step[uid]['cur'])
        bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')

    elif message.text.split(' ')[-1] == "Отменить":
        del request[uid]
        step[uid]['path'] = []
        step[uid]['path'].append('start')
        step[uid]['cur'] = 'start'
        text = db.get_messages('start')[1]
        m = markup(db, step[uid]['cur'])
        bot.send_message(message.chat.id, text, reply_markup=m, parse_mode='HTML')

    else:
        pass