Заявка уходит сама: очередь отправки и значок связи
Отправка в Telegram больше не заставляет ждать, а состояние заявки и связь с сервером теперь видно с одного взгляда.
Раньше отправка заявки в Telegram выглядела так: повар жал кнопку и ждал. Иногда полсекунды, иногда пятнадцать. Если Telegram в этот момент тормозил, приложение показывало ошибку — и повар жал ещё раз. Заявка уходила дважды либо не уходила вовсе, и узнать об этом было неоткуда: поставщик просто не привозил товар.
Теперь нажатие только ставит заявку в очередь. Ответ приходит сразу, а отправкой занимается сам сервер — в фоне, не мешая работе.
Что видно на кухне
У заявки появилось состояние, прямо на карточке:
- отправляется — заявка в очереди, всё идёт своим ходом;
- доставлено в Telegram — сообщение в группе поставщика, можно не проверять;
- не ушло — рядом кнопка «Отправить ещё раз».
Пропала связь или Telegram отвечает отказом — сервер повторяет сам, с нарастающей паузой. Если не вышло и после пятой попытки, заявка не пропадает молча: кухня видит предупреждение и решает, что делать.
Один случай мы намеренно оставили человеку. Если сервер перезапустится ровно в момент отправки, узнать, дошло сообщение или нет, невозможно — Telegram такого не сообщает. Повторить самим значило бы рискнуть двойной заявкой: поставщик соберёт два раза и привезёт двойной объём. Поэтому кухня видит «проверьте группу» и отправляет ещё раз сама, если сообщения там нет.
Про утренний час пик
У Telegram есть предел скорости. Когда десятки заведений заказывают в одно время, в него можно упереться — и часть заявок получила бы отказ. Очередь растягивает поток: не больше двух сообщений в секунду и не больше восемнадцати в минуту в одну группу. Заявки уходят чуть медленнее, зато все.
Значок связи в шапке
Приложение работает без интернета: набранное сохраняется и уходит, когда связь вернётся. Но понять, ушло уже или ещё лежит, можно было только по временной полосе, которая появлялась при обрыве.
Теперь в шапке всегда виден маленький кружок. Зелёный — сервер отвечает. Серый — связи нет, работаем офлайн. Нажмите на него, и приложение скажет, когда связь была в последний раз и сколько действий ждёт отправки.
Важно: кружок следит не за интернетом на телефоне, а за нашим сервером. На кухне бывает так, что вайфай есть, а толку от него нет — раньше приложение считало, что всё в порядке.
Кружок не мигает на каждый короткий провал: чтобы он погас, связи не должно быть две проверки подряд. Подвалы и морозилки — обычное дело, и значок, дёргающийся каждые полминуты, читать невозможно.
Кнопка обновления
Рядом с кружком появилась кнопка ↻ — перечитать данные с сервера, не закрывая приложение. Раньше при подвисших данных приходилось закрывать приложение и открывать заново.
На заявке она работает аккуратно: сперва отправляет ваше несохранённое, и только потом читает бланк заново. Набранное не потеряется.
Значок авто-заказа теперь календарь
Кнопка авто-заказа раньше выглядела как ↻, и её путали с обновлением страницы. Теперь это календарь — «то, что заказываем регулярно», а ↻ занял кнопку обновления.
Дата поставки: видно и выбирается
Раньше день поставки подставлялся сам — всегда «завтра» — и нигде не показывался. Кухня узнавала его только из текста ушедшей заявки.
Теперь над кнопкой «Собрать заявку» стоит строка «Привезти» с датой: по умолчанию завтра, но можно выбрать любой день. В собранной заявке у каждого поставщика написано «Привезти: 5 августа, вт» — и рядом «перенести», если поставщик назвал другой день. У разных поставщиков дни разные, поэтому дата меняется у одной заявки, а не сразу у всех.
Заодно починена ошибка, которую было трудно заметить. День считался по всемирному времени, а не по времени телефона. В Чите разница девять часов, поэтому всё, что собрано раньше девяти утра, получало вчерашнюю дату: заявка уходила поставщику с датой «сегодня» вместо «завтра» — ровно в те часы, когда кухня и заказывает. Метка «сегодня» в приёмке и календарь поставок ошибались по той же причине.
И ещё мелочь, которая мешала: даты теперь пишутся полностью, с днём недели — «5 августа, вт» вместо «05.08». Меньше поводов пересчитывать в уме.