Чтобы избежать рассинхронизации данных при одновременном редактировании заказа с нескольких станций, в системе предусмотрен запрет на редактирование одного и того же заказа с разных устройств (стационарной или мобильной станции).
Устройство, на котором открывается заказ, блокирует его. При выходе из заказа блокировка снимается.

Заказ, который редактируется на другой станции (например, на кассе), будет заблокирован для редактирования в приложении и в списке заказов помечен иконкой с замком.  

При попытке открыть такой заказ на экране отобразится системное оповещение.

Заказ, редактируемый на другой станции, пока список заказов на r_k Waiter не будет синхронизирован с кассовым сервером, будет отображаться как незаблокированный. Но при попытке его открыть отобразится системной сообщение и заказ перейдет в статус Заблокирован.

Пока сотрудник не выйдет из режима редактирования заказа на другой станции, открыть его в приложении будет нельзя. И наоборот: если заказ редактируется в приложении, его нельзя будет открыть с другого устройства.


При проблемах передачи данных на кассовый сервер может возникнут ситуация, когда отправленный заказ будет заблокирован и в приложении и на кассе.

Автоматическая разблокировка произойдет через 1.5 минуты.

Заказ, открытый для редактирования в приложении блокируется на 90 секунд. В процессе работы с заказом для корректной работы он может повторно блокироваться до момента выхода из заказа. При выходе в приложении из заказа он разблокируется кассовым сервером. Если запрос от приложения о разблокировке заказа до кассового сервера не дошел (сетевые проблемы или недоступность кассового сервера), заказ останется заблокированным и на кассе и в приложении. В этом случае через 1.5 минуты кассовый сервер разблокирует заказ автоматически.

Так как автоматическая блокировка заказа закрывает доступ к редактированию заказа, в приложении добавлена автоматическая разблокировка заказа при блокировке экрана смартфона. Это исключит блокировку заказа, если официант забыл выйти из заказа и сразу заблокировал экран устройства.
Если в заказе были несохраненные блюда, они автоматически сохранятся.
Если в момент блокировки экрана заказ будет пустым, он не сохранится.
Если экран заблокировали в момент создания блюда (редактирования его обязательных параметров), такое блюдо не сохранится.